第四十五课--Microduino 电吉他/zh

来自Microduino Wikipedia
Pkj讨论 | 贡献2014年6月18日 (三) 06:01的版本 (Created page with "{| style="width: 800px;" |- | ==目的== 本教程将让大家如何使用超声波传感器,喇叭和Microduino做出一个电吉他。 ==设备== *'''Microduino-Core'...")
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

目的

本教程将让大家如何使用超声波传感器,喇叭和Microduino做出一个电吉他。

设备

  • 其他硬件设备
    • USB数据连接线 一根
    • 超声波传感器 一个
    • 喇叭 一个
    • 10K欧姆电阻 一个
    • 面包板跳线 一盒


音符频率

我们平常听到的 Do - Re - Mi - Fa - Sol - La - Si/Te 有它们对应的频率,下面两张表显示了各个音符对应的频率。

NoteFrequency1.jpg
NoteFrequency2.jpg

中间A的频率是440Hz,差一个八度音调是两倍的关系,然后分成12份,每分之间的倍数是2的12分之一次方倍。2的12分之一次方约等于1.059463........

例如:

  1. A的频率是440*1.059463........

B的频率是440*1.059463........*1.059463........

乘12次以后是两倍,恰好到下一个A

中央c的频率是261.6hz

Microduino的tone()可以直接产生频率

原理图

ElectricGuitarSchematics.jpg


程序

见 guitar

在程序中int toneFrequency[]={415,440,466,494,523,554,587,622};

用来定义可以发出音符的范围和个数,你可根据自己的喜好按着音符频率表调整这个范围。

调试

步骤一:下载tone函数库:https://github.com/johnmccombs/arduino-libraries/tree/master/Tone 放到IED的libraries中再重启IDE。

此Tone库相比自带的tone函数特点是,可以同时在多个输出脚输出不同频率的波形,但是自带tone函数在一段时间内只能在一个引脚输出。

注意:解压后要把Tone.cpp中的'#include <wiring.h>改为#include <Arduino.h>,否则会报错

步骤二:按照原理图搭建电路图如下图:

ElectricGuitarConnect.jpg

可以在一个木板上按着音符频率表标注音符的位置。

步骤三:下载并运行代码

步骤四:在超声波前移动遮挡物的位置,听喇叭的声音

结果

喇叭会根据遮挡物的位置不同而产生不同的音符,基本上与木板上的音符刻度相符。

视频