本Arduino基础课程讨论了实现代码的方法,通过代码可以在Arduino内读取或监控外部按钮的ON或OFF状态。
数字阅读系列
在这里,我们通过一个示例学习如何通过执行串行通信通过Arduino和您的PC通过USB监控开关的状态。
除了Arduino Board之外,您还需要以下基本物品:
硬件
开关,开关瞬间的开关、按钮或按到接通的开关
10k, 1/4瓦特欧姆电阻
电路试验板
连接或跳线连接。
电路操作
操作步骤如下:
取3条跳线,将它们与Arduino板连接起来。两根电线,红色和黑色,连接到面包板侧面的两排长长的垂直电线上,这两排电线成为电路板的电源线,以便将所需的5V DC传送到电路板上。
第三根线用于连接数字引脚2到按入开关的一根引线。
按钮的这个特殊引线还与一个向下拉10k电阻连接到负电源轨或地面。开关的另一自由引线与5伏电源正极相连。
通过上述连接,当施加一个推力时,开关在电路中进行切换或执行双重动作。
通常当开关处于断开位置时,它的两个引线保持隔离,这样通过下拉电阻与地连接的引脚呈现低电平,或逻辑0电平。
在受压的情况下,开关执行其两个引线的瞬间桥接,使其引线受到+ 5伏的电压,使它们处于HIGH或逻辑1水平。
将数字i/o引脚与其他东西隔离开来,可能会迫使LED失控,导致不稳定的闪烁。这是由于事实输入没有呈现任何东西,或保持在“挂”的位置-意味着它没有指定任何确定的逻辑,既不高也不低(+5V或0V),这就是为什么我们使用下拉电阻与开关。
示意图
理解的代码
在下面的程序中,我们开始在设置函数中以每秒9600位数据的速率进行串行通信,这是在Arduino板和附加的计算机之间启动的:serial .begin(9600);
在下一步,我们触发数字引脚2,该引脚将负责输出与推开关作为输入:pinMode(2, input);这就完成了我们的“设置”,现在我们进入我们的代码的主循环。
这里按下按钮,5伏特被允许通过我们的电路,而输入引脚通过10千欧姆的电阻连接到地面,当它在一个未按下的条件。
上面是世界卫生大会我们称之为数字输入,这指的是一个条件开关只能在一个特定的国家一个状态(接受Arduino作为一个“1”,或逻辑高)或关闭状态(由Arduino可视化作为一个“0”,或逻辑低),没有任何其他未定义投资之间。
在程序的主循环中,我们需要执行的基本操作是应用一个变量来保存通过按钮发送的信息。
如上所述,信号的形式为“1”或“0”,这里我们使用int数据类型。我们可以将这个变量命名为sensorValue,并将其固定为对应数字引脚2上读取的所有内容。所有这些都可以通过一行代码实现:
int sensorValue = digitalRead(2);一旦Arduino读取输入,将其以十进制形式打印回计算机。
这可以通过命令Serial.println()的帮助来实现,在代码的最后一行:
此后,无论何时在Arduino域中启动Serial Monitor,当按钮处于开启状态时,我们会看到一连串的“0”,当按钮处于关闭状态时,会看到一连串的“1”。
/*
DigitalReadSerial
读取引脚2上的数字输入,将结果打印到串行监视器
此示例代码位于公共域。
*/
//数字pin 2有一个按钮连接到它。给它起个名字:
int pushButton = 2;
//当你按下reset键时,setup例程运行一次:
无效的设置(){
//初始化串行通信在9600位每秒:
Serial.begin (9600);
//将按钮的大头针作为输入:
pinMode(按钮、输入);
}
//循环程序一遍又一遍地运行,直到永远:
无效循环(){
//读取输入引脚:
int buttonState = digitalRead(pushButton);
//打印按钮的状态:
以buttonState);
延迟(1);//延迟读取之间的稳定性
}