Arduino/はじめて/6分で読める/
Arduino Unoでボタンを押したらLEDを光らせる配線とスケッチ
LED点滅の次に試しやすい、ボタン入力とLED出力を組み合わせる回路です。INPUT_PULLUPを使うと外付けプルアップ抵抗なしで始められます。
WIRING ORDER
配線順序のスクリーンショット
Tsunagu IoT Learn / Arduino
DEVICE
Arduino
breadboard
MODULE
ボタン
配線する順番
- 1
Arduino D13 → 抵抗を通してLEDの長い足(アノード)
LED出力用のピンです。
- 2
LEDの短い足(カソード) → Arduino GND
LEDの戻り先をGNDにします。
- 3
Arduino D2 → タクトスイッチの片側
コードではBUTTON_PINとして読み取ります。
- 4
タクトスイッチの反対側 → Arduino GND
INPUT_PULLUPでは押したときにLOWになります。
用意するもの
- Arduino Uno
- タクトスイッチ 1個
- LED 1個
- 220Ωから330Ω程度の抵抗 1本
- ブレッドボード
- ジャンパーワイヤー
配線
| 接続元 | 接続先 | 確認点 |
|---|---|---|
| Arduino D13 | 抵抗を通してLEDの長い足(アノード) | LED出力用のピンです。 |
| LEDの短い足(カソード) | Arduino GND | LEDの戻り先をGNDにします。 |
| Arduino D2 | タクトスイッチの片側 | コードではBUTTON_PINとして読み取ります。 |
| タクトスイッチの反対側 | Arduino GND | INPUT_PULLUPでは押したときにLOWになります。 |
手順
- 1USBを外した状態でLED、抵抗、タクトスイッチをブレッドボードに置きます。
- 2LEDはD13から抵抗、LED、GNDへ戻るように配線します。
- 3タクトスイッチはD2とGNDを押したときだけつなぐ向きにします。
- 4スケッチを書き込み、ボタンを押したときだけLEDが点灯するか確認します。
D2のボタンでD13のLEDを制御するArduinoスケッチ
cppconst 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状態を切り替える回路や、ブザーを鳴らす回路に広げると入力処理の理解が深まります。
デモで配線を確認する