会唱歌的小黄人-Arduino视频教程(蜂鸣器发声)
2017-03-011.3万
AI 快速预览详细
本教程介绍了如何使用Arduino和蜂鸣器制作一个会唱歌的小黄人项目。所需物品包括Arduino、面包板、蜂鸣器等。通过定义不同音调的频率值,使蜂鸣器能够演奏出完整的歌曲。提供了详细的电路图和代码示例,适合零基础新手和STEM教育场景。
|
http://www.bilibili.com/video/av4369065/ 包教包会福利视频,只需五分钟就能掌握一项小技巧,今天给大家带来的是蜂鸣器发声教程。大家一定都用过Arduino初阶开发包里的无缘蜂鸣器,想必大家都会让它发出声响,有没有想过让这个小东西唱出一首完整的歌曲呢?这次就让它变成小黄人的声带,唱出一首完整的歌吧 一.所需物品清单 电脑*1 android手机*1 Arduino*1 面包板*1 蜂鸣器*1 蓝牙模块*1 发光二极管*1 220欧电阻*1 导线*8 二.电路图 ![]() 三.代码 [mw_shl_code=c,true]#define NTD0 -1 #define NTD1 294 #define NTD2 330 #define NTD3 350 #define NTD4 393 #define NTD5 441 #define NTD6 495 #define NTD7 556 #define NTD8 622 #define NTDL1 147 #define NTDL2 165 #define NTDL3 175 #define NTDL4 196 #define NTDL5 221 #define NTDL6 248 #define NTDL7 278 #define NTDH1 589 #define NTDH2 661 #define NTDH3 700 #define NTDH4 786 #define NTDH5 882 #define NTDH6 990 #define NTDH7 112 //根據中部列出D的音節 int tune[] = { NTD5, NTD3, NTD0, NTD0, NTD3, NTD2, NTD1, NTD2, NTD3, NTD5, NTD3, NTD5, NTD6, NTD3, NTD0, NTD0, NTD3, NTD2, NTD1, NTD2, NTD3, NTD5, NTD3, NTD5, NTD6, NTD4, NTD0, NTD0, NTD4, NTD3, NTD2, NTD3, NTD4, NTD6, NTD8, NTD6, NTD7, NTD6, NTD6, NTD5, NTD5, NTD4, NTD3, NTD2, }; float durt[] = { 0.5, 0.5, 1, 1, 0.5, 0.5, 0.5, 0.5, 0.5, 1, 0.5, 1, 0.5, 0.5, 1, 1, 0.5, 0.5, 0.5, 0.5, 0.5, 1, 0.5, 1, 0.5, 0.5, 1, 1, 0.5, 0.5, 0.5, 0.5, 0.5, 1, 0.5, 1, 1 + 0.5, 0.5, 0.5, 1, 1 + 0.5, 0.5, 1 + 1, 0.5, 1 + 0.5, 1, 1, }; //根據右邊的簡譜寫出音調和節奏 int length; int tonepin = 6; void setup() { Serial.begin(9600); pinMode(tonepin, OUTPUT); length = sizeof(tune) / sizeof(tune[0]); } void loop() { while (Serial.available()) { int inByte = Serial.read(); switch (inByte) { case 65: //串口輸入為A時 Serial.println("I'm not singing"); //回送I'm not singing digitalWrite(13, LOW); //滅燈 break; case 66: //串口輸入為B時 Serial.println("I'm singing"); //回送I'm singing digitalWrite(13, HIGH); //亮燈 for (int x = 0; x < length; x++) { tone(tonepin, tune[x]*1.19); delay(500 * durt[x]); noTone(tonepin); } //演奏 *1.19使D調變成F調 delay(2000); break; } } } //上傳時拔掉藍線和黃線[/mw_shl_code] 四.完成图 |






把你的小黄人一看我那个就太不像了。。。
我给你想了一个主意,就是我觉得如果想更生动一点可以拿8X8点矩阵做一个嘴部的造型出来,或是编好重复的动作,或是根据声音大小改变嘴型。:lol