2017-08-04 3 views
1

私はarduinoを試し始めましたが、私は基本的なことを考えています。プッシュボタンが押されているので、プッシュボタンを押すとシリアルプリントが表示されます。ボタンが押されたときに解放されるまでarduinoのボタン入力を読む

int button = 3; 

void setup() { 
    Serial.begin(9600); 
    pinMode(button, INPUT_PULLUP); 
} 

void loop() { 
    if (digitalRead(button) == LOW) { 
    Serial.print("pressed\n"); 
    } 
} 

は、今ではpressedに束を印刷します。今私の次のステップはLEDを接続することです、私はトグルとしてボタンを使用したいです。それを最初に押して、それが来る、それを秒間押して、それはオフになります。しかし、これはボタンが押されている間に何百回も実行されます。これをどうやって回避するのですか?ありがとう

int led = 5; 
int button = 3; 

void setup() { 
    Serial.begin(9600); 
    pinMode(button, INPUT_PULLUP); 
    pinMode(led, OUTPUT); 

    digitalWrite(led, LOW); 
} 

void loop() { 
    if (digitalRead(button) == LOW) { 
    Serial.print("pressed\n"); 
    toggleLed(led); 
    } 
} 

int toggleLed(int led){ 
    if (digitalRead(led) == LOW) { 
    Serial.print("set on"); 
    digitalWrite(led, HIGH); 
    } else { 
    Serial.print("set off"); 
    digitalWrite(led, LOW); 
    } 
} 

答えて

0

State Change ExampleというArduino IDEに付属するサンプルコードがあります。それを勉強する。基本的に、最後にボタンを押したときのボタンの状態を覚えておく変数が必要です。ボタンの状態の変化にのみ反応します。ボタンのピンが低いときはいつでもコードを実行する代わりに、ボタンのピンがハイからローに変わるたびにコードを実行します。

+0

**ファイル>例> 02.Digital> StateChangeDetection **? – per1234

関連する問題