2016-12-09 2 views
-3

Ich habe eine Frage. In meinem Code (Arduino) ist die LED hoch, solange ich auf einen Knopf drücke.Arduino-Code für eine Schaltfläche und eine LED

int led=12; 
int button=4; 

void setup() { 
    // put your setup code here, to run once: 
    pinMode(led,OUTPUT);//tekst 
    pinMode(button,INPUT_PULLUP); 
} 

void loop() { 
    // put your main code here, to run repeatedly: 


    if(digitalRead(button)) 
    { 
     digitalWrite(led,HIGH); 
    } 

    else 
    { 
     digitalWrite(led,LOW); 
    } 
}  

Aber ich will das nächste: Wenn ich auf einen Knopf zum ersten Mal drücken => die LED

     if I push a second time=> the led is low 
        if I push a third time => the led is high 

        etc. 

hoch ist Gibt es jemanden, der mir helfen kann? Vielen Dank!

Antwort

2

Ich glaube nicht, dass Sie viel über Ihr Problem nachgedacht haben.

bilden nur einen Satz von dem, was Sie tun möchten:

Ich möchte auf der führte drehen, wenn ich den Knopf und die LED abstoßen. Ich möchte die LED ausschalten, wenn ich den Knopf drücke und die LED leuchtet.

Jetzt sind einige Pseudo-Code:

if the button pin is HIGH: 
    if the led pin is HIGH: 
    put the led pin LOW 
    else 
    put the led pin HIGH 

Ich werde es Ihnen überlassen, um es in C++ zu übersetzen.

Bitte machen Sie sich mit dem "Entprellen" von Tasten vertraut. Sonst könnte es zu merkwürdigem Verhalten kommen.

+1

+1 auf Ihre Antwort. Nur um hinzuzufügen, gibt es ein Beispiel, das bereits in der Arduino IDE namens Debounce eingebaut ist und genau das tut, wonach OP sucht. Ich schlage OP vor, durch die Beispiele zu schauen und sich mit diesen kleinen Konzepten vertraut zu machen. – AtomicFireball

Verwandte Themen