1.實驗器材 Arduino開發板,麵包板一塊,杜邦線若幹,LED燈若幹,220歐電阻若幹,蜂鳴器一個。 2.實驗操作 將六個led燈的正極依次接到arduino板I/O介面的2-7口, 電源負極依分別接一個220歐的電阻 。 整體負極接arduino板的GND介面。 蜂鳴器正極接arduino板I ...
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();
}