本文主要解决一下几个问题:
1 单片机中的信息是如何表达的
2 什么是模数转换
3 Arduino如何做模数转换
4 实操 —— Arduino读取摇杆信息
单片机中的信息是如何表达的
我们都知道,计算机实际上只是几块电路板。那么计算机是如何在这些芯片和电子元件上做计算的呢?或许你知道计算机只识别0和1,而且你或许还知道高电平表示1,低电平表示0。
什么是模数转换
计算机中,我们可以简单的理解这些0和1组成的信号是数字信号(这是很不严谨且不算正确的说法,这里为了便于理解,我们先这么说了,有兴趣的可以自己了解详细定义),与数字信号相对的是模拟信号,我们常常也需要收发模拟信号,比如播放音乐,使用话筒,随意调整光线亮度(随意调整,也就是任何亮度,而不是分段的那种),称重,测量压力,测量电压或者电流或者电阻。这是比较直观的,此外还有一些可能你不太了解的,比如热释电红外传感器(他通常用来做人体检测传感器) ,火焰传感器,红外测距,磁场传感器等等。还有游戏手柄上的摇杆。
在这些场合下,我们就需要对信息做个数模转换或这模数转换,所谓数模转换就是将数字信号变模拟信号,模数转换就是模拟信号变数字信号。
Arduino如何做模数转换
对于Arduino UNO,有6个专门用于AD转换的引脚(A0-A5),任何传感器,输出的模拟信号无非是电压信号或者电流信号,其中,电压信号各类传感器模块中更常见,arduino可以将电压信号转换为用10bit表示的数值。量程是0-5V,也就是说最大值是2^10-1=1023,最小值是0
先了解一个函数
int analogRead ( uint8_t ) :这是arduino的一个模数转换函数,括号里可以填模拟信号输入口,这里我们用的Arduino UNO ,我们就可以填0-5分别对应Arduino UNO的A0-A5口(他们就在单片机上,和其他针脚排在一起,位置很明显)。他的返回值就是模拟信