艺术
美容与健康
工艺
文化与历史
娱乐
环境
食品与饮料
绿色未来
逆向工程
科学
体育
技术
可穿戴设备
Push Buttons — SIK Circuit 5
Ed

创建者

Ed

17. March 2026

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.

说明

1

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
2

Hardware Hookup

Wiring Instructions

  1. Place both push buttons across the center canyon of the breadboard.
  2. 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).
  3. 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).
  4. 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).

3

Arduino Code

Open the Arduino IDE and upload the following sketch to your Arduino board.

push_buttons.inoarduino
/*
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);
  }
}
4

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_PULLUP mode to eliminate the external resistors.

材料

  • SparkFun Inventor's Kit - V3.2 - 1 kitNOK 999.20
    查看
  • Arduino Uno R3 - 1 piece占位符
    查看
  • Breadboard - 1 piece占位符
    查看
  • Push Button - 2 piecessNOK 11.20
    查看
  • 5mm LED - 1 piece占位符
    查看
  • 330 Ohm Resistor - 1 pieceNOK 24.00
    查看
  • 10K Ohm Resistor - 2 piecessNOK 24.00
    查看
  • Jumper Wires - 7 piecessNOK 39.20
    查看

所需工具

  • Computer with Arduino IDE

CC0 公共领域

此蓝图以 CC0 协议发布。你可以自由复制、修改、分发和使用此作品,无需征得许可。

通过购买蓝图中的产品支持创客,他们将获得 创客佣金 (由供应商设定),或创建此蓝图的新版本并将其作为连接包含在你自己的蓝图中以分享收入。

讨论

(0)

登录 加入讨论

加载评论中...