【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
转载请注明出处,一切只因为热爱。
希望您能指出宝贵意见,谢谢。
我的微信公众号欢迎关注,2016年6月开始更新

0 0
原创粉丝点击