1. 按键

  • 硬件连接方式:
    • 下接按键(常用):
      • 方式一: GPIO直接连接按键,按键另一端接地。GPIO必须配置为上拉输入模式。
      • 方式二: GPIO连接按键,按键另一端接地,同时GPIO外部连接一个上拉电阻。GPIO可以配置为浮空输入或上拉输入模式。
    • 上接按键:
      • 方式三: GPIO连接按键,按键另一端接3.3V。GPIO必须配置为下拉输入模式。
      • 方式四: GPIO连接按键,按键另一端接3.3V,同时GPIO外部连接一个下拉电阻。GPIO可以配置为浮空输入或下拉输入模式。
  • 工作原理:
    • 下接按键:
      • 未按下: GPIO通过内部或外部上拉电阻保持高电平。
      • 按下: GPIO被按键直接拉低到地电平。
    • 上接按键:
      • 未按下: GPIO通过内部或外部下拉电阻保持低电平。
      • 按下: GPIO被按键直接拉高到3.3V。
  • 按键抖动: 由于机械按键的物理特性,在按下和松开的瞬间,会产生短暂的抖动。
    • 解决方法:
      • 延时消抖: 在检测到按键按下或松开后,延时一段时间(通常为5-10ms),再读取按键状态,以消除抖动的影响。

详细讲解

1.1 按键的硬件连接

  • 下接按键:
    • 方式一(常用):
      • 电路图:
        在这里插入图片描述

      • 原理:

        • 未按下: PA0通过上拉电阻连接到3.3V,输入高电平。
        • 按下: PA0通过按键连接到GND,输入低电平。
      • 配置: GPIO (PA0) 必须配置为上拉输入模式。

    • 方式二:
      • 电路图:
        在这里插入图片描述

      • 原理:

        • 未按下: PA0通过外部上拉电阻连接到3.3V,输入高电平。
        • 按下: PA0通过按键连接到GND,输入低电平。
      • 配置: GPIO (PA0) 可以配置为浮空输入上拉输入模式。

  • 上接按键:
    • 方式三:
      • 电路图:
        在这里插入图片描述

      • 原理:

        • 未按下: PA0通过下拉电阻连接到GND,输入低电平。
        • 按下: PA0通过按键连接到3.3V,输入高电平。
      • 配置: GPIO (PA0) 必须配置为下拉输入模式。

    • 方式四:
      • 电路图:
        在这里插入图片描述

      • 原理:

        • 未按下: PA0通过外部下拉电阻连接到GND,输入低电平。
        • 按下: PA0通过按键连接到3.3V,输入高电平。
      • 配置: GPIO (PA0) 可以配置为浮空输入下拉输入模式。

1.2 按键抖动

  • 现象: 由于机械按键内部的弹簧片结构,在按下和松开的瞬间,会产生一系列的抖动,导致GPIO的电平不稳定。
  • 影响: 单片机可能会错误地检测到多次按键操作。
  • 解决方法:
    • 硬件消抖: 使用电容等元件来过滤掉抖动信号。
    • 软件消抖(常用):
      1. 检测到按键状态变化(按下或松开)。
      2. 延时一段时间(通常为5-10ms)。
      3. 再次读取按键状态。
      4. 如果状态与第一次相同,则确认按键操作有效。

2. 传感器

  • 常见传感器模块:
    • 光敏电阻传感器
    • 热敏电阻传感器
    • 对射式红外传感器
    • 反射式红外传感器
  • 基本电路结构:
    • 分压电路: 传感器元件(可变电阻)与一个定值电阻串联,形成分压电路。
    • 输出:
      • 模拟输出(AO): 分压电路的中间节点输出模拟电压,电压值随传感器元件阻值变化而变化。
      • 数字输出(DO): 模拟电压经过电压比较器(如LM393)进行二值化,输出数字信号。
  • 工作原理:
    • 传感器元件的阻值随外界环境的模拟量(如光线、温度等)变化。
    • 分压电路将阻值变化转换为电压变化。
    • 模拟电压可以直接输出,也可以通过电压比较器转换为数字信号输出。

详细讲解

2.1 传感器模块的基本电路

  • 电路图:
    在这里插入图片描述

  • 原理:

    • R1和N1组成一个分压电路。
    • AO点的电压由R1和N1的阻值决定。
    • 当N1的阻值减小时,AO点的电压降低。
    • 当N1的阻值增大时,AO点的电压升高。
  • 滤波电容:

    • 电路中通常会包含一个滤波电容C2,连接在AO点和GND之间。
    • 作用:滤除干扰信号,使AO点的电压更加稳定。

2.2 上拉电阻和下拉电阻的理解

  • 上拉电阻: 将GPIO的电平拉高到VCC。
  • 下拉电阻: 将GPIO的电平拉低到GND。
  • 比喻:
    • AO点:一根杆子。
    • 上拉电阻:连接到屋顶的弹簧,向上拉杆子。
    • 下拉电阻:连接到地面的弹簧,向下拉杆子。
    • 电阻阻值:弹簧的拉力大小。
  • 分析:
    • 只有上拉电阻:杆子被拉到屋顶,AO输出VCC。
    • 只有下拉电阻:杆子被拉到地面,AO输出GND。
    • 上下拉电阻都有:杆子被拉到中间位置,AO输出的电压取决于两个弹簧的拉力大小。

2.3 数字输出(DO)

  • 电路结构:
    在这里插入图片描述

  • 原理:

    • LM393是一个电压比较器。
    • AO点的模拟电压连接到LM393的同相输入端(+)。
    • 电位器连接到LM393的反相输入端(-),用于设置一个阈值电压。
    • 当AO点的电压高于阈值电压时,DO输出高电平。
    • 当AO点的电压低于阈值电压时,DO输出低电平。
Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐