按键
当你按下按键或开关时,电路上的两点就会相通。这个例子展示了你在按下按键时能点亮内置在引脚13上的LED灯。
硬件需求
- Arduino 开发板
- 瞬时按键或开关
- 10K 欧电阻
- 布线用电线
- 电路试验板
电路
图像使用Fritzing.开发。更多的电路例子, 请看 fritzing项目界面
连接三条线到板子上.前两条,红色和黑色, 连接到旁边的电路实验板上的两个长竖行口,去提供5V供电和接地。 第三条线从数字引脚2连接到按键的一个引脚上.同样的按键的引脚连接通过一个下拉电阻器(10 k欧姆)去接地.按键的另一个引脚连接到5V供电。
当按键打开(没有被按压)的时候,按键的两个引脚是不相连的,所以它的引脚是连接到地的(通过下拉电阻器),这时我们读到是一个低电平。当按键关闭(按压)时,使它的两个引脚之间相接,连接到5V的引脚,这样我们就会读到高电平。
你也可以连接这个电路相反的方向,引体向上电阻保持拉高的输入,当按键被按下要拉低。 如果是这样,所描素的动作将是相反。然后当你按下按键关闭时,LED就会导通。
如果你断开所有的数字I / O口引脚,LED可能会没有规律性的闪烁。这是因为输入是“浮空”——也就是说,它会随机返回高电平或低电平。这就是为什么你需要一个上拉或下拉电阻的电路。
原理图
代码
/*
按键
当按下连接到引脚2的按键那么连接到数字引脚13的
发光二极管(LED)就会点亮和熄灭。
电路:
* LED 从引脚13连接到地
*按键从5V连接到引脚 2
* 10K电阻器从地线连接到引脚2
* 注意: 在大多数Arduinos板子上的
引脚13已经有连接LED灯
编写时间: 2005
作者: DojoDave <http://www.0j0.org>
更新:2011年8月30日
更新者: Tom Igoe
翻译:GiveMeAgain
翻译日期:2016年12月26日
说明书,可以在此链接查阅。
http://www.arduino.cc/en/Tutorial/Button
本示例代码公布在公用网络上.
*/
// 一个不会改变的常量。这里用来定义一个引脚:
// 引脚定义:
const int buttonPin = 2; // 按键的引脚号
const int ledPin = 13; // LED引脚号
//一个会变化的变量:
int buttonState = 0; // 读取按键变化状态
void setup() {
// 初始化LED引脚为输出:
pinMode(ledPin, OUTPUT);
// 初始化按键引脚为输入:
pinMode(buttonPin, INPUT);
}
void loop() {
// 读取按键的状态值:
buttonState = digitalRead(buttonPin);
// 检查按键是否被按下.
// 如果是, 这里 buttonState为高电平:
if (buttonState == HIGH) {
// 点亮LED灯:
digitalWrite(ledPin, HIGH);
} else {
// 熄灭LED灯:
digitalWrite(ledPin, LOW);
}
}