const int buzzerPin = 5; //chân kết nối buzzer
const int btnPin = 4; //chân kết nối button
int i;
int melody[] = {262, 294, 330, 349, 392, 440, 494, 523, 523, 494, 440, 392, 349, 330, 294, 262};
// DO, RE, MI, FA, SOL, LA, TI, DO, DO, TI, LA, SOL, FA, MI, RE, DO
void setup() {
pinMode(buzzerPin, OUTPUT); //thiết lập chân buzzer là output
pinMode(btnPin, INPUT_PULLUP); //thiết lập chân nút nhấn là input khi không nhấn được kéo lên mức cao
Serial.begin(115200); //khởi tạo Serial để debug
}
void loop() {
if(digitalRead(btnPin) == LOW){ //nhấn nút thì buzzer bật rồi tắt
digitalWrite(buzzerPin, HIGH); //bật buzzer
Serial.println("Buzzer ON"); //in thông báo "buzzer on" ra màn hình
for(i=0; i<sizeof(melody)/sizeof(melody[0]); i++) // Lặp qua mảng `melody` để phát từng nốt
{
tone(buzzerPin, melody[i], 500); // Phát âm thanh tần số melody[i] trong 500ms
delay(500); // Chờ 500ms trước khi phát nốt tiếp theo
}
digitalWrite(buzzerPin, LOW); //tắt buzzer
Serial.println("Buzzer OFF"); //in thông báo "buzzer off" ra màn hình
delay(1000);
}
}