Digital Read Serial
原文地址:http://arduino.cc/en/Tutorial/DigitalReadSerial。
这个例子通过Arduino和电脑之间的USB建立了一个串口通讯,监视开关的状态。
所需硬件
- Arduino主板
- 按钮开关
- 10kΩ电阻
- 面包板
- 面包板跳线
电路
将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); }文件下载(已下载 2837 次)
发布时间:2011/12/31 下午3:07:29 阅读次数:8480