2017-12-19 26 views
-1

Arduinoでどのようにトグルスイッチを実装するのですか?Arduinoトグルスイッチの状態変更

私は瞬間的なボタンを使用している場合はリリースされたときに瞬間的なボタンが低く、その後ハイになるので、あなたは、状態を保存することができます(オンまたはオフ)、およびボタンをもう一度押したとき、あなたはトリガするので、それは、簡単です。それが再び低い状態になり、再び高い状態になるため状態が変化します。

トグルスイッチでは、これはできません。トグルがオンのままなので、トグルが低から高になると登録できます。 if button == lowif button == highのトンでスクリプトを記入しない限り、私はそれがオフになっているときに登録する方法がありません。

どのようにトグルスイッチを実装しますか。だから私はオンの位置でそれをオンにすると、それはちょうど押されてリリースされたボタンをシミュレートします。それをオフにすると、もう一度ボタンを押して放してみるのですか?

+1

ルック。トグルがどのような状態にあるのかを必ずしも把握する必要はありません。これにより、最後の状態を追跡するための変数が必要になります。 –

+0

ありがとうございます。実際、私は間違った方向に向かっていました。変数を切り替えて次のサイクルで比較するのではなく、状態について心配していました – rataplan

答えて

0

ここでは、瞬間的なボタンとしてトグルの使用を許可するコードです:IDEでの状態変化の一例で

bool PREVIOUS_STATE = false; 
bool CURRENT_STATE = false; 

void setup() { 
    //initialize serial for debugging 
    Serial.begin(9600); 
    Serial.println("toggle example"); 

    pinMode(9, INPUT_PULLUP); 
    pinMode(10, OUTPUT); // the LED to check the toggle 

} 

void loop(){ 

    // if the states are not the same, it did change 
    if (PREVIOUS_STATE != CURRENT_STATE) { 
    PREVIOUS_STATE = CURRENT_STATE; 
    analogWrite(10, 200); 
    delay(10); 
    analogWrite(10, 0); 
    } 

    if (digitalRead(9) == LOW { 
    Serial.println("toggle On"); 
    CURRENT_STATE = true; 
    } else { 
    Serial.println("toggle Off"); 
    CURRENT_STATE = false; 
}