Buy from US Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES ここでご購入を!
  1. はじめに
  2. 準備
  3. 接続
  4. スケッチのアップロード
  5. プログラム実行結果
  6. 拡張の例

はじめに

レッスン3では、LEDを1秒ごとに点滅させる方法を学びましたが、ボタンを使ってLEDをコントロールする方法を紹介します。

準備:

接続:

button control 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がオフになります。