ebisukeプログラミング初心者脱出黙示録

30歳を過ぎてから始めたプログラミングと競プロの記録。Pythonで取り組んでいます。Arduinoで電子工作も

初心者のArduinoプログラミング入門【ボタンスイッチ編】

Arduinoでプログラミング学習をしていきたいと思います。


この記事ではボタンスイッチとLEDを使用して、ボタンを押したときにLEDを点灯させることが目標です。


目標

ブレッドボードにボタンスイッチとLEDを使って回路を作ります。

先に記載したようにボタンを押すとLEDが光るような制御を行うことが目標です。

回路図

f:id:ebisuke33:20210901214512j:plain

今回はブレッドボード、ボタンスイッチ、LEDと抵抗を使用して回路を作成します。


f:id:ebisuke33:20210901214519p:plain

回路図のようにボタンスイッチは片側をGND、もう一方をピン3に接続します。

LEDも片側をGND、もう一方は220Ωの抵抗を通じてピン7に接続しました。

スケッチ

//ピン3にボタンスイッチ割り付け
const int pinButton = 3;
//ピン7にLEDを割り付け
const int pinLed = 7;

void setup() {
  //ピン3(pinButton)を入力(High)に設定
  pinMode(pinButton, INPUT_PULLUP);
  //ピン7(pinLed)を出力に設定
  pinMode(pinLed, OUTPUT);

}

void loop() {
  //ボタンスイッチ(pinButton)が押されず、HIGHなら{}内の処置を行う
  if (digitalRead(pinButton) == HIGH ){
  //LEDをLOWにする(消灯)
  digitalWrite(pinLed, LOW);
  }
  //それ以外(ボタンスイッチが押されている)なら
  else {
  //LEDをHIGHにする(点灯)
  digitalWrite(pinLed, HIGH);  
  }
}

スケッチの最初では、ボタンスイッチと接続したピン3をpinButtonに、LEDと接続したピン7をpinLedという名前にしています。

これにより、このスケッチ内ではボタンスイッチについて操作を行う場合はpinButton、LEDを操作するときはpinLedと書くことでそれぞれ操作できるようになりました。

次に各ピンの初期設定を行います。

ボタンスイッチが割り付けられているピン3は入力としています。

ボタンスイッチはGNDに接続しているので、押されていないときはHIGHとしておき、ボタンが押されたときはLOW(GND)になるようにPULLUPしています。

LEDが接続されているピン7は出力に設定しています。


loop内ではボタンが押されているかどうかを判定しています。

ボタンスイッチが押されていなければpinButtonはHIGHなので、LEDが接続されているピン7はLOWとなります。したがって電流は流れず、LEDは点灯しません。

ボタンスイッチが押されているときは、else内の処理を行います。
このときはピン7がHIGHとなり、LEDが点灯します。


このスケッチでは、ボタンスイッチの状態に応じてLEDが点灯したり、消灯したりするはず!です。

動作確認

ボタンスイッチを押すとLEDが点灯し、離すと消灯しました!


www.youtube.com

まとめ

今回はボタンスイッチを使って、「押した」「押されていない」という操作の状況をArduinoに認識させることができました。

スイッチをHIGH、LOWというデジタル信号として扱い、プログラムを作る感覚を覚えていきたいです。




この記事で使用しているArduinoは elegooというメーカの互換品です。

部品もついてきて安価なので学習用に購入しました。