基础部分-串口读取数字信号

本示例展示了在电脑通过USB数据线连接Arduinio控制板通过串口读取开关状态变化。

硬件需求
—Arduino控制板
—开关
—10K欧姆电阻
—杜邦线
—面包板

电路
clip_image002

用红、黑、蓝三根杜邦线将主控板跟面包板连接起来,一开始的红黑两线,分别讲述面包板两边上横着的孔位里,提供5V和GND。第三蓝色线连接2号引脚和按键开关的一脚。同样的引脚通过一个10K下拉电阻接入GND。另外一个按键脚接入5V。
按下按键开关的时候,按键的两端会被接通。不按的时候,按键两端是没有连接的。,引脚是接入GND置地的,当被按下的收,两个引脚连起来,接通到5V,所以讲读到HIGH或者1。
如果数字IO引脚断开不接任何东西,LED会无规律的闪烁。因为输入是“悬浮”着的,并不是稳定连接正极或接地。它会不断的在HIGH和LOW之间跳动。这就是为什么在电路中需要下拉电阻。

原理图
clip_image004

代码

在下面的程序中,一开始要为电脑和控制板设置串口通信频率为9600,
Serial.begin(9600);
下一步,定义数字引脚2,这个引脚会读取按键的输出,定义为输入。
pinMode(2,INPUT);
现在你的setup已经设置完成,开始写loop里面代码。当按键被你按下的时候,5V电压就会流过你的电路,当没有被按下的时候,pin2会通过10k欧电阻接地。这个是数字输入,意味着状态结果只可能是高电平HIGH,1或者低电平LOW,0,不会处于中间状态。
你在loop中需要做的第一件事就是需要创建一个变量来存储你从按键上读取到的信息。从开关上读取到的信息回事1或者0-,你可以用int数据类型,变量名字叫sensorValue,然后设置无论数字引脚2读取到什么都赋值给他。代码如下:
int sensorValue = digitalRead(2);
一旦主控板读取到输入,把这个信息反馈到电脑上,你可以在最后使用串口打印函数Serial.println()
Serial.println(sensorValue);
现在,你打开你的编译软件商的串口监视器,你会看到一连串的0,当你按键下开关的时候,会看到。

int pushButton = 2;
// setuo函数只运行一次。
void setup() {
// 定义通信频率为9600
Serial.begin(9600);
// 把pushbutton引脚设置input模式
pinMode(pushButton, INPUT);
}
// loop 函数会不断运行
Void loop() {
// 读取input引脚
int buttonState = digitalRead(pushButton);
// 输出按键开关的状态:
Serial.println(buttonState);
delay(1); // 每次读取之间间隔1毫秒
}
0
分享到:

评论0

请先

原Arduino365.com域名更改为品牌域名ultirobot.com,承载内容要将更丰富,网站也进行了改版,改善阅读体验。
没有账号? 忘记密码?