最新消息:

Arduino教程┃数字传感器和模拟传感器的区别

Arduino 少儿编程 3147浏览 0评论

传感器是学习Arduino必备的工具,它是Arduino的五官,甚至比人类意义上的五官更为优秀,那经常有人说的数字传感器、模拟传感器是什么呢?它们二者的区别是什么呢?

一、什么是数字传感器、模拟传感器?

简单的来说输出数字量的传感器就是数字传感器,输出模拟量的传感器就是模拟传感器。那什么是数字量,什么又是模拟量呢?

Arduino教程┃数字传感器和模拟传感器的区别

灯泡的亮/灭两种状态

例如:当我们描述一个灯泡是否通电,我们一般会说,灯亮或者灯灭,像这样,只能返回两种状态的量,我们称为数字量。而如果有人说,这个灯好暗,你可以调亮一点吗?那这个时候,我们所描述的就是一个区间的变化量,这就是模拟量。像这样的案例在生活中还有很多,例如你去乡村游玩,看到一口池塘,你远远的看着的时候,可能会想,那个池塘有没有水呢?这个时候,你需要的就是一个数字传感器,帮助你判断有或者无水即可,而等你到了池塘旁边,你可能会想,这个池塘水有多深?水有多少呢?这个时候你就需要一个模拟传感器来帮助你测量水深以及水量。

也就是说,如果一个传感器只能告诉你有或者无,在程序当中,“有”用1、true表示,“无”用0、false表示,那么我们就说这个传感器就是数字传感器;而如果一个传感器能告诉你一个连续变化的量,在程序当中原始返回值是0-1023,那么我们就说这个传感器是模拟传感器。我们也可以说数字传感器是特殊的模拟传感器,它只能返回两个值:0或1,如果用逻辑表达式表示就是false或true。

二、为什么要区分数字传感器、模拟传感器?

为什么要分清楚数字传感器、模拟传感器呢?很重要的原因之一就是,如下图的Arduino UNO主板所示:

Arduino教程┃数字传感器和模拟传感器的区别

Arduino UNO主板介绍(来源:百度图片)

上方标明了digital,管脚上的标识是0-13,这就是数字传感器要连接的区域;下方标明了analog,管脚上的标识是A0-A5,有的只有数字0-5,那就是模拟传感器连接的区域,如果你接错了区域,就不会获取到正确的返回值。

三、如何分辨数字传感器、模拟传感器?

那如何来辨识是数字传感器还是模拟传感器呢?一个最简单的办法就是看传感器的管脚标识,如果是除了VCC和GND管脚之外,剩下的是“AO”,那就是模拟传感器,如果是“DO”,那就是数字传感器,当然由于生产标准不统一,有的厂家生产出来的就是标明是”IO”、“IN”、“OUT”、“S”等标识,这就需要我们去测试了,当然你也可以观看初始化工作室制作的认识各种传感器的视频了解。

常见的数字传感器有:震动传感器、按钮传感器、碰撞传感器、触摸传感器、超声波传感器,常见的模拟传感器有:声音传感器、颜色传感器、雨滴传感器、水位传感器等,你可能奇怪,为什么把超声波传感器放到数字传感器里,它不是返回的是一个变化的距离值吗?这个就要请你阅读我的另一篇文章有关于超声波的原理讲述,你要知道的就是这个距离值不是超声波传感器直接返回的,而是通过数字量返回值计算出来的。当然,还有一些传感器即可以输出数字量,也可以输出模拟量,这个请你要注意,例如初始化工作室曾经分享过的声音、雨滴等传感器都是这样的。为避免广告之嫌,我就不上图了,请到某宝搜索相关传感器的名称即可找到,后面请加上“Arduino”关键词,例如“超声波传感器 Arduino”,要不然搜索到的很多就是工业用传感器了。

四、数字传感器、模拟传感器程序编写有什么区别?

数字传感器与模拟传感器在程序编写上有什么不一样呢?我们来看Arduino IDE中的代码

数字传感器输入:digitalRead(0)

模拟传感器输入:analogRead(A0)

数字传感器输出:digitalWrite(0,HIGH)

模拟传感器输出:analogWrite(3,0)

识记这些命令很简单,digital是数字,analog是模拟,Read是读取,Write是写入。如下图所示就是Mixly当中的模块与命令的对应图,你可以使用这个软件由模块编程过渡到代码编程,当程序复杂到一定程度的时候,代码的可读性远远超过了模块的可读性,所以真正的大神还是要去敲代码的。

Arduino教程┃数字传感器和模拟传感器的区别

模块与代码对应图

以上就是初始化工作室理解的“什么是数字传感器、模拟传感器”,以及“为什么要分清数字传感器、模拟传感器”、“如何识别数字传感器、模拟传感器”、“常见的数字传感器、模拟传感器有哪些”、“数字传感器、模拟传感器的编程命令有什么区别”,如果有不正确的地方,请各位大神在评论区留言指教。

转自公众号:
初始化工作室

您必须 登录 才能发表评论!