ボタン

概要

このレッスンでは、Arduinoを使用してボタンでLEDを制御する方法について学びます。ボタンとLEDは、リモコン、懐中電灯、インタラクティブインスタレーションなど、さまざまな電子デバイスにおいて基本的なコンポーネントです。このセットアップでは、ボタンを入力デバイスとして使用し、LEDの状態を制御します。

ボタンはArduino Uno R4ボードのピン12に、LEDはピン13に接続されています。ボタンが押されると、Arduinoに信号が送られ、LEDが点灯します。逆に、ボタンが放されると、LEDが消えます。このシンプルだが効果的なメカニズムは、ホームオートメーションシステム、インタラクティブディスプレイなど、より複雑なプロジェクトの基礎となることができます。

このレッスンを終えるころには、ボタンからの入力を読み取り、それを使用してLEDを制御する方法を理解し、Arduinoの入出力操作に関する基本的な理解を得ることができます。

必要なコンポーネント

このプロジェクトには、以下のコンポーネントが必要です。

全セットを購入するのが便利です。こちらがリンクです:

名称

このキットのアイテム数

リンク

Elite Explorer Kit

300+

Elite Explorer Kit

以下のリンクから個別に購入することもできます。

コンポーネント紹介

購入リンク

Arduino Uno R4 WiFi

-

ブレッドボード

BUY

ジャンパーワイヤー

BUY

抵抗器

BUY

コンデンサ

BUY

ボタン

BUY

配線図

../_images/18-button_bb.png

回路図

ボタンの一方の端をピン12に接続し、プルダウン抵抗と0.1uF(104)のコンデンサー(ボタンが動作する際にジッターを排除し、安定したレベルを出力するため)と接続します。抵抗の他端をGNDに、ボタンの他端のピンの一つを5Vに接続します。ボタンを押すと、ピン12は5V(HIGH)になり、同時にピン13(LEDが組み込まれている)をHighに設定します。次にボタンを放すと(ピン12がLOWに変わる)、ピン13はLowになります。そのため、ボタンを押して放すたびに、LEDが交互に点灯し消えるのが見られます。

../_images/18_button_schematic.png

コード

注釈

  • ファイル 18-button.inoelite-explorer-kit-main\basic_project\18-button のパスで直接開くことができます。

  • または、このコードをArduino IDEにコピーしてください。

コード解析

  1. 定数と変数の定義

    このセグメントでは、ボタンとLEDのピン番号が定義されます。また、 buttonState 変数が宣言され、ボタンの現在の状態を保持します。

    const int buttonPin = 12;
    const int ledPin = 13;
    int buttonState = 0;
    
  2. セットアップ関数

    setup() 関数は、Arduinoボードが起動するときに一度実行されます。ボタンとLEDのピンモードは、 pinMode 関数を使用して設定されます。

    void setup() {
      pinMode(buttonPin, INPUT);
      pinMode(ledPin, OUTPUT);
    }
    
  3. メインループ

    loop() 関数は繰り返し実行されます。このループ内で、 digitalRead() 関数を使用してボタンの状態を読み取ります。ボタンが押されているかどうかに応じて、LEDを点灯または消灯します。

    void loop() {
      buttonState = digitalRead(buttonPin);
      if (buttonState == HIGH) {
        digitalWrite(ledPin, HIGH);
      } else {
        digitalWrite(ledPin, LOW);
      }
    }