和 12 岁小同志搞创客开发:如何驱动各类型传感器?
机缘巧合在网上认识一位 12 岁小同志,从零开始系统辅导其创客开发思维和技巧。
项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html
传感器检测现实物体的状态并转换输出为电信号,这个电信号可以是:电压、电流、脉冲等多样形式。
根据这些输出类型可以将传感器进行分类,主要包括:数字量输出类型传感器、数字量输入类型传感器、模拟量电压类型传感器、模拟量电流类型传感器和协议类型传感器。
注:本文侧重应用,较为复杂的驱动原理将会在之后的项目中讲解。
1、数字量输出类型传感器
数字量输出类型传感器输出高、低电平信号表示检测状态。例如,人体传感器当有人经过时,数据端口会输出高电平,无人时输出低电平。
驱动数字量输出类型传感器,需要将控制器端口配置为数字输入模式,检测传感器输出电压的变化,驱动按键元器件也是这样的原理。
2、数字量输入类型传感器
数字量输入类型传感器需要控制器输出高、低电平实现开关控制。例如:LED 灯,控制器输出 3.3V~5V 高电平则 LED 熄灭,控制器输出低电平则 LED 点亮。
驱动数字量输入类型传感器,需要将控制器端口配置为数字输出模式,输出满足驱动能力的高、低电平,即可实现驱动。
3、模拟量电压类型传感器
模拟量电压类型传感器会随着被检测物体状态变化,输出规定范围内的模拟电压。例如:电容式土壤湿度传感器,随着土壤湿度的变化,会输出 0~3V 的电压,将土壤湿度传感器插入干燥的沙土,输出约为 3V 电压,插入湿润的沙土输出约为 1.5V 左右电压,插入非常潮湿输出约为 0V 电压。
驱动模拟量电压类型传感器,需要将控制器端口配置为 ADC 模式,采集传感器输出的模拟电压数据。
4、模拟量电流类型传感器
模拟量电流类型传感器会随着被检测物体状态变化,输出规定范围内的模拟电流。例如:4~20mA 电流型温度传感器,假设该温度传感器检测温度范围为:-200~500℃,则当温度为-200℃时,传感器输出电流约为 0mA,温度为 500℃时,传感器输出电流约为 20mA。
需要注意,绝大多数控制器是无法直接输入电流信号的,需要将模拟电流信号转换为合适范围的模拟电压信号,将控制器端口配置为 ADC 模式,采集传感器输出的模拟电压数据。
5、协议类型传感器
以上四种类型传感器可直接采集输出的电信号,开发者需要再进行转换方可得到感知结果。
协议类型传感器在采集数据后,将电信号直接转换为数据结果,存入寄存器中,开发者无需自己再编程转换,只需要读取通信总线,按照相关协议访问寄存器即可读取结果。
常用的协议类型传感器主要包括:UART 通信总线、I2C 通信总线、SPI 通信总线这三种。
协议类型传感器深究较为复杂,考虑到创客基础较为薄弱,建议先应用实践,熟练使用后再深究原理。
5.1、UART 通信总线
通用异步收发器(Universal Asynchronous Receiver/Transmitter), 通常称作 UART。UART 是一种通用串行数据总线,用于异步通信,该总线双向通信,可以实现全双工的发送和接收。
UART 通信需要连接三个接口,如下所示:
TXD:数据发送端口;
RXD:数据接收端口;
GND:电源地。
连线时需要将控制器 TXD、RXD 和传感器 TXD、RXD 交叉连接,连线效果如下所示:
例如: HuskyLens AI 视觉传感器,基于 UART 通信,连线效果如下所示:
连线成功后即可使用控制器驱动 HuskyLens AI 视觉传感器。
5.2、I2C 通信总线
I2C 总线(Inter-Integrated Circuit)是一种简单、双向二线制同步串行总线,只需要两根线即可实现数据通信,如下所示:
SDA:串行数据线,实现数据通信;
SCL:串行时钟线,实现时序同步。
连线时需要将控制器 SDA、SCL 和传感器 SDA、SCL 对应连接,连线效果如下所示:
例如,驱动 BH1750 环境光传感器,需要将控制器 SDA、SCL 和环境光传感器 SDA、SCL 对应连接。
连线成功后即可使用控制器驱动环境光传感器。
5.3、SPI 通信总线
SPI 是串行外设接口(Serial Peripheral Interface)的缩写。是一种高速的,全双工,同步的通信总线。它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少 4 根线,事实上 3 根也可以(单向传输时),如下所示:
SDI/MISO:主设备数据输入,从设备数据输出;
SDO/MOSI:主设备数据输出,从设备数据输入;
SCLK:时钟信号,由主设备产生;
CS/SS:片选,从设备使能信号,由主设备控制。
连线时需要将控制器 SDI/MISO、SDO/MOSI、SCLK 和传感器 SDI/MISO、SDO/MOSI、SCLK 对应连接,主设备 CS/SS 和从设备 CS/SS 分别对应连接,连线效果如下所示:
例如,驱动 ADXL345 三轴加速度传感器,将控制器 SDI/MISO、SDO/MOSI、SCLK、CS/SS 和三轴加速度传感器 SDI/MISO、SDO/MOSI、SCLK、CS/SS 对应连接
连线成功后即可使用控制器驱动三轴加速度传感器。
版权声明: 本文为 InfoQ 作者【不脱发的程序猿】的原创文章。
原文链接:【http://xie.infoq.cn/article/90da7046f8f60f0816c04f92b】。文章转载请联系作者。
评论