Digital Read Serial

原文地址:http://arduino.cc/en/Tutorial/DigitalReadSerial。

这个例子通过Arduino和电脑之间的USB建立了一个串口通讯,监视开关的状态。

所需硬件

电路

电路

将3根导线连接到Arduino板上,红色和黑色的导线连接到面包板的5V和接地(Gnd)。第三根线连接pin2和按钮开关的一个脚,这个脚也同时连在10k欧姆下拉电阻上。开关的另一脚接5V电源。

当你按下按钮时会连接电路的2个点。当按钮没有被按下时,2根引脚没有被接通,所以pin2是接地的(通过下拉电阻)、是低电平或0。当按钮按下时,2根引脚连接,pin2接通5V,所以pin2读到高电平或者1。

当你在数字I/O接口不连接任何东西时,LED灯会不规则地闪烁。这是因为输入是“floating”的,没有一个固定的电压或者接地,会随机的显示高低电平,所以需要在电路上装一个下拉电阻的避免产生这种现象。

原理图

原理图

代码

在下面的程序中,你首先需要使用以下代码在setup()函数中设置Arduino和计算机之间的串口通讯,9600位/秒:

Serial.begin(9600); 

然后初始化数字接口pin 2,这个接口会将按钮开关的输出作为它的输入: pinMode(2,INPUT); 完成设置后开始处理代码的主循环。当按钮按下时,5V电源接通,当松开时输入接口pin2会通过10k欧姆电阻接地。这是一个数字输入,意思是开关要么是on状态(被Arduino视为“1”或“HIGH”),要么是off状态(被Arduino视为“0”或“LOW”),而没有其他的状态。

在主循环中首先要做的就是建立一个变量保存来自于开关的信息。由于开关的信息不是1就是0,你可以使用int数据类型,将这个变量命名为sensorValue,将他设置为等于从pin2读到的任何值。用一行代码就可以完成所有的工作:

int sensorValue = digitalRead(2); 

当Arduino读取到输入后,把它打印到电脑。这可以在最后一行使用命令Serial.println()实现:

Serial.println(sensorValue); 

现在,当你打开Arduino IDE的串口监视器,如果开关是打开的,就会看到“0”的数据流,如果开关是断开的,则是“1”的数据流。

/* DigitalReadSerial
    读取数字接口2的输入,并将结果打印到串口监视器 
*/

void setup()
{
    Serial.begin(9600);
    pinMode(2, INPUT);
}

void loop()
{
    int sensorValue = digitalRead(2);
    Serial.println(sensorValue);
}
文件下载(已下载 2836 次)

发布时间:2011/12/31 15:07:29  阅读次数:7797

2006 - 2024,推荐分辨率1024*768以上,推荐浏览器Chrome、Edge等现代浏览器,截止2021年12月5日的访问次数:1872万9823 站长邮箱

沪ICP备18037240号-1

沪公网安备 31011002002865号