記事一覧へ戻る
Arduino/はじめて/6分で読める/

Arduino Unoでボタンを押したらLEDを光らせる配線とスケッチ

LED点滅の次に試しやすい、ボタン入力とLED出力を組み合わせる回路です。INPUT_PULLUPを使うと外付けプルアップ抵抗なしで始められます。

WIRING ORDER

配線順序のスクリーンショット

レッスン用プレビュー
Tsunagu IoT Learn / Arduino
DEVICE
Arduino
breadboard
MODULE
ボタン
配線する順番
  1. 1

    Arduino D13抵抗を通してLEDの長い足(アノード)

    LED出力用のピンです。

  2. 2

    LEDの短い足(カソード)Arduino GND

    LEDの戻り先をGNDにします。

  3. 3

    Arduino D2タクトスイッチの片側

    コードではBUTTON_PINとして読み取ります。

  4. 4

    タクトスイッチの反対側Arduino GND

    INPUT_PULLUPでは押したときにLOWになります。

用意するもの

  • Arduino Uno
  • タクトスイッチ 1個
  • LED 1個
  • 220Ωから330Ω程度の抵抗 1本
  • ブレッドボード
  • ジャンパーワイヤー

配線

接続元接続先確認点
Arduino D13抵抗を通してLEDの長い足(アノード)LED出力用のピンです。
LEDの短い足(カソード)Arduino GNDLEDの戻り先をGNDにします。
Arduino D2タクトスイッチの片側コードではBUTTON_PINとして読み取ります。
タクトスイッチの反対側Arduino GNDINPUT_PULLUPでは押したときにLOWになります。

手順

  1. 1USBを外した状態でLED、抵抗、タクトスイッチをブレッドボードに置きます。
  2. 2LEDはD13から抵抗、LED、GNDへ戻るように配線します。
  3. 3タクトスイッチはD2とGNDを押したときだけつなぐ向きにします。
  4. 4スケッチを書き込み、ボタンを押したときだけLEDが点灯するか確認します。

D2のボタンでD13のLEDを制御するArduinoスケッチ

cpp
const int BUTTON_PIN = 2;
const int LED_PIN = 13;

void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  const bool isPressed = digitalRead(BUTTON_PIN) == LOW;
  digitalWrite(LED_PIN, isPressed ? HIGH : LOW);
}

動かないときの確認

  • INPUT_PULLUPを使っているため、押したときの読み取りがLOWになること
  • タクトスイッチの足を同じ側だけでつないでいないか
  • LEDに抵抗を直列に入れているか
  • D2とD13をコードと配線で取り違えていないか

よくあるミス

  • 押したらHIGHになる前提で条件を書いてしまう
  • タクトスイッチを90度違う向きに置いて常時接続にする
  • LEDの抵抗を省略する

次に試すこと

ボタン入力ができたら、押すたびにLED状態を切り替える回路や、ブザーを鳴らす回路に広げると入力処理の理解が深まります。

デモで配線を確認する