電気素人主婦による備忘録 ※ ご利用は自己責任でお願いします ※
/****************************************************/ /* 【 Elegoo:5 】デジタル入出力 */ /* LEDの点灯・消灯をプッシュボタンで制御する */ /****************************************************/ /*--------------------------------------------------*/ /* SW_CASE : スイッチボタンの配置 */ /* 0 :ONを押す間、LEDを点灯する */ /* 1 :ONを押すたびにLEDの点灯・消灯を繰り返す */ /* 2 :ONでLEDを点灯/OFFでLEDを消灯 */ /*--------------------------------------------------*/ #define SW_CASE 0 // 0, 1, 2 // ピンの定義 #define LED 5 // D5 : LED #define SW_ON 9 // D9 : Switch ON #define SW_OFF 8 // D8 : Switch OFF // LEDの点灯状態 boolean led_on = false; // true:点灯/false:消灯 /*********/ /* setup */ /*********/ void setup(){ // Setting pins:Pinmode(PINNo,[INPUT|OUTPUT|INPUT_PULLUP]) pinMode(LED, OUTPUT); // 出力用 pinMode(SW_ON, INPUT_PULLUP); // プルアップ時に発動 pinMode(SW_OFF, INPUT_PULLUP); // プルアップ時に発動 } /********/ /* loop */ /********/ void loop(){ // -------------------------------------------------- // スイッチボタンの配置別 // -------------------------------------------------- switch(SW_CASE){ // -------------------------------------------------- // Switch_ONを押す間、LEDを点灯する // -------------------------------------------------- case 0: // ONを押した(LOW) if (digitalRead(SW_ON) == LOW){ digitalWrite(LED, HIGH); // LEDを点灯 }else{ digitalWrite(LED, LOW); // LEDを消灯 } break; // -------------------------------------------------- // Switch_ONを押すたびにLEDの点灯・消灯を繰り返す // -------------------------------------------------- case 1: // ONを押した(LOW) if (digitalRead(SW_ON) == LOW){ // LEDの点灯状態が消灯なら if( led_on == false){ digitalWrite(LED, HIGH); // LEDを点灯 }else{ digitalWrite(LED, LOW); // LEDを消灯 } // LEDの点灯状態を変更する led_on = (led_on == false) ? true : false; } break; // -------------------------------------------------- // Switch_ONでLEDを点灯/Switch_OFFでLEDを消灯 // -------------------------------------------------- case 2: // ONを押した(LOW) LEDを点灯 if (digitalRead(SW_ON) == LOW) digitalWrite(LED, HIGH); // OFFを押した(LOW) LEDを消灯 if (digitalRead(SW_OFF) == LOW) digitalWrite(LED, LOW); break; } delay(100); }
0 件のコメント:
コメントを投稿