树莓派是不少程序员都喜欢玩的,我我的也很喜欢玩,开源接触到不少关于linux的知识,也能够经过读取硬件的数据来学习关于数据库的知识。
原文连接:https://www.pipipi.net/75.html
前言
本文详解阐释了模拟信号和数字信号的区别,但愿帮助到有须要的朋友。html
数字信号
使用树莓派上的GPIO引脚,很容易向输出组件发送信号并打开或关闭。还能够检测输入组件是否打开或关闭。以这种方式工做的组件称为数字组件(Digital components)。linux
数字输出
LED是数字输出元件的一个例子。它能够是打开的,也能够是关闭的,二者之间没有任何价值。咱们能够把ON和OFF状态看做是1或0。你能够发送一个1给LED LED就会亮了,当你给LED发送0给 LED就熄灭了。git
图片描述程序员
数字输入
一个按钮是数字输入组件。它能够是打开的,也能够是关闭的。当按钮被按下时,它向链接的树莓派GPIO引脚发送1。当按钮被释放时,它向GPIO引脚发送0。没有其余能够发送的值,由于你把按钮按到一半,幻想能够输出0.5。
图片描述数据库
请看下面这个图,这个图显示了按钮被按压和释放的输入数据,当按压的时候输出1当释放的时候输出0。
图片描述
模拟信号
数字输入和输出组件在Raspberry Pi中很常见,由于GPIO引脚都是数字的。它们只能发送或接收1和0。学习
然而,并不是全部组件都是数字的。有些被称为模拟组件。模拟部件能够在1和0之间发送和接收值。.net
模拟输出
电机是模拟输出元件的一个例子。你能够把它的值在1和0之间,这将控制电机的速度。若是你发送电机A 1,它将全速驱动。若是你把它发送0.5,它将以半速行驶。发送0将中止电机。
图片描述
模拟输入
模拟输入元件的一个例子是光相关电阻器(LDR)。当没有光照在部件上时,它将发送0,而且随着光的增长,光敏发送的值将逐渐增长,直到它达到最大值1。component
图片描述
下图显示了从LDR发送的信号在一天当中24小时的变化,随着光线越亮值越大,光线越暗值越小。htm
图片描述图片
使用树莓派的模拟组件比使用数字组件更加困难。
为了使用GPIO引脚的模拟输出组件,您须要使用一种称为脉冲宽度调制(PWM)的技术。这向份量发送1秒和0秒的很是快的脉冲,当将其做为平均值时,能够将其接收为介于1和0之间的值。
请看下面的图表。蓝线显示数字信号,在一段时间内,从0移动到1,而后再次返回。信号为1的是总时间的三分之一,剩下的三分之二是0。
而后这个平均值约为0.33,这将是模拟组件接收到的值。你能够看到这是图上的红线。
图片描述
要使用模拟输入组件与GPIO引脚,您须要使用模拟到数字转换器(ADC),将模拟信号转换为数字信号。你能够买小的adc在你的电路使用。另一种选择是在电路中使用电容和模拟元件。
总结在树莓派上使用模拟输出是采用pwm技术,若是想要读取模拟输入那就须要ADC模拟到数字转换器,由于树莓派上没有ADC,所以我认为若是咱们想要读取相似LDR或者模拟输入的状况,咱们可使用相似Nodemcu这种自带ADC的板子,而后再经过MQTT协议发送给树莓派,这样就很方便了。