
经典三问Q: 传感器是什么A: 传感器是把现实里的光、温度、距离、声音、运动等变化转换成电信号的器件。Q: 为什么需要传感器A: STM32 只能处理引脚上的高低电平和电压不能直接看见黑线、听见声音也不知道轮子前面有没有障碍物。传感器把这些现实信息送到芯片面前。Q: 传感器常见使用场景A: 循迹小车识别地面黑线温度计测量环境温度自动门感知有人靠近手机判断自己是否被拿起都是传感器在工作。前面小车已经能让电机转起来也能通过编码器知道轮子实际留下了多少脉冲。但它依然像闭着眼睛开车不知道前面有没有东西不知道地上的黑线在哪里也不知道自己正处在亮处还是暗处。小车需要开始认识车外的世界。人靠眼睛看光线和颜色靠耳朵听声音靠皮肤感受温度和触碰。STM32 没有眼睛、耳朵和皮肤它只有一些引脚和一颗处理数字的内核。传感器就是它认识现实的入口把真实世界发生的变化翻译成芯片能接收的电信号。传感器到底在“感受”什么传感器总是在观察某一种真实的量现实中的变化传感器可能给出的信息常见用途光强、颜色、反射电平或电压变化循迹、自动亮灯温度电压或数字数据温度计、恒温控制距离、是否靠近电平、时间或数字数据避障、自动门声音电压变化拍手开灯、声音检测加速度、角速度数字数据手机旋转、姿态判断轮子的转动脉冲测速、记录路程最后一行已经见过了。编码器就是一种传感器轮子转动是现实里的动作A、B 两相脉冲是它交给 STM32 的消息。STM32 不能直接看见轮子转了多少圈却能数脉冲。不同传感器的外形、接线和输出方式各不相同但中间都在做同一件事现实变化 - 传感器 - 电信号 - STM32温度不是电距离不是电黑线也不是电。它们先被传感器变成电平、电压、脉冲或一串数字芯片才有机会去判断和处理。STM32 能听懂的只有电信号对 STM32 来说引脚上最直观的两种状态是高电平和低电平。前面按键松开、按下时PB11 读到的就是这两种状态编码器 A、B 相跳动时给出的也是高低变化。有些传感器只需要交出一个明确判断有人 / 没人 太亮 / 不太亮 压到黑线 / 没压到黑线这种结果用高低电平就足够了。高电平代表一种状态低电平代表另一种状态。程序读到以后可以像读按键一样做出选择。但现实世界不是所有变化都只有两种答案。房间里的光可以一点点变暗水温可以从 20 摄氏度慢慢升到 21、22、23黑线边缘也不是一条只有“黑”和“白”的绝对分界线。传感器面对这些连续变化时往往会给出连续变化的电压光越强电压可能越高距离越近电压可能越低。具体是变高还是变低要看每一种传感器的设计重要的是中间存在很多状态而不只 0 和 1。低电平 高电平 0V ---- 0.8V ---- 1.6V ---- 2.4V ---- 3.3V 很暗 一般 很亮高低电平像一道判断题答案只有两项连续电压更像一把刻度尺能保留变化有多大。两种输出没有高低之分取决于程序到底需要一个明确结论还是需要知道中间细节。灰度传感器怎样看见黑线循迹小车常用的灰度传感器看的不是“颜色”这个词本身而是地面对光的反射。传感器上通常有一只发光元件和一只接收元件。发光元件往地面照出光接收元件等待地面反射回来的光发光 - 地面 - 反射光 - 接收白色表面通常反射更多光黑色表面通常吸收更多光反射回来的光就更少。接收元件感受到的光强不同输出的电信号也会不同。白底反射光较多 - 接收信号较强 黑线反射光较少 - 接收信号较弱这里说“通常”是因为现实不会像示意图那样干净。地面材质、环境光、传感器离地高度、黑线颜色和污渍都会改变反射效果。同一块白纸在强光和暗处反射出的结果也不同同一条黑线传感器抬高一点读数也会变化。所以灰度传感器不是在辨认“这一定是黑色”它是在比较“现在收到的反射光多不多”。小车沿黑线走本质上是在利用黑线和背景之间足够明显的反射差异。八只眼睛排成一排以后一只灰度传感器只能知道自己脚下的一小块地方偏黑还是偏白。把八只传感器横着排在小车前方它们就能同时看到左边、中间和右边的地面。左侧 右侧 [1] [2] [3] [4] [5] [6] [7] [8]黑线落在中间中央几只看到的反射会和两侧不同黑线偏左左边几只的变化会更明显黑线完全跑到边上最外侧的传感器也会给出线索。传感器本身只负责报告各自看到的反射情况。至于“黑线偏左时左右轮应该怎样变化”是 STM32 根据这些信息做出的下一步动作。眼睛负责看程序负责决定往哪里走。现实变化怎样变成程序里的数字灰度传感器接收到的光强是连续变化的而 STM32 处理的是数字。中间还需要一个翻译过程把某个时刻的电压变成一个可以比较、显示和计算的数。一根传感器线上的电压并不天然就是 C 语言里的整数芯片需要按自己的规则量一次这个电压再给程序一个数字。同一块灰度模块有时会先帮忙做出“黑线 / 白底”的二选一判断有时也会把连续变化的原始信号保留下来。前一种更容易让小车先沿线跑后一种能看见黑白之间到底差了多少。最后橘猫说传感器不是 STM32 的装饰品而是它通向现实世界的入口。编码器把轮子的转动变成脉冲灰度传感器把地面的反射差异变成电信号从这一刻起小车不再只是照着命令转动也开始有机会根据自己“看见”的东西改变动作。