[Arduino教程3] Digital Read Serial-从串口读取数字信号

原文:http://arduino.cc/en/Tutorial/DigitalReadSerial

译文:http://blog.csdn.net/qffj/article/details/8187622

Examples > Basics

从串口读取数字信号

本实例展示了如何通过用Arduino和电脑之间的USB 建立串口通信  来监视开关的状态。

硬件需求

  • Arduino 开发板
  • 一个瞬时开关、按钮或拨动开关
  • 10k 欧姆电阻
  • 面包板
  • 电线

Circuit

image developed using Fritzing. For more circuit examples, see the Fritzing project page

把3条线连接到 Arduino 开发板. 红色与黑色的2条连接到面包板边上提供5V电源和接地。第3条线连接到数字引脚l pin 2 ,和按钮的一只脚连接在一起。同时这只脚通过一个下拉电阻(10K欧)接地。 另一只脚连接到5V电源。

当按下按钮或者开关时,电路的2点联通。当按钮松开(抬起),按钮的2腿之间没有连接。所以引脚(通过下拉电阻)接地,读数为LOW或0(低电平)。否则,当按钮闭合(按下),按钮的2腿之间产生连接,使得引脚连到5V电平,读数我HIGH(高电平)或1.

如果数字 i/o pin 没有任何连接, LED 可能会乱闪. 这是因为输入不确定。也就是说,没有固定地连接到电压或接地,所以会随机地返回 HIGH 或LOW.所以你需要连接一个下拉电阻。

原理图

代码

在以下程序中,你在setup函数里要做的第一件事是在Arduino 与计算机之间以9600 比特每秒的速率打开串口通信,如这行所示:

Serial.begin(9600);

接着,初始化数字引脚2,这个引脚将从读取你按钮的输出作为输入:

pinMode(2,INPUT);

现在你的 setup (设置)已经完成, 下面开始程序的主loop(循环). 当你的按钮按下,5V电压流过你的电路,而当按钮松开,输入引脚将通过10k电阻接地。作为数字输入,开关只能或者为开状态(在Arduino 作为1或高电平)或关状态(Arduino 作为0或低电平),没有其他选择。

在主循环里你要做的第一件事是建立一个变量来保存从你开关里得到的信息。因为这个信息只能是"1" 或 "0", 你可以用一个int 数据类型. 给这个变量起名 sensorValue, 并且把数字引脚2中得到的任何值赋予它。下行代码完成了这个工作。

int sensorValue = digitalRead(2);

一旦 Arduino 读取了输入,让它把信息以数值形式在计算机上显示。 Serial.println() 命令可以搞定。这是我们的最后一行代码:

Serial.println(sensorValue);

现在,当年从Arduino 环境中打开串口监视器。当开关松开时,你能够看到一连串的"0",当开关闭合时会有一连串的"1"

/*
  从串口读取数字信号
 从pin 2 读取数字输入,把结果打印到串口监视器
 
 这个例程可以公开。
 */


// 数字引脚pin 2连接着一个按钮,给它取个名字:
int pushButton  =  2 ;

// setup过程按下reset时执行一次 :
void  setup ( )  {
   // 初始化串口通信为9600比特每秒的速率:
   Serial. begin ( 9600 ) ;
   // 把连接按钮的引脚作为输入:
   pinMode (pushButton ,  INPUT ) ;
}

// loop过程将一直运行:
void  loop ( )  {
   // 读取输入引脚:
   int buttonState  =  digitalRead (pushButton ) ;
   // 打印按钮状态:
   Serial. println (buttonState ) ;
   delay ( 1 ) ;         // 为了保持稳定,在读取数值之间稍作停顿

See Also:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值