跳转至

项目九 噪音计

生活中我们可以看到一些仪器上指针——时钟、电压表、电流表、汽车上的转速表……

Arduino 套件中也有一个元件可以模拟指针,它就是舵机。

img

  • 舵机是由直流电机、减速齿轮组、传感器和控制电路组成的一套自动控制系统
  • 通过发送信号,指定输出轴旋转角度
  • 套件中舵机最大旋转角度:180°

这是 Mind+ 软件中控制舵机的程序块:

img

学习目标:

1. 元件

  • 舵机
  • 模拟声音传感器
  • 按钮

2.Mind+ 程序模块

  • 设置引脚伺服舵机
  • 读取引脚声音强度
  • 映射
  • 变量
  • 串口输出

3.程序设计

  • 顺序结构
  • 循环结构
  • 条件判断

任务 1——制作一个噪音计

实现功能

根据噪音的大小,使舵机转动到不同位置。

硬件连接

舵机—9;模拟声音传感器—A1。注意插线时的颜色对应(黄色对应绿色)。

程序编写

img

任务 2——探测最大噪音

实现功能

探测一段时间内噪音的最大值。用户按下按键后开始工作,只记录最大值。再次按下按键停止记录,并回到初始位置。

思路解析

img

如何使按键随时改变工作状态——中断函数 。

在这个程序中,我们主要需要用一个 state 变量来判断工作状态,若 state 值为 1(即开)各部分按要求工作,若 state 值为 0(即关)则所有部分归零;其次,在工作过程中我们还需随时检测按键有没有被按下以改变 state 的值;噪音计和舵机的工作状态与按键状态是两个可以独立运行的部分(没有什么明显的逻辑关系语句可以把两个部分建立联系)。

因此,我们考虑用中断函数,即在工作或停止工作过程中随时检测按键状态(在用按键控制复杂的元件的开关状态时经常使用中断函数)。

硬件连接

按钮模块—2;舵机—9;模拟声音传感器—A1。注意插线时的颜色对应。

程序编写

img