[BASIC] 005 SOUND PLAY JINGLE BELLS (เล่นเพลง จิงเกิลเบลส์)
Previous[BASIC] 004 SOUND TONE BUZZER (เสียงดนตรี)Next[BASIC] 006 MICRO SD CARD (ไฟล์บนไมโครเอสดีการ์ด)
Last updated
Was this helpful?
Last updated
Was this helpful?
Was this helpful?
...
// สร้างอาเรย์สำหรับเก็บข้อมูลตัวโน๊ต
int notes[]={
659, 659, 659, -1, 659, 659, 659, -1, 659, 784, 523,
587, 659, -1, 698, 698, -1, 698, 698, -1, 698, 659,
659, 659, 659, -1, 659, 587, 587, 659, 587, 784
};
......
// วนอ่านข้อมูลตัวโน๊ตแต่ละตัวในอาเรย์ notes[]
for(int i=0;i<(sizeof(notes)/sizeof(int *));i++){
lemon.tone(notes[i],400); // สั่งให้เล่นตัวโน๊ต
}
...for(
int i=0; // สร้าง i เป็นตัวแปร int เพื่อเป็น index ให้ array ของตัวโน๊ต
i<(sizeof(notes)/sizeof(int *)); // ตรวจสอบว่าตอนนี้ที่เล่นอยู่เป็นตัวสุดท้ายหรือยัง
i++) // ถ้าไม่ใช่ตัวสุดท้ายให้เล่นโน๊ตตัวถัดไปlemon.tone(notes[i],400);
// อธิบายเพิ่มเติม
lemon.tone( // คำสั่งสำหรับเล่นตัวโน๊ตตามความถี่ต่างๆ
notes[i], // เลือกตัวโน๊ตจาก array โดยอ้างอิงจากตัวที่ i เช่น i=0 หมายถึงตัวแรก
400 // เล่นนานเป็นระยะเวลา 400 มิลลิวินาที (0.4 วินาที) แล้วหยุดเล่น
); int notes[]={
659, 659, 659, -1, 659, 659, 659, -1, 659, 784, 523,
587, 659, -1, 698, 698, -1, 698, 698, -1, 698, 659,
659, 659, 659, -1, 659, 587, 587, 659, 587, 784
};
for(int i=0;i<(sizeof(notes)/sizeof(int *));i++){
lemon.tone(notes[i],400); // สั่งให้เล่นตัวโน๊ต
}
// 1.สร้างตัวแปร array ชื่อ notes เพื่อจัดเก็บความถี่ของโน๊ตดนตรี ประกอบกันเป็น melody
// 2.ใช้คำสั่งทำซ้ำ loop โดยให้เล่นตั้งแต่โน๊ตตัวแรก (0) ไปจนถึงตัวสุดท้าย
// 3.โน๊ตแต่ละตัวเล่นนานระยะเวลา 0.4 วินาที แล้วจึงเล่นตัวถัดไป/*
Basic : การเขียนโปรแกรมกับการใช้งานเสียงดนตรีเพลง Jingle bells บนบอร์ดไมโครคอนโทรลเลอร์ HONEYLemon
*/
#include <HONEYLemon.h>
void setup()
{
lemon.begin(); // เรียกใช้งานฟังก์ชั่นเริ่มต้นของบอร์ด HONEYLemon
Serial.begin(115200); // เรียกใช้งาน Serial
lemon.debug(Serial); // ขอดู debug ของบอร์ด HONEYLemon ผ่าน Serial
}
void loop()
{
// สร้างอาเรย์สำหรับเก็บข้อมูลตัวโน๊ต
int notes[]={
659, 659, 659, -1, 659, 659, 659, -1, 659, 784, 523,
587, 659, -1, 698, 698, -1, 698, 698, -1, 698, 659,
659, 659, 659, -1, 659, 587, 587, 659, 587, 784
};
// วนอ่านข้อมูลตัวโน๊ตแต่ละตัวในอาเรย์ notes[]
for(int i=0;i<(sizeof(notes)/sizeof(int *));i++){
lemon.tone(notes[i],400); // สั่งให้เล่นตัวโน๊ต
}
lemon.noTone(); // สั่งให้หยุเล่นเสียง
delay(1000); // รอ 10000 มิลลิวินาที (10 วินาที)
}