2019-6-17 09:49:43 [显示全部楼层]
21921浏览
查看: 21921|回复: 10

[教程] 【Mind+】Arduino Uno入门 项目九 噪音计

[复制链接]
【Mind+】Arduino Uno入门 项目九 噪音计
-DFRobot官方出品

   
  生活中我们可以看到一些仪器上指针——时钟、电压表、电流表、汽车上的转速表……Arduino 套件中也有一个元件可以模拟指针,它就是舵机。
【Mind+】Arduino Uno入门 项目九 噪音计图1

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

      这是 Mind+ 软件中控制舵机的程序块:
【Mind+】Arduino Uno入门 项目九 噪音计图2
*学习目标:
1. 元件
      舵机,模拟声音传感器,按钮
2Mind+ 程序模块
      设置引脚伺服舵机
      读取引脚声音强度
      映射
      变量
      串口输出
3程序设计
      顺序结构
      循环结构
      条件判断

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

1. 实现功能
      根据噪音的大小,使舵机转动到不同位置。

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

3. 程序编写
【Mind+】Arduino Uno入门 项目九 噪音计图3

任务 2——探测最大噪音

1. 实现功能
      探测一段时间内噪音的最大值。用户按下按键后开始工作,只记录最大值。再次按下按键停止记录,并回到初始位置。
2. 思路解析
【Mind+】Arduino Uno入门 项目九 噪音计图4
      如何使按键随时改变工作状态——中断函数 。

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

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

3. 硬件连接

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

4. 程序编写
【Mind+】Arduino Uno入门 项目九 噪音计图5


Rae  学徒

发表于 2019-7-17 09:22:40

太好了
回复

使用道具 举报

YONG  学徒

发表于 2019-11-11 22:24:29

映射那里是不是漏了什么?
回复

使用道具 举报

雅客西  学徒

发表于 2020-3-25 01:24:48

请问中断函数,我怎么找不到
回复

使用道具 举报

gada888  版主

发表于 2020-3-27 10:04:54

流程图设计的不错
回复

使用道具 举报

artisan  初级技师

发表于 2020-12-30 14:31:13

请问中断函数是自己写的还是用的封装的模块。
回复

使用道具 举报

EVE  高级技匠
 楼主|

发表于 2020-12-31 10:28:22

artisan 发表于 2020-12-30 14:31
请问中断函数是自己写的还是用的封装的模块。

中断是用的软件封装好的模块
回复

使用道具 举报

赤星三春牛!  初级技神

发表于 2022-1-29 09:47:55

不错!
回复

使用道具 举报

赤星三春牛!  初级技神

发表于 2022-1-29 09:48:11

学习了。
回复

使用道具 举报

1323682129  学徒

发表于 2023-4-1 08:46:00

雅客西 发表于 2020-3-25 01:24
请问中断函数,我怎么找不到

在扩展中的功能模块中
回复

使用道具 举报

guiyuan  中级技师

发表于 2023-4-5 13:14:18

映射函数那里少了获取声音模拟值,跟本页中之前的代码一样,应该是将声音的模拟值进行映射转换。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail