
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- $105.00
- 占位符
- 1 个占位符
- $2.00
CC0 公共领域
此蓝图以 CC0 协议发布。你可以自由复制、修改、分发和使用此作品,无需征得许可。
通过购买蓝图中的产品支持创客,他们将获得 创客佣金 (由供应商设定),或创建此蓝图的新版本并将其作为连接包含在你自己的蓝图中以分享收入。