
Push Buttons — SIK Circuit 5
Use two push buttons for digital input. Learn about digitalRead(), pull-up resistors, and boolean logic (AND, OR, NOT) to control an LED.
手順
Parts & Introduction
Parts & Introduction
Push buttons are the simplest digital input. This experiment uses two buttons with an XOR logic gate: the LED turns on if you press either button, but turns off if you press both. You'll learn about digitalRead(), pull-up resistors, and boolean logic.
Parts Needed
- 1x Arduino Uno + USB cable
- 1x Breadboard
- 2x Push Buttons
- 1x LED (any color)
- 1x 330Ω Resistor
- 2x 10KΩ Resistors (pull-ups)
- 7x Jumper Wires
このステップの材料:
SparkFun Inventors Kit - V3.21 キット
Arduino Uno R31 個
Breadboard1 個
Push Button2 個
5mm LED1 個
330 Ohm Resistor1 個
10K Ohm Resistor2 個
Jumper Wires7 個必要な工具:
Hardware Hookup
Hardware Hookup
Wiring Instructions
- Place both push buttons across the center canyon of the breadboard.
- Button 1: Connect one pin to GND. Connect the opposite diagonal pin to Arduino Digital Pin 2. Add a 10K resistor between Pin 2 and 5V (pull-up).
- Button 2: Connect one pin to GND. Connect the opposite diagonal pin to Arduino Digital Pin 3. Add a 10K resistor between Pin 3 and 5V (pull-up).
- Connect LED positive leg to Digital Pin 13, negative leg through 330Ω resistor to GND.
Note: The pull-up resistors hold the input HIGH when the button is not pressed. Pressing the button connects the pin to GND (LOW).
このステップの材料:
Push Button2 個
5mm LED1 個
330 Ohm Resistor1 個
10K Ohm Resistor2 個
Breadboard1 個
Jumper Wires7 個Arduino Code
Arduino Code
Open the Arduino IDE and upload the following sketch to your Arduino board.
/*
SparkFun Inventor's Kit
Example sketch 05 — PUSH BUTTONS
Use pushbuttons for digital input.
LED on if pressing button 1 OR button 2, but not both (XOR).
Hardware connections:
Button 1: one pin to GND, diagonal pin to digital pin 2
10K pullup resistor between pin 2 and 5V
Button 2: one pin to GND, diagonal pin to digital pin 3
10K pullup resistor between pin 3 and 5V
LED: positive to pin 13, negative through 330 ohm to GND
This code is completely free for any use.
*/
const int button1Pin = 2;
const int button2Pin = 3;
const int ledPin = 13;
void setup()
{
pinMode(button1Pin, INPUT);
pinMode(button2Pin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop()
{
int button1State, button2State;
button1State = digitalRead(button1Pin);
button2State = digitalRead(button2Pin);
// XOR logic: on if either pressed, off if both pressed
if (((button1State == LOW) || (button2State == LOW))
&& !
((button1State == LOW) && (button2State == LOW)))
{
digitalWrite(ledPin, HIGH);
}
else
{
digitalWrite(ledPin, LOW);
}
}このステップの材料:
Arduino Uno R31 個必要な工具:
Test & Experiment
Test & Experiment
What You Should See
The LED turns on when you press either button individually. It turns off when you press both buttons simultaneously (XOR logic).
Troubleshooting
- Not responding: Push buttons are square — it's easy to put them in the wrong orientation. Try rotating 90°.
- LED always on or always off: Check the pull-up resistor connections. Without them, the input pin floats and reads random values.
Experiments to Try
- Change the logic to AND (both buttons required) or simple OR.
- Use the buttons to control an RGB LED — one button for color, one for brightness.
- Try using
INPUT_PULLUPmode to eliminate the external resistors.
材料
8- ¥164
- プレースホルダー
- 1 個プレースホルダー
- ¥2
- プレースホルダー
CC0 パブリックドメイン
このブループリントはCC0で公開されています。許可を求めずに、自由にコピー、修正、配布、あらゆる目的で使用できます。
メイカーを応援するには、ブループリント経由で製品を購入してください。メイカーには メイカーコミッション がベンダーにより設定されています。または、このブループリントの新しいイテレーションを作成し、自分のブループリントにコネクションとして含めて収益を共有できます。