第七章 外接传感器实验

材料:四位数码管或OLED 用作显示数据,电位器,声音,光线, 温湿度,红外,压力,超声波等传感器。

1,开关信号(数字)传感器

微处理器最擅长的就是开关信号,也就是0和1,也就是接高电平和低电平,也就是接电源和地。

比如板载的按钮就是个开关,bit读取端口的数据,根据数据0或1作出判断,执行相应的程序。
enter image description here

bit所有19个脚,都可以用作数字端口,读取和写入0和1。
enter image description here

enter image description here

数字读取时,端口要拉高或拉低,相关知识,参看《第四章 音乐实验》

除了按钮开关,还有一些传感器输出的也是开关信号。

比如数字红外避障传感器
enter image description here
只输出0和1,遇到障碍物,反射光线,数据线OUT输出0。可变电阻可调节感应距离。

数字红外避障传感器可用在避障,黑白线循迹,计数,门禁,防盗、感应水龙头,限位等等领域。

红外循迹传感器:
enter image description here
此外,还有倾斜开关,振动开关,触碰开关,触摸开关,雨滴感应开关,热偶开关等等。

我们着重讲解模拟传感器。

2,电压传感器

2.1硬件

enter image description here enter image description here

2.2接线

enter image description here
电位器输出接P0脚,4位数码管时钟线接P2脚,信号线接P1脚。

2.3程序

定义一个4位数码管,显示“模拟读取 引脚P0”:
enter image description here
滑动电位器,数字应在0到1023之间变化。

小强: 什么道理?

2.4 知识点:电位器原理

电位器,其实就是个滑动变阻器,中间有个抽头,接到P0上,把大电阻一分为二:
enter image description here

这样,P0上的电压Up0=R2/(R1+R2)*3伏。
移动中间抽头,它的电压随R2线性变化,即在0到3伏之间变化。这样,我们就可以用它来测量电压数据。

小强:读到的电压在0到3伏,可是,bit的端口不是只能输入0和1吗?它怎么识别0到3之间的数据?

问得好!

2.5 知识点:读取模拟原理

bit的端口确实不能识别除0和1以外的数据,只认得0和1,不是高就是低。这种数据,称为数字数据(Digital data),接收到的信号,称为数字信号(Digital Signal)
邓老师认为,称为“开关数据”和“开关信号”更易理解。

可是,真实的数据确是连续变化的,比如电压从0到3伏之间变化,这样的信号称为模拟信号(Analog Signal)
邓老师认为叫“真实信号”更合理。

那么,如何把连续变化的模拟信号(真实信号)转换为bit能读懂的数字信号呢(0和1)?

原来,bit中有一个模拟信号转换为数字信号的转换器,称为模数转换器(A/D转换器,ADC)。

enter image description here

根据不同的电压,用3位二进制数记录(分成8份),二进制只有0和1,bit就能读懂了。

这样,就把模拟数据(Analog data)转换为数字数据(Digital data)了。这就是模数转换。

如果10位二进制数记录,就可以分成1024份(0到1023),精度就很高了。

2.6电压表

模数转换,就是把0-3伏电压,转换为0-1023的数字数据,然后我们根据读到的数字数据,反过来对应电压值,就可以测量电压了。
enter image description here

知识点:映射

映射的意思,是做一个按比例自动转换,通俗地说,就是换算,就象美元换算成人民币:
enter image description here

enter image description here

移动滑动变阻器,可以看到电压在0-3伏之间变化。

用P0和地做表笔,就是一个电子电压表。

2.7 电流表

电流表原理一样,只是要测量的电流,让它流过一个小电阻,读取小电阻上的电压,就可以计算电流:
I=U/R

3,其它传感器

把滑动变阻器换成别的可变电阻,
比如光敏电阻,就是亮度传感器(光线传感器、灰度传感器);
换成热敏电阻,就是温度传感器;
换成话筒,就是声音传感器; 换成线圈,就是磁力传感器;

此外,还有压力传感器,温湿度传感器,水位传感器,红外传感器,火焰传感器,气体传感器(甲荃,一氧化碳等)等等,道理和用法都一样。

声音传感器:
enter image description here

光线传感器:
enter image description here
更多:
enter image description here

这些传感器通常只有三个脚:正极,地,数据。(个别有四个脚,通常接指示灯),数据脚接在bit上,就可以读取数据了。

小强: 随便哪个脚吗?

不是!只有P0,P1,P2,P3,P4,P10共6个脚可以读取模拟信号!
enter image description here

enter image description here

4,温度传感器

4.1硬件

以LM35DZ为例:
enter image description here
数据线接P0端口。

4.2程序

enter image description here

小强:为什么映射到300?
是这样,LM35输出0伏时,对应温度为0度,每升高1度,电压升高10毫伏:
enter image description here

实际只能测到0-100度。

如果要显示小数,就映射到3000,点亮中间的冒号:
enter image description here

5,灰度传感器

enter image description here
灰度传感器就是一个发光二极管(或红外发光二极管)发光,另一个光敏电阻接收反射回来的光,根据光强判断颜色,或者远近。主要用在机器人避障和循迹。
模拟数据线接P0,就可以读取光强:
enter image description here

6,超声波传感器

6.1 硬件

enter image description here
VCC:电源
GND:地
trig :发射
echo:接收

6.2 知识点:超声波测距原理:

超声波测距原理是受蝙蝠的启发,发出高于20000Hz频率的声波,再接收,根据回声时间判断距离。
声波在空气中的速度是 340m/s,距离S=t*340/2(来回)。

所以,超声波传感器跟灰度传感器原理差不多,一个发光,一个发声,一个测强度,一个测时间。

超声波传感器也就是一个喇叭,一个话筒。

6.3接线

为了显示数据,我们接一个4位数码管(P1,P2),trig 接P3,echo接P0

6.4程序

添加两个软件包:grove(有4位数码管),sonar(超声波):
enter image description here

enter image description here

单位选cm。
超声波传感器主要用在测距,避障等方面。

小强: 没有显示!

超声波传感器大多是5伏供电,如果你没有5伏电源,就要买支持3伏的超声波传感器。