Ich schreibe einen einfachen Arduino-Code. Ich habe zwei LEDs und entsprechende zwei Schalter. Wenn ein Schalter gedrückt wird, ist eine LED an und andere ist aus. Dann gibt es eine Serial.read-Funktion, die von dem Computer zurückgesetzt liest. Dann sind beide Schalter aus. Danach wird ein anderer Schalter gedrückt und eine andere LED leuchtet. Mein Problem ist, wenn ein Schalter eingeschaltet ist, sollte ein anderer nicht funktionieren, bis der Serial.read passiert. Aber in meinem Fall, wenn led1 an ist, wenn ich Schalter2 drücke, ist led2 an und led1 ist aus. Aber das ist nicht meine gewünschte Operation. Ich möchte die Logik machen, dass, wenn led1 eingeschaltet ist, wenn ich presse switch2 led2 sollte nicht eingeschaltet sein und warten auf die Serial.read passieren. Hier ist mein Code. Ich muss wissen, was die Korrektur in der Logik sein sollte:Arduino: Warte auf serielle Eingabe
int switch1 = 2;
int motorled1 = 3;
int switch2 = 4;
int motorled2 = 5;
int d1=2;
int d2=3;
int reset1 = 0;
int reset2= 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(2, INPUT);
pinMode(4, INPUT);
pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
d1=digitalRead(2);
d2=digitalRead(4);
if (d1==1)
{
digitalWrite(3, HIGH);
digitalWrite(5, LOW);
if (Serial.available() > 0)
{
Serial.write(1);
}
if (Serial.available() > 0)
{
reset1 = (Serial.read());
digitalWrite(motorled1, LOW);
digitalWrite(motorled2, LOW);
}
}
else if (d2==1)
{
digitalWrite(3, LOW);
digitalWrite(5, HIGH);
if (Serial.available() > 0)
{
Serial.write(2);
}
if (Serial.available() > 0)
{
reset2 = (Serial.read());
digitalWrite(motorled1, LOW);
digitalWrite(motorled2, LOW);
}
}
}