
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.
Hướng dẫn
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
Vật liệu cho bước này:
SparkFun Inventors Kit - V3.21 bộ
Arduino Uno R31 cái
Breadboard1 cái
Push Button2 cái
5mm LED1 cái
330 Ohm Resistor1 cái
10K Ohm Resistor2 cái
Jumper Wires7 cáiCông cụ cần thiết:
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).
Vật liệu cho bước này:
Push Button2 cái
5mm LED1 cái
330 Ohm Resistor1 cái
10K Ohm Resistor2 cái
Breadboard1 cái
Jumper Wires7 cáiArduino 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);
}
}Vật liệu cho bước này:
Arduino Uno R31 cáiCông cụ cần thiết:
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.
Vật liệu
8- $105.00
- 1 cáiTạm thời
- 1 cáiTạm thời
- 2 cái$2.00
- Tạm thời
- $3.00
- $3.00
CC0 Phạm vi công cộng
Bản thiết kế này được phát hành theo CC0. Bạn tự do sao chép, sửa đổi, phân phối và sử dụng cho bất kỳ mục đích nào mà không cần xin phép.
Hỗ trợ nhà sáng tạo bằng cách mua sản phẩm qua bản thiết kế, nơi họ nhận Hoa hồng nhà sáng tạo do nhà bán hàng đặt, hoặc tạo phiên bản mới và kết nối trong bản thiết kế riêng để chia sẻ doanh thu.