分享

Arduino基础教程:数字输出/输入、模拟输出/输入、串口输出/输入

 宽宽r700 2016-09-24

所属分类:Arduino系统 外设板
上传用户: xhq513738
发布时间: 2012-12-11 10:57
浏览:18168次

  • 详细说明

摘要:

第一个Arduino程序:数字输出

我们知道Arduino的引脚上有数字量IO和模拟量IO。至于其中它们有什么不同,这里就不再阐述。

而下面将用“点亮一个灯”的简单程序,说明Arduino的数字输出功能。也许很好理解,在单片机的编程中“点亮一个灯”程序跟写“Hello World”的程序,两者有异曲同工之妙。都是占领了硬件编程和软件编程的TEST地位。

硬件电路连接:将Arduino的第2脚引出来接上1K电阻,将发光二极管负极接电阻的另一端,正极接电源(VCC)。

Arduino基础教程:数字输入

在数字电子的世界中,有输出,也会有输入。这跟你在生活中有财务支出,也有收入类似。开关(switch)是一种最基本的输入形式了。通常我们按一个开关就能打开电灯,或者按一个开关打开用电器的电源。开关的功能是连接或断开电路。

Arduino的数字IO口上能读出两个状态值,一个是高电平(5V),另一个是低电平(0V)。所以我们只要设计一个电路能让Arduino的引脚在高低电平这两个状态值之间切换,就能让Arduino分辨出开关的状态了。

Arduino基础教程:模拟输入

Arduino能对数字信号进行有效的处理和识别,但是生活上很多东西,很多概念都不是一个数字量。比如说温度值,就是一个很好的例子,它是一个连续变化的信号,不可能有0到1的突变。这也是模拟输入存在的必要性了。

很好理解。我们只要使用传感器(sensor),将模拟量有效转换为Arduino能够识别的形式。例如转换成电压。

再如,一种温度传感器能够将温度值转换成0V到5V间的某个电压,比如0.3V、3.27V、4.99V等等。由于传感器表达的是模拟信号,它不会像数字信号那样只有简单的高电平和低电平,而有可能是在这两者之间的任何一个数值。至于到底有多少可能的值则取决于模数转换的精度,精度越高能够得到的值就会越多。

而Arduino采用的ADC(Analog to Digital Converter),称模数转换,每一个模数转换器的精度都是10bit,也就是说能够读取1024(2^10 = 1024)个状态。在Arduino的每一个模拟输入管脚上,电压的变化范畴是从0V到5V,因此Arduino能够感知到的最小电压变化是4.8毫伏(5/1024 = 4.8mV)。

Arduino基础教程:模拟输出

既然都有了模拟输入了,当然少不了模拟输出。还是那个例子,你总吃饭不拉怎么行呢?!开个玩笑,禁止想象!

但也正如你想象的,现实生活中可能会遇到要输出0和1之外的数值。有时候除了开灯,关灯之外,可能还需要调光,而调光也就是模拟的一种输出方式。

由于Arduino的微控制器只能产生高电平(5V)或者低电平(0V),而不能产生变化的电压,因此必须采用脉宽度调制技术(PWM,Pulse Width Modulation)来模拟电压变化。

Arduino基础教程:串口输出

先这么理解,Arduino是个独立的个体,可以说是一个没有外围设备的计算机微控制系统。而在一些应用的环境下,我们需要让Arduino跟其他设备进行通信。在微控制领域,常见的是使用串行通信。我们将通过Arduino连接PC机进行通信,说明串行通信的一个例子:串口输出功能。

Arduino基础教程:串口接收

很多时候,我们需要用Arduino接收PC机下发的命令,有效的识别后,进行相应的响应。也就是通过PC机(上位机)控制Arduino(下位机)。

而实现这一功能 也是通过Arduino的串行口通信来完成的。上一篇文章讲了串行口输出,其实也就是串行口的一个发送数据功能,而这篇文章,也就是讲Arduino串口通信的接收数据功能。通过Serial.read()函数,我们可以接收到从串口发来的数据。

一样的,将Arduino UNO 通过USB线与PC机连接

详情见PDF文档(点击PDF文档下载)


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多