#include const int scl = 5; const int sda = 6; int stamp; int count; int scount; bool state; bool laststate; bool readOutArray[24]; void setup() { Serial.begin(115200); pinMode(scl, INPUT); pinMode(sda, INPUT); count = 0; scount = 0; state = LOW; int laststate = LOW; unsigned long stamp = 0; } void loop() { if (digitalReadFast(scl) == HIGH) { stamp = millis(); } if ((millis() - stamp) >= 30) // 40ms Pause zwischen den Datenpaketen erkennen = Startbedingung { while (count <= 24) { state = digitalReadFast(scl); if ((laststate == HIGH) && (state == LOW)) { count++; readOutArray[count] = !digitalReadFast(sda); } //letzten zustand merken laststate = state; } while (scount <= 23) { scount++; Serial.print(readOutArray[scount]); if (scount == 8 || scount == 16 ) { //optische Abgrenzung der Bytes Serial.print(" "); } if (scount == 24) { Serial.println(); } } scount = 0; count = 0; delay(100); } }