ich veerwende diesen Code für Arduino C/C++:
Code:#include <Wire.h> #define ADDR_PCF8574 0x30 void setup() { Wire.begin(); writei2cbyte(ADDR_PCF8574, 0xff); //... } void writei2cbyte(int addr, byte data) { Wire.beginTransmission(addr); Wire.write(data); Wire.endTransmission(); delay(5); } uint8_t readi2cbyte(uint8_t addr, uint8_t reg) { uint8_t bdata; Wire.beginTransmission(addr); Wire.write(reg); // target data register number Wire.endTransmission(); Wire.requestFrom(addr, reg); // Request 1 bytes from PCF8574 while(Wire.available() < 1); // Wait for byte to become available bdata = Wire.read(); return(bdata); } //... uint8_t bitmask = readi2cbyte(ADDR_PCF8574, 1); // read all btn states (bitmask) at reg 1 if(bitRead(bitmask,1) {...} else if(bitRead(bitmask,2) {...} //...







Zitieren

Lesezeichen