利用Arduino制作音乐播放+随节奏闪光仪器实现

  • 利用Arduino制作音乐播放+随节奏闪光仪器实现已关闭评论
  • 94 次浏览
  • A+
所属分类:.NET技术
摘要

Arduino开发板,面包板一块,杜邦线若干,LED灯若干,220欧电阻若干,蜂鸣器一个。


1.实验器材

Arduino开发板,面包板一块,杜邦线若干,LED灯若干,220欧电阻若干,蜂鸣器一个。

2.实验操作

  • 将六个led灯的正极依次接到arduino板I/O接口的2-7口,
  • 电源负极依分别接一个220欧的电阻 。
  • 整体负极接arduino板的GND接口。
  • 蜂鸣器正极接arduino板I/O接口的8口,负极接GND。

3.代码实现

int buzzer=8; //设置控制蜂鸣器的数字 设置控制蜂鸣器的数字 IO脚  int BASE = 2 ; //第一颗 第一颗 LED 接的 I/O 腳  int NUM = 6; //LED 的总数    int song[] = { /* 儿歌《小星星》*/ 277,277,415,415,466,466,415, 370,370,330,330,311,311,277, 415,415,370,370,330,330,311, 415,415,370,370,330,330,311, 277,277,415,415,466,466,415, 370,370,330,330,311,311,277, 415,415,370,370,330,330,311, 415,415,370,370,330,330,311, 277,277,415,415,466,466,415, 370,370,330,330,311,311,277, }; void setup() { for (int thisNote = 0; thisNote <154; thisNote++) { int noteDuration = 1000/noteDurations[thisNote];// 计算每个节拍的时间,以一个节拍一秒为例,四分之一拍就是1000/4毫秒,八分之一拍就是1000/8毫秒 tone(8, song[thisNote],noteDuration); int pauseBetweenNotes = noteDuration * 1.10; // 每个音符间的停顿间隔,以该音符的130%为佳 delay(pauseBetweenNotes); noTone(8); }  for (int i = BASE;i < BASE + NUM; i ++)    {     pinMode(i, OUTPUT); //设定数字 设定数字 I/O脚为输出 脚为输出      }   for (int i = BASE; i < BASE + NUM; i ++)    {     digitalWrite(i, LOW); //设定数字 设定数字 I/O脚输出为 脚输出为 "低",即逐渐关灯      delay(200); //延迟      } for (int i = BASE; i < BASE + NUM; i ++)      {      digitalWrite(i, HIGH); //设定数字 I/O脚输出为 "高",即逐渐开灯       delay(200); //延迟      } } void loop() { setup(); } 

4.实现实物图

4.1 流水灯接口:

利用Arduino制作音乐播放+随节奏闪光仪器实现

4.2 蜂鸣器接口:

利用Arduino制作音乐播放+随节奏闪光仪器实现

4.3 Arduino板接口:

利用Arduino制作音乐播放+随节奏闪光仪器实现