市面上常见的传感器模块,其输出大体可分为模拟、数字、特定协议输出(例如 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 秒会打印出一行从传感器读取到并转换之后的数据。数值随着环境光线的变化随之变化。

对于其他类似设计的传感器,例如声音传感器、振动传感器、火焰传感器、土壤湿度传感器、水位传感器、雨水传感器等,接线和读取方法以此类推即可。
审核编辑:刘清
函数发生器、信号发生器和波形发生器的区别
时间:2026-06-06
电子元器件的常见封装 各种封装类型的特点介...
时间:2026-06-06
普通光敏二极管的检测
时间:2026-06-06
详细介绍8种常用的排序算法
时间:2026-06-06
s9013三级管引脚图及参数
时间:2026-06-06
电压跟随器有什么作用?
时间:2026-06-06
VRRP是什么?VRRP的作用和工作原理
时间:2026-06-05
32768晶振封装尺寸详解
时间:2026-06-05
静态路由是什么?静态路由如何配置?
时间:2026-06-05
一文详解光耦的作用与分类、使用技巧
时间:2026-06-05
电阻的单位
时间:2026-03-05
NVIDIA CPU+GPU超级芯片大升级!
时间:2026-03-09
贴片电阻怎么看阻值
时间:2026-03-05
电阻的原理和作用 电阻色环识别图 电路中电...
时间:2026-03-09
什么是硅片或者晶圆?一文了解半导体硅晶圆
时间:2026-03-09
什么是室温超导?半导体时代将走向结束?芯...
时间:2026-03-09
半导体光刻工艺 光刻—半导体电路的绘制
时间:2026-03-09
HTCC:半导体封装的理想方式
时间:2026-03-06
一文详解MOS管驱动电路拓扑的设计
时间:2026-03-09
石英灯电子变压器电路原理
时间:2026-03-06