2016-12-09 8 views
-3

質問があります。 私のコード(Arduino)では、ボタンを押している限り、ledは高いです。ボタンとLEDのArduinoコード

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); 
    } 
}  

しかし、私は、次のいずれかをしたい:私はボタンを押した場合=> LEDは高

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

        etc. 

で初めて私を助けることができる人はいますか? ありがとうございました!

答えて

2

私はあなたの問題についてはあまり考えなかったと思います。

私はボタンを押すとLEDが消灯しているとき、LEDを点灯します:

はちょうどあなたが何をしたいの文を形成します。 ボタンを押してLEDが点灯したら、LEDを消したい。

現在、いくつかの擬似コード:

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

私はC++に翻訳するためにあなたにそれを残しておきます。

ボタンの「デバウンス」に自信を持ってください。それ以外の場合は、奇妙な動作に陥る可能性があります

+1

+1です。追加するだけで、すでにArduino IDEに組み込まれているDebounceというサンプルがあり、OPが探しているものとまったく同じです。私は例を通してOPを見て、これらの小さな概念に精通していることをお勧めします。 – AtomicFireball

関連する問題