【Arduino官方教程第一辑】示例程序 2-9 制作你的特雷门琴
来源:互联网 发布:刷机救砖软件哪个好 编辑:程序博客网 时间:2024/05/21 10:48
制作你的特雷门琴
本例向你展示如何使用tone()函数根据模拟信号的变化播放不同的音符。
用一个光敏电阻将Arduino或Genuino板变成一个简易版特雷门琴。
完成本例所需的硬件设备
- Arduino板Genuino板
- 8Ω扬声器
- 光敏电阻
- 100Ω电阻
- 面包板连接线/杜邦线、
- 面包板
电路搭建
将扬声器一端通过100Ω的电阻连接到9号引脚,另一端连接到GND。5V连接到光敏电阻一端,另一端连接到A0口,并加一个4.7KΩ下拉电阻。
原理图
例程代码
本例的代码超级简单。你只需要读取模拟信号输入值然后将它与一些音符对应即可。人类能够听见20-20,000HZ的声音,但120-1,500HZ的声音比较适合在这个例子中使用。
为了达到音符与模拟输入值的对应,你需要知道模拟信号值的范围。在这个电路中,这个值在400-1000左右。你可改变传入map函数的参数来根据你用的传感器进行调整。
代码如下:
/* 制作你的特雷门琴 根据模拟输入值的改变播放不同的音符。 电路搭建: * 9号引脚连接8Ω扬声器 * 光敏电阻连0-5V * 4.7KΩ电阻连A0-GND代码是公开的。 */void setup() { // 初始化串口连接(调试用): Serial.begin(9600);}void loop() { // 读取传感器值: int sensorReading = analogRead(A0); //打印一下传感器的值来找到范围: Serial.println(sensorReading); // 将模拟输入值的对应到120-1500HZ的声音 //注:可能要根据实际情况调整下列数值: int thisPitch = map(sensorReading, 400, 1000, 120, 1500); // 播放音符: tone(9, thisPitch, 10); delay(1); // delay以保证稳定}
相关资料
Array()
for()
tone()
map()
LED闪烁进阶:不用delay()函数的LED闪烁工程。
按钮:用按钮控制LED。
按键去抖:读取一个按钮状态,并且滤去干扰。
数字引脚上拉电阻:展示pinMode()函数INPUT_PULLUP 常量的使用。
按钮状态改变的探测:记录按钮被按下的次数。
音乐键盘:使用压力传感器和压电扬声器制作三键电子琴。
使用tone()函数弹奏一段小曲:使用压电扬声器播放一段曲调。
曲调2:使用tone()函数操作多个扬声器播放曲调。
曲调3:根据模拟信号通过压电扬声器播放一个音调。
更新进程
日期 日志 译者 2016年5月4日 创建并翻译文档 唐家勋
译者:唐家勋
邮箱:mrsteventang@gmail.com
QQ:649196486
转载请注明出处,一切只因为热爱。
希望您能指出宝贵意见,谢谢。
0 0
- 【Arduino官方教程第一辑】示例程序 2-9 制作你的特雷门琴
- 【Arduino官方教程第一辑】示例程序 1-2 Arduino工程的最小单元
- 【Arduino官方教程第一辑】示例程序 2-2 按键
- 【Arduino官方教程第一辑】示例程序 4-2 调光器
- 【Arduino官方教程第一辑】示例程序 1-6 制作一个简易电压表
- 【Arduino官方教程第一辑】示例程序 2-6 音乐键盘-tone函数的运用
- 【Arduino官方教程第一辑】示例程序 2-5 按键状态改变的探测
- 【Arduino官方教程第一辑】示例程序-目录
- 【Arduino官方教程第一辑】示例程序 5-1 数组
- 【Arduino官方教程第一辑】示例程序 3-5 模拟信号的校准
- 【Arduino官方教程第一辑】示例程序 4-9 串口双向调用(使用ASCII字符串)
- 【Arduino官方教程第一辑】示例程序 2-8 曲调2
- 【Arduino官方教程第一辑】示例程序 2-1 LED闪烁进阶
- 【Arduino官方教程第一辑】示例程序 2-3 按键去抖
- 【Arduino官方教程第一辑】示例程序 2-4 数字引脚上拉电阻
- 【Arduino官方教程第一辑】示例程序 2-7 使用tone()函数弹奏一段小曲
- 【Arduino官方教程第一辑】示例程序 3-2 模拟信号输入
- 【Arduino官方教程第一辑】示例程序 5-2 For循环迭代(霹雳游侠)
- 接口
- SqlServer2008维护计划(图解)
- Windows平台分布式架构实践 - 负载均衡
- pdo预处理案例
- JavaScript中常用的正则表达式
- 【Arduino官方教程第一辑】示例程序 2-9 制作你的特雷门琴
- bzoj 2789: [Poi2012]Letters
- Android 6.0 运行时权限处理
- 分布式环境中的负载均衡策略
- 背包问题(01背包和完全背包)一维数组实现
- 线程和进程的区别
- SQLSERVER维护计划报告和记录
- Java多线程学习笔记(一)
- swift开发多线程篇 - 多线程基础