Hi comunity
Ich habe volgenden sketch aus dem internet gedownloadet und für meine zwecke modifiziert .
#include <Wire.h>
int x;
int c;
void setup()
{
pinMode (4,OUTPUT);
Wire.begin(4); // join I2C bus with address #4
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600); // start serial for output
}
void loop()
{
delay(100);
}
void receiveEvent(int howMany)
{
while(1 < Wire.available())
{
c = Wire.read();
Serial.print(c);
}
x = Wire.read();
Serial.println(x);
if (x <12
{
digitalWrite (4,LOW);
}
else
{
digitalWrite (4,HIGH);
}
}
nun ist mir aufgefallen das zweimal der befehl wire.read auftauch und ich hab versucht einen block zu löschen danach funktionierte der sketch aber nicht mehr wieso??
Hallo,
in jedem Bussystem muss erst mal der Teilnehmer angesprochen werden.
Ist Adresse OK kommt Rückmeldung ich bin bereit und sperrt Bus für andere Teilnehmer.
Nun Kommando senden was das „Ding“ machen soll. Somit ist dies keine doppelte Abfrage sondern einfach nötig. Nach Kommando natürlich den Bus wieder frei gegeben.
Mit freundlichen Grüßen
Fred
- - - Aktualisiert - - -
Hallo,
Noch mal angeschaut, Problem HIER. Wenn JA was hängt am Bus.
{
digitalWrite (4,LOW);
}
else
{
digitalWrite (4,HIGH);
}
Gruß
Fred
Lesezeichen