我整理了一套Arduino零基础 从入门到高级 完整系统课程,包含视频讲解、全套源码、接线图纸、库文件、ESP32/ESP32-S3 摄像头 & 物联网实战项目,循序渐进,新手也能零基础吃透。需要系统学习可以查看我主页专属课程(零基础保姆级Arduino教程从入门到实战_在线视频教程-CSDN程序员研修院)。
前言:本文针对Arduino入门学习者,详细讲解“读取按钮数字输入”的核心实验,拆解按钮工作原理、数字输入读取方法、上拉/下拉电阻的作用及接线技巧,结合课堂实验和课后练习,帮助新手快速掌握Arduino数字输入的基础应用,为后续复杂传感器应用打下基础。
适用人群:Arduino入门新手、嵌入式实验初学者、数字输入基础学习者
实验目标:理解按钮的传感器属性,掌握digitalRead()函数的用法,学会按钮的正确接线(含上拉/下拉电阻),完成“按钮控制LED亮灭”实验,实现“按住按钮点亮、松开熄灭”的功能。
一、实验核心认知:按钮也是传感器
很多新手会误以为“传感器”是复杂的电子元件,其实我们常见的按钮(轻触开关)也是一种简单的传感器——它通过自身的通断,向Arduino发送“导通”或“断开”的信号,Arduino通过读取这些信号,实现对其他元件(如LED)的控制。
1.1按钮的基本结构与工作原理
我们实验中常用的四脚按钮,内部结构简单,核心是“弹片式通断”:
- 引脚关系:四脚按钮的对角引脚(如A与C、B与D)内部默认相连,形成两组独立的连接点;
- 工作状态:未按下时,内部弹片处于断开状态,两组对角引脚不导通;按下时,按钮压下弹片,两组对角引脚导通;松开后,弹片回弹,恢复断开状态;
- 核心作用:通过机械按压的动作,实现电路的通断切换,进而向Arduino传递数字信号(高电平/低电平)。
二、核心知识点:Arduino数字输入读取
Arduino的所有数字引脚(2~13)和模拟引脚(A0~A5),都可以作为数字输入引脚,用于读取外部设备(如按钮)的通断信号,核心是区分“高电平(1)”和“低电平(0)”。
2.1数字输入的电平判断规则
Arduino对数字输入的电平判断有明确标准,基于电源电压(默认5V):
- 高电平(对应数字1):输入电压超过电源电压的一半(约2.6V);
- 低电平(对应数字0):输入电压低于0.25V;
- 注意:若引脚未连接任何电路,会处于“浮动信号”状态,电平随机变化(一会儿高、一会儿低),导致Arduino读取错误,这也是我们需要用到上拉/下拉电阻的核心原因。
2.2核心函数:digitalRead()详解
读取数字输入的核心函数是digitalRead(),专门用于读取指定引脚的电平状态,语法简单,实用性强。
- 语法:
digitalRead(引脚号); // 引脚号可选择2~13或A0~A5
- 返回值:布尔型(bool),要么是HIGH(高电平,对应1),要么是LOW(低电平,对应0);
- 用法示例:将读取到的电平状态赋值给布尔型变量,方便后续逻辑判断,如
bool buttonState = digitalRead(2);。
三、关键重点:按钮的正确接线(避免短路与浮动信号)
按钮接线是实验的重点,也是新手最容易出错的地方——错误接线可能导致短路、引脚损坏,或出现“浮动信号”导致读取异常,下面详细讲解两种常用接线方式(上拉电阻、下拉电阻),均使用10KΩ电阻(色环:棕黑黑红棕)。
3.1错误接线警示(禁止这样接)
若直接将按钮一端接5V、另一端接Arduino数字引脚,未串联电阻,会导致电路短路,可能烧毁Arduino引脚或开发板,务必避免这种接线方式。
3.2上拉电阻接线(推荐,文档重点)
上拉电阻的核心作用是“将引脚电平默认拉高到高电平”,避免浮动信号,接线步骤如下(以数字2号引脚为例):
- 按钮的一组对角引脚(如A和C)中,一端(A)连接Arduino的5V引脚;
- 按钮的另一端(C)连接两个支路:一个支路连接Arduino的数字2号引脚,另一个支路通过10KΩ电阻连接GND;
- 电路状态:
- 未按下按钮时:数字2号引脚通过上拉电阻连接GND,输入为高电平(1);
- 按下按钮时:按钮导通,数字2号引脚直接连接5V,输入为低电平(0)。
补充:Arduino引脚内置上拉电阻,可通过代码直接启用(pinMode(引脚, INPUT_PULLUP)),无需外接10KΩ电阻,能简化接线,后续代码会详细说明。
3.3下拉电阻接线(备用方案)(推荐,文档重点)
下拉电阻的核心作用是“将引脚电平默认拉低到低电平”,接线逻辑与上拉电阻相反,步骤如下(以数字2号引脚为例):
- 按钮的一组对角引脚(如A和C)中,一端(A)连接GND;
- 按钮的另一端(C)连接两个支路:一个支路连接Arduino的数字2号引脚,另一个支路通过10KΩ电阻连接5V;
- 电路状态:
- 未按下按钮时:数字2号引脚通过下拉电阻连接5V,输入为低电平(0);
- 按下按钮时:按钮导通,数字2号引脚直接连接GND,输入为高电平(1)。
总结:上拉和下拉电阻的核心目的一致——避免引脚处于浮动状态,确保Arduino能稳定读取按钮的通断信号,两者仅默认电平状态和接线逻辑不同。
四、课堂实验:按钮控制LED亮灭(基础版)
实验要求:编写程序,用按钮控制外接LED灯,实现“按住按钮时点亮,松开按钮时熄灭”的功能,采用下拉电阻接线方式(新手易上手)。
4.1硬件准备
- Arduino Uno开发板(或兼容板)
- 四脚按钮1个
- LED灯1个
- 10KΩ电阻1个(上拉/下拉用)
- 220Ω电阻1个(保护LED,避免烧毁)
- 杜邦线若干(公对母、母对母)
- 面包板1个(方便接线)
- 计算机1台(安装Arduino IDE 1.8.5及以上版本)
4.2硬件接线(下拉电阻方式)
- LED接线:LED正极(长脚)通过220Ω电阻连接Arduino 9号引脚,LED负极(短脚)连接GND;
- 按钮接线:按钮一端连接GND,另一端分两路:一路连接Arduino 2号引脚,另一路通过10KΩ电阻连接5V;
- 将Arduino通过USB数据线连接计算机,确认电脑识别开发板(设备管理器查看COM口)。
4.3完整实验代码(可直接上传)
cpp |
4.4实验步骤与现象
- 将上述代码复制到Arduino IDE,选择对应开发板(Arduino/Genuino Uno)和COM口;
- 点击“上传”按钮,等待代码上传完成(上传成功会提示“上传成功”);
- 按下按钮:LED灯点亮,串口监视器(波特率9600)显示“按钮已按下,LED点亮”;
- 松开按钮:LED灯熄灭,串口监视器显示“按钮已松开,LED熄灭”,完全符合实验要求。
4.5常见问题排查
- 问题1:LED不亮,按钮按下无反应?→ 检查LED正负极是否接反、220Ω电阻是否串联;确认按钮接线正确,下拉电阻未接反。
- 问题2:LED常亮或常灭,不受按钮控制?→ 排查引脚接错(如按钮接错引脚、LED接错引脚);检查是否出现浮动信号,确认下拉电阻正常连接。
- 问题3:上传失败?→ 确认COM口选择正确、开发板型号匹配;关闭串口监视器后重新上传。
五、课后练习:上拉电阻控制LED(进阶版)
练习要求:用上拉电阻连接按钮控制LED灯,实现“按下按钮点亮,松开按钮熄灭”的功能,掌握上拉电阻的接线与代码适配。
5.1练习提示
- 接线方式:采用上拉电阻接线(外接10KΩ电阻)
2.代码适配:上拉电阻模式下,按钮未按下时引脚为高电平(HIGH),按下时为低电平(LOW),需修改逻辑判断条件(与下拉电阻相反);
5.2练习参考代码(内置上拉电阻版)
cpp |
六、实验总结
本次实验核心是掌握Arduino数字输入的读取方法,理解按钮的传感器属性和上拉/下拉电阻的作用,重点总结3点:
- 按钮是简单的通断传感器,通过机械按压实现电路通断,向Arduino传递高/低电平信号;
- digitalRead()函数是读取数字输入的核心,返回HIGH(1)或LOW(0),使用前需将引脚设为INPUT模式;
- 上拉/下拉电阻的核心作用是避免引脚浮动信号,确保读取稳定,两者接线逻辑相反,可根据需求选择。
对于Arduino初学者,数字输入是基础中的基础,掌握按钮控制LED的实验,能快速理解“输入-判断-输出”的核心逻辑,为后续学习红外传感器、触摸传感器等复杂输入设备打下坚实基础。如果在实验中遇到问题,欢迎在评论区留言交流~