レッスン3では、LEDを1秒ごとに点滅させる方法を学びましたが、ボタンを使ってLEDをコントロールする方法を紹介します。
以下のコードをArduino IDEにコピーします:
int ledpin = 5; // D1(gpio5) int button = 4; //D2(gpio4) int buttonState=0; void setup() { pinMode(ledpin, OUTPUT); pinMode(button, INPUT); } void loop() { buttonState=digitalRead(button); // put your main code here, to run repeatedly: if (buttonState == 1) { digitalWrite(ledpin, HIGH); delay(200); } if (buttonState==0) { digitalWrite(ledpin, LOW); delay(200); } }
プロジェクトに対応するボードタイプとポートタイプを選択し、スケッチをNodeMCUにアップロードします。
アップロードが完了すると、プログラムの実行結果が表示されます:
ボタンスイッチを押すとLEDが点灯し、スイッチを離すとLEDが消灯します。
上記のルーチンを実行した後、この方法でLEDを点灯させたい場合、手がボタンから離れることができず、不便だと思うかもしれません。我々は、次のコードのプログラムを修正する結果を実現することができますプログラムを改善し、NodeMCUコントローラにアップロードすることができます。
接続は上記と同じです。
#define LED 5 // D1(gpio5) #define BUTTON 4 //D2(gpio4) //Let's say you have your push button on pin 4 int switchState = 0; // actual read value from pin4 int oldSwitchState = 0; // last read value from pin4 int lightsOn = 0; // is the switch on = 1 or off = 0 void setup() { pinMode(BUTTON, INPUT); // push button pinMode(LED, OUTPUT); // anything you want to control using a switch e.g. a Led } void loop() { switchState = digitalRead(BUTTON); // read the pushButton State if (switchState != oldSwitchState) // catch change { oldSwitchState = switchState; if (switchState == HIGH) { // toggle lightsOn = !lightsOn; } } if(lightsOn) { digitalWrite(LED, HIGH); // set the LED on } else { digitalWrite(LED, LOW); // set the LED off } }
プログラムがコンパイルされ、アップロードされた後、あなたは実現することができます:ボタンをクリックしてLEDをオンにし、次にこのボタンを押すと、LEDがオフになります。
DownLoad Url osoyoo.com