Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
/********* Pleasedontcode.com ********** Pleasedontcode thanks you for automatic code generation! Enjoy your code! - Terms and Conditions: You have a non-exclusive, revocable, worldwide, royalty-free license for personal and commercial use. Attribution is optional; modifications are allowed, but you're responsible for code maintenance. We're not liable for any loss or damage. For full terms, please visit pleasedontcode.com/termsandconditions. - Project: # I2C Expander - Source Code NOT compiled for: ESP8266 NodeMCU V1.0 - Source Code created on: 2026-02-05 14:51:45 ********* Pleasedontcode.com **********/ /****** SYSTEM REQUIREMENTS *****/ /****** SYSTEM REQUIREMENT 1 *****/ /* add i2c gpio expander PCF8574 */ /****** END SYSTEM REQUIREMENTS *****/ // Create PCF8574 instance with default I2C address 0x20 // Address range: 0x20 to 0x27 depending on A0, A1, A2 pins PCF8574 expander; /****** FUNCTION PROTOTYPES *****/ void setup(void); void loop(void); void setup(void) { // Initialize Serial communication Serial.begin(115200); delay(100); Serial.println("\n\nPCF8574 I2C GPIO Expander Initialization..."); // Initialize PCF8574 with I2C address 0x20 // Using default ESP8266 pins: SDA=4 (D2), SCL=5 (D1) if (expander.begin()) { Serial.println("PCF8574 initialized successfully!"); Serial.print("I2C Address: 0x"); Serial.println(0x20, HEX); // Initialize all pins to HIGH (default state) expander.writePort(0xFF); Serial.println("All pins set to HIGH"); } else { Serial.println("Failed to initialize PCF8574!"); Serial.println("Please check I2C connections and address configuration"); } delay(500); } void loop(void) { // Check if PCF8574 is still connected if (expander.isConnected()) { // Example: Set pins individually // Set pin 0 to HIGH expander.setPin(0); delay(500); // Set pin 1 to HIGH expander.setPin(1); delay(500); // Clear pin 0 to LOW expander.clearPin(0); delay(500); // Clear pin 1 to LOW expander.clearPin(1); delay(500); // Toggle pin 2 multiple times expander.togglePin(2); delay(250); expander.togglePin(2); delay(250); // Read entire port state uint8_t portState = expander.readPort(); Serial.print("Port state: 0x"); Serial.println(portState, HEX); // Read individual pin states for (int i = 0; i < 8; i++) { Serial.print("Pin "); Serial.print(i); Serial.print(": "); Serial.println(expander.getPinState(i) ? "HIGH" : "LOW"); } Serial.println("---"); delay(2000); } else { Serial.println("PCF8574 device not connected!"); delay(2000); } } /* END CODE */
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)