/* Test program for PCF8574 I2C I/O expander - Blinks all ports low then high. Original by Ford verändert von deralexnTutorials (Vereinfachung für Anfänger) funktioniert mit Arduino IDE 1.0.1 (bei 1.0 traten Fehler auf) */ #include int zahl; static char binstr[8]; #define expander B00100000 // Adresse des PCF8574 void setup() { Wire.begin(); //Initialisieren der I2C Verbindung. MUSS im Setup aufgerufen werden. Serial.begin(9600); } void loop() { Wire.beginTransmission(expander); //Öffnen der Verbindung Wire.write(B00000000); //Schreiben des Bytes. Jede Null stellt ein Bit an den Pins des PCF8574 dar (Auch möglich in Hex Schreibweise) Wire.endTransmission(); //Schließen der Verbindung delay(1000); Wire.beginTransmission(expander); Wire.write(B11111111); //Schreiben des Bytes. Jede Null stellt ein Bit an den Pins des PCF8574 dar (Auch möglich in Hex Schreibweise) Wire.endTransmission(); //Schließen der Verbindung Wire.requestFrom(expander, 1); zahl = Wire.read(); binstr[8]; binstr[7]=48+(zahl&1);zahl>>=1; binstr[6]=48+(zahl&1);zahl>>=1; binstr[5]=48+(zahl&1);zahl>>=1; binstr[4]=48+(zahl&1);zahl>>=1; binstr[3]=48+(zahl&1);zahl>>=1; binstr[2]=48+(zahl&1);zahl>>=1; binstr[1]=48+(zahl&1);zahl>>=1; binstr[0]=48+(zahl&1); Serial.print(binstr[7]); Serial.print(binstr[6]); Serial.print(binstr[5]); Serial.print(binstr[4]); Serial.print(binstr[3]); Serial.print(binstr[2]); Serial.print(binstr[1]); Serial.print(binstr[0]); int x6 = binstr[6]; // Pin 5 Serial.print(" "); Serial.print(x6); if(binstr[6] == 48){Serial.print(" Taster 6 gedrueckt");} Serial.println(" "); delay(1000); }