跳到主要内容

2021-06距离指示器

试题

主题:距离指示器

器件: LED 灯模块2个(分别为 LED_A和 LED_B),超声波传感器1个,舵机1个(也可使用分立器件结合面包板搭建)

要求:

  • 通过超声波传感器检测距离的变化,并根据检测距离控制舵机的转动角度和 LED 灯的亮灭.
  • 将超声波传感器检测的距离值显示在串口监视器。
  • 当超声波传感器检测的距离为 10cm时,舵机处于 90度位置,LED_A和 LED_B均熄灭
  • 当超声波传感器检测距离为5cm时,舵机处于0度位置,LED_A 闪烁,LED_B 熄灭,
  • 当超声波传威器检测的距离在10cm至5cm之间变化时,舵机的转动角度为 90~0度所对应的角度,LED_A从熄灭至最亮LED_B 保持熄灭状态。
  • 当超声波传感器检测距离为15cm时,舵机处于180度位置,LED_B闪烁,LED_A熄灭.
  • 当超声波传感器检测的距离在 10cm至15cm之间变化时,舵机的转动角度为 90~180 度所对应的角度,LED_B从熄灭至最亮,LED_A保持熄灭状态。
  • 根据上述要求,绘制流程图.

原理

  • 逻辑且
  • 变量
  • 条件循环
  • for循环
  • 映射

解析

第一步

这里我们看到一个最简单的要求2 使用串口监视器打印距离 要求3 要求4比较简单,只需对距离判断,分情况处理即可。

第二步

要求5 要求7思路一样。这里我门看到距离变化时,舵机也跟随转动,同时LED_A从熄灭到最亮这里有亮度的变化,所以需要使用的PWM

信息

PWM 脉宽调制(Pulse-Width Modulation,PWM)是利用微处理器的数字输出,来对模拟电路进行控制的一种非常有效的技术,通过对一系列脉冲的宽度进行调制,来等效的获得所需要的波形(含形状和幅值),即通过改变导通时间占总时间的比例,也就是占空比,达到调整电压和频率的目的

上边是pwm的定义,其实通俗来讲,什么时候使用pwm,当出现连续变化 也就是多种状态就需要使用。

提示

Arduino Uno 开发板上数字前带有~标志的就是pwm管脚

这里需要将超声波传感器检测到的距离映射到舵机旋转的角度上,同时使用pwm调整LED_A的亮度变化。

code

这里我使用变量存储超声波检测的距离,同时用映射将距离转化为舵机的角度,最后用for循环局部变量i作为LED_A的亮度

总结

finally_code