【Arduino官方教程第一辑】示例程序 2-4 数字引脚上拉电阻
来源:互联网 发布:php分类信息 编辑:程序博客网 时间:2024/06/10 03:23
数字引脚上拉电阻
本例向你展示pinMode函数中INPUT_PULLUP常量的使用。本例通过Arduino板和电脑间的串口连接来监视按键的状态。当按键输入值为HIGH时,板载LED将被打开。当按键输入值为LOW时,板载LED将被关闭。
完成本例所需的硬件设备
- Arduino板
- 记忆开关,按键或拨动开关
- 面包板
- 面包板跳线
- 杜邦线/面包板连接线
电路搭建
将两根线连到板子上:黑色线连接按键和GND。另一根线从2号引脚链接到按键的另外一脚。
按键或者开关将在被按下时连通两侧。当按键处于开路时(未按下),按键两侧并不会有连接。因为2号引脚上的上拉电阻被激活并连接到了5V,所以当按键被松开时我们读到HIGH。而当按键按下时我们读到LOW,因为此时线路被完全连接到GND。
电路原理图
例程代码
在下列程序中,setup函数用以下代码初始化串口连接(波特率9600):
Serial.begin(9600);
接着,初始化2号引脚为输入模式,并且使用内部上拉电阻:
pinMode(2,INPUT_PULLUP);
接下来的代码初始化13号引脚为输出模式 :
pinMode(13, OUTPUT);
好的,setup函数已经写完,开始写loop函数了。当按键没有被按下时,内部上拉电阻连接到5V,这使得Arduino读出HIGH(数值1)。而当按键被按下的时候,Arduino的引脚被”拉向”GND,因而Arduino读出LOW(数值0)。
在主循环你所要做的第一件事情就是声明一个变量来存储按键的状态。由于按键返回的值只可能是0或1,因而用Int类型正合适。将变量命名为sensorValue,并且让它和按键状态保持一致。以下代码可以轻松做到:
int sensorValue = digitalRead(2);
一旦Arduino读取到了输入,就将值(应是一个十进制数)输出到电脑。你可以在最后一行添加Serial.println()函数:
Serial.println(sensorValue, DEC);
现在,打开Arduino IDE上的串口监视器。按键按下,你可以看到一列稳定的“0”。如果按键被松开,则应看到“1”。
与13引脚连接的板载LED将在按键返回HIGH时打开,在返回LOW时关闭。
/* 数字引脚上拉电阻本例向你展示pinMode函数中INPUT_PULLUP常量的使用。本例将会读取2号引脚上的数字输入,然后输出到串口监视器。 电路连接: * 记忆开关连接2号到GND * 13引脚连LED不像pinMode(INPUT), 这里不需要下拉电阻。20kΩ电阻将电压上拉到5V。这种配置使得按键被松开时返回HIGH,按键被按下时返回LOW。代码是公开的 */void setup() { //打开串口连接 Serial.begin(9600); //配置2号引脚为输入引脚,并且开启上拉电阻 pinMode(2, INPUT_PULLUP); pinMode(13, OUTPUT);}void loop() { //读取按键的值并存入变量 int sensorVal = digitalRead(2); //输出按键的值 Serial.println(sensorVal); // 记住,使用了上拉电阻就意味着按键的使用逻辑反过来了。 // 在松开时返回HIGH,按下时返回LOW。 //在按键按下点亮13号引脚上的LED,在松开时熄灭: if (sensorVal == HIGH) { digitalWrite(13, LOW); } else { digitalWrite(13, HIGH); }}
相关资料
setup()
loop()
pinMode()
digitalRead()
delay()
int
serial
DigitalPins
LED闪烁进阶:不用delay()函数的LED闪烁工程。
按钮:用按钮控制LED。
按键去抖:读取一个按钮状态,并且滤去干扰。
数字引脚上拉电阻:展示pinMode()函数INPUT_PULLUP 常量的使用。
按钮状态改变的探测:记录按钮被按下的次数。
音乐键盘:使用压力传感器和压电扬声器制作三键电子琴。
曲调1:使用压电扬声器播放一段曲调。
曲调2:使用tone()函数操作多个扬声器播放曲调。
曲调3:根据模拟信号通过压电扬声器播放一个音调。
更新进程
日期 日志 译者 2016年4月24日 创建并翻译文档 唐家勋
译者:唐家勋
邮箱:mrsteventang@gmail.com
QQ:649196486
转载请注明出处,一切只因为热爱。
希望您能指出宝贵意见,谢谢。
- 【Arduino官方教程第一辑】示例程序 2-4 数字引脚上拉电阻
- 【Arduino官方教程第一辑】示例程序 1-4 读取数字引脚
- 【Arduino官方教程第一辑】示例程序 4-2 调光器
- 【Arduino官方教程第一辑】示例程序 2-2 按键
- 【Arduino官方教程第一辑】示例程序 1-2 Arduino工程的最小单元
- 【Arduino官方教程第一辑】示例程序-目录
- 【Arduino官方教程第一辑】示例程序 5-1 数组
- 【Arduino官方教程】数字处理示例(四):输入上拉
- 【Arduino官方教程第零辑】基础部分 2-1 数字引脚
- 【Arduino官方教程第一辑】示例程序 4-4 MIDI音乐
- 【Arduino官方教程第一辑】示例程序 2-8 曲调2
- 【Arduino官方教程第一辑】示例程序 4-1 ASCIl表
- 【Arduino官方教程第一辑】示例程序 4-3 数据图表
- 【Arduino官方教程第一辑】示例程序 4-5 多串口[Mega]
- 【Arduino官方教程第一辑】示例程序 4-6 串口控制LED
- 【Arduino官方教程第一辑】示例程序 4-7 读取ASCII字符串
- 【Arduino官方教程第一辑】示例程序 4-8 串口双向调用 (握手连接)
- 【Arduino官方教程第一辑】示例程序 4-9 串口双向调用(使用ASCII字符串)
- 地球物理书籍
- 十大重要算法(转载)
- Send Report from Same Email Address
- OpenCV之core 模块. 核心功能(1)Mat - 基本图像容器 OpenCV如何扫描图像、利用查找表和计时 矩阵的掩码操作 使用OpenCV对两幅图像求和(求混合(blending))
- 汇编语言学习第六章-包含多个段的程序
- 【Arduino官方教程第一辑】示例程序 2-4 数字引脚上拉电阻
- C++语言实现的WebService开发库—gsoap应用介绍
- C++注释规范
- JDK1.8源码学习之ConcurrentHashMap.java
- C中位操作
- PHP7之标量类型-declare
- android studio 中如何让一个module依赖另一个module
- Java中创建多线程的方式
- Android的activity启动模式,和生命周期,及onkeydown方法