2

私はArduino用の点滅/フェードライトプログラムに取り組んでいます。LED の状態と特定のスイッチの組み合わせに基づく対話機能を構築しようとしています。考慮してください: ボタンが押されたときに、LED がオンの場合はオフにし、LED がオフの場合はオンにします。

ただし、LED の状態を判断するための情報は見つかりませんでした。最も近いのはAndroid に関するこの質問でしたが、Arduino プラットフォームからこれを実行できるかどうかを調べようとしています。誰かが実際の経験やアドバイスを持っていますか?

4

2 に答える 2

5

出力ポートを読み取ることはまったく問題ありません。あれは

digitalWrite(LED_PORT, !digitalRead(LED_PORT));

ピンを切り替えます。

トグル ライブラリを検討することもできます: http://playground.arduino.cc/Code/DigitalToggle

于 2013-02-05T22:33:37.920 に答える
4

いくつかのオプションがあります。

1つは、LEDの状態をブール値で保存し、ボタンを押すと、それを無効にしてLEDポートに書き込むことができます。

void loop()
{
    static int ledState = 0; // off
    while (digitalRead(BUTTON_PIN) == 0)
        ; // wait for button press

    ledState = !ledState;
    digitalWrite(LED_PORT, ledState);
}

2つ目は、AVRのポートに直接アクセスしてもかまわない場合です。

void init()
{
    DDRD = 0x01; // for example: LED on port B pin 0, button on port B pin 1
    PORTB = 0x00;
}

void loop()
{
    while (PINB & 0x02 == 0)
        ; // loop until the button is pressed

    PORTB ^= 0x01; // flip the bit where the LED is connected
}
于 2013-01-03T11:43:15.243 に答える