Arduino 杜邦线模拟按键控制 LED 灯亮灭实战分享

一、硬件介绍

Arduino 开发板

Arduino 是一款开源电子原型平台,具备易用性高、扩展性强等特点。以常见的 Arduino Uno 板为例,它拥有数字引脚和模拟引脚。数字引脚可用于输入输出信号,在本项目中用于连接模拟按键和 LED 灯。其通过 USB 接口与电脑相连,实现数据传输与供电功能,还设有电源接口等,为外接设备提供稳定工作电压。

杜邦线

杜邦线是电子实验中常用的连接线,颜色多样,便于区分线路。在本项目里,杜邦线用于连接 Arduino 开发板引脚与模拟按键(通过接地模拟按键按下)、LED 灯,实现电路导通与信号传输。

LED 灯

LED 即发光二极管,是能将电能转化为可见光的半导体器件。本项目使用的是小功率 LED 灯,具有单向导电性,需串联合适阻值的限流电阻(一般 220Ω 左右 ),防止因电流过大烧毁。

二、硬件连接图(Fritzing 绘制)

图中,一根杜邦线一端接 Arduino 开发板数字引脚 2,另一端接开发板 GND 引脚,模拟按键按下接地状态;另一根杜邦线一端接数字引脚 3,另一端经 220Ω 限流电阻接 LED 灯正极,LED 灯负极接开发板 GND 引脚,完成硬件连接搭建。

三、代码展示

const int buttonPin = 2;  // 按键连接的引脚
const int ledPin = 3;     // LED连接的引脚
int buttonState = HIGH;    // 初始按键状态设为高电平(按键未按下时的状态)
int lastButtonState = HIGH; // 上一次的按键状态
unsigned long debounceDelay = 50; // 消抖延时
unsigned long lastDebounceTime = 0; // 上次消抖的时间

void setup() {
  pinMode(buttonPin, INPUT_PULLUP); // 将按键引脚设置为输入上拉模式
  pinMode(ledPin, OUTPUT); // 将LED引脚设置为输出模式
  digitalWrite(ledPin, LOW); // 初始时LED灯熄灭
  Serial.begin(9600); // 初始化串口,用于调试(可选)
}

void loop() {
  int reading = digitalRead(buttonPin); // 读取按键引脚的状态

  if (reading != lastButtonState) {
    lastDebounceTime = millis(); // 更新消抖时间
  }

  if ((millis() - lastDebounceTime) > debounceDelay) {
    if (reading != buttonState) {
      buttonState = reading;

      if (buttonState == LOW) {
        digitalWrite(ledPin,!digitalRead(ledPin)); // 按下按键时,切换LED灯的状态
      }
    }
  }

  lastButtonState = reading;
}

代码解释

  1. 变量定义:定义buttonPin(按键连接引脚)、ledPin(LED 连接引脚) 。buttonState记录当前按键状态,初始为高电平(按键未按下) ,lastButtonState记录上一次按键状态 。debounceDelay为消抖延时,lastDebounceTime记录上次消抖时间,用于软件消抖。
  2. setup 函数:将buttonPin设为输入上拉模式,按键未按下时引脚为高电平,按下时为低电平;ledPin设为输出模式,控制 LED 灯亮灭,初始设置 LED 灯熄灭 。Serial.begin(9600)初始化串口,用于调试(可按需保留 )。
  3. loop 函数:读取按键引脚状态reading 。状态不同时更新消抖时间lastDebounceTime 。距离上次消抖时间超debounceDelay(50ms )时,检查按键状态。若变为低电平(按键按下 ),通过digitalWrite(ledPin,!digitalRead(ledPin))切换 LED 灯状态 。最后更新上一次按键状态lastButtonState

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值