如何在树莓派Pico上使用光线传感器等传感器模块?

电子说

1.3w人已加入

描述

 

市面上常见的传感器模块,其输出大体可分为模拟、数字、特定协议输出(例如 RS485、RS232、SPI、CAN、单总线等)。其中,前两种的读取最为简单通用,而使用特定协议的传感器读取方法要参考传感器相应的文档。

本教程以四针脚的光线传感器为例,介绍模拟和数字输出的传感器的读取方法。只有这款四针脚的光线传感器,才可以同时兼具模拟输出(AO 引脚)和数字输出(DO 引脚)。而其他三针脚的传感器,有的仅支持模拟输出,有的仅支持数字输出。

光线传感器对环境光线检测:
AO 脚输出模拟信号,信号量越大表示光线越少。
DO 脚输出数字信号,光线超过一个阈值时输出低电平,反之则输出高电平。这个阈值可以通过转动传感器上的可调电阻来设定。

硬件连接

传感器模块的 VCC 脚接树莓派 Pico 的 3V3。
传感器模块的 GND 脚接树莓派 Pico 的 GND。
传感器模块的 AO 脚接树莓派 Pico 的 GP28。
传感器模块的 DO 脚接树莓派 Pico 的 GP27。

编程

为了便于理解,我们下面的代码中,将读取到的数值进行一个变化。以便让光线越强时显示出来的数值更大(最小值为 0,最大值为 65535),当光线达到阈值时显示 1 而不是 0。

 

import machine
import utime
 
sensor_analog = machine.ADC(28)
sensor_digital = machine.Pin(27, machine.Pin.IN)
 
while True:
    print('Analog value: %d, Digital value: %d.' % (65535 - sensor_analog.read_u16(), 1 - sensor_digital.value()))
    utime.sleep(0.5)

 

运行之后,Shell 中每隔 0.5 秒会打印出一行从传感器读取到并转换之后的数据。数值随着环境光线的变化随之变化。

树莓派

对于其他类似设计的传感器,例如声音传感器、振动传感器、火焰传感器、土壤湿度传感器、水位传感器、雨水传感器等,接线和读取方法以此类推即可。

 





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分