此Arduino基础知识讨论了实现外部按钮的ON或OFF状态可以在Arduino内读取或监视的方法。
数字阅读序列
在这里,我们通过示例学习如何通过通过USB执行串行通信来监视交换机的状态。
超过您的Arduino Board,您需要以下基本项目:
硬件
瞬时开关,按钮或推送到开关
10k,1/4瓦欧姆电阻
面包板
连接或跳线线链接。
电路操作
可以使用以下步骤进行操作:
拿3件跳线,并用你的Arduino Board.Two的电线,红色和黑色挂钩,进入面包板侧面的两个长垂直行,成为板的供电线,以便携带需要5V直流到电路板。
第三线用于将数字销2连接到推送开关的引线之一。
该按钮的特定引线也通过向下的10K电阻或接地连接到下拉10k电阻。开关的其他自由铅与5伏电源的正面连接。
通过上述连接,在给出推动时,切换在电路中切换或执行双动作。
通常,当开关处于断开位置时,其两个引线保持隔离,使得通过下拉电阻与地连接的引脚呈现低电平,或逻辑0电平。
在按下的情况下,交换机执行其两个引线的瞬时桥接,使得其引线受到+ 5伏,渲染到它们的高位或逻辑1级。
隔离其余的数字I / O引脚,可能会强制LED去Haywire并导致不稳定的闪烁。这是由于输入没有呈现给任何东西的事实,或者保持在“悬挂”位置 - 意味着它没有被指定为任何明确的逻辑,既不是高于低(+ 5V或0V),这就是我们雇用的原因带开关的下拉电阻。
原理图
了解代码
在下面的下面的程序中,我们开始在设置功能内以每秒9600位数据的速率进行串行通信,这是在Arduino板和附加的计算机之间启动的:Serial.Begin(9600);
在下一步我们触发数字引脚2中,引脚将负责用推送开关作为输入的输出:Pinmode(2,输入);这完成了我们的“设置”,现在我们将我们进入我们的主循环代码。
在按下按钮上,允许5伏透过我们的电路,而输入引脚通过10千米电阻在未置介的状态下与地面连接。
上面是我们呼叫数字输入,这是指交换机只能处于特定状态的条件(由Arduino接受为“1”,或逻辑高)或关闭状态(可视化由Arduino作为“0”或逻辑低),无论如何都没有其他未定义的陈述。
我们需要在程序的主循环中执行的根本行为是应用一个变量,以将信息保持在通过按钮发送的位置。
如上所述,信号以“1”或“0”的形式,我们这里采用int数据类型。我们可以将此变量命名为SensorValue,并将其固定以对应于数字引脚的所有内容。所有这些都可以通过一行代码可实现:
INT SensorValue = DigitalRead(2);一旦Arduino读取了输入,将其以十进制值的形式打印回计算机。
这可以在代码的结束行中的命令Serial.printLn()的帮助下实现。
在此之后,每当串行监视器在Arduino域中启动时,我们将在按钮期间见证一条“0”的链条是打开位置的“0”,并且在按钮处于关闭状态下链接“1”。
/ *
DigitalReadserial.
读取PIN 2上的数字输入,将结果打印到串行监视器
此示例代码位于公共域中。
* /
//数字引脚2具有连接到它的按钮。给它一个名字:
int pushbutton = 2;
//按下重置时,设置例程运行一次:
void setup(){
//初始化每秒9600位的串行通信:
Serial.Begin(9600);
//使按钮的PIN输入输入:
PinMode(按钮,输入);
}
//循环例程在永远又一次运行:
void loop(){
//读取输入引脚:
int buttonstate = digitalread(按钮);
//打印出按钮的状态:
serial.println(ButtonState);
延迟(1);//延迟读取稳定性之间的延迟
}