这一次,我们将学习怎样用按键对Arduino输入信号从而控制LED灯的亮灭。我们将设置两个按钮,按第一个按钮会点亮LED灯,按另外一个按钮则会熄灭LED灯。
需要的材料:
- Arduino 编程软件
- Arduino UNO卡
- 面包板
- 10 x 不同颜色的连接线
- 1 x LED灯
- 1 x 220-1000欧的电阻
- 2 x 按钮
第一步 连接电路
从下图的模拟电路可以看出,和第一期的电路相比,我们加入了两个按钮在Arduino卡的第9号和第8号接口,从而对其输入信号。
下图是按键的结构图,可以看出在按键的四个接口中,A-D和B-C是连接在一起的。
所以在连接按键的时候,注意观察按钮的底部,防止出现同时连接在了AD或者BC两个接口上。
在按钮按下时会对Arduino发出一个LOW的信号,我们就通过这个信号来控制LED的亮灭。
下图是完整的电路展示,在连接第一个按钮时,先从UNO卡的9号接口出,连接按钮的一端,再将按钮的另一端连接在面包板的负极部分就行了。同理,连接8号接口的按钮。
第二步 编辑程序
在连接好了电路之后,我们就开始编写代码了。
首先我们要在setup()函数中设置需要的3个接口, 分别是13(LED), 9(第一个按钮),8(第二个按钮)。
pinMode(13, OUTPUT);
pinMode(9, INPUT_PULLUP); // 按钮设置为input的状态
pinMode(8, INPUT_PULLUP); // 按钮设置为input的状态
然后通过测试8号和9号接口的信号来确定是点亮或者熄灭LED。
if (digitalRead(buttonApin) == LOW) // 按钮在按下后是LOW的状态
{
digitalWrite(ledPin, HIGH);
}
if (digitalRead(buttonBpin) == LOW) // 按钮在按下后是LOW的状态
{
digitalWrite(ledPin, LOW);
}
完整代码:
void setup()
{
pinMode(13, OUTPUT);
pinMode(9, INPUT_PULLUP); // 按钮设置为input的状态
pinMode(8, INPUT_PULLUP); // 按钮设置为input的状态
}
void loop()
{
if (digitalRead(buttonApin) == LOW) // 按钮在按下后是LOW的状态
{
digitalWrite(ledPin, HIGH);
}
if (digitalRead(buttonBpin) == LOW) // 按钮在按下后是LOW的状态
{
digitalWrite(ledPin, LOW);
}
}
第三步 上传程序
按下第一个按钮点亮LED,按下第二个按钮则熄灭LED。