我嘗試了一些初學者的Arduino編程。引腳中斷是不一致
的任務是使板我有(ESP8266)播放一些音樂,然後當我按下按鈕的音樂應該停止,然後當我再次按下重新啓動。
這裏是我的代碼,
#include "pitches.h" // contains frequencies for notes
#define PIN_BUTTON 0 // the button
#define PIN_BUZZER 13 // the digital pin the Buzzer is attached to
bool stop = false; // button pressed
void play_note(int freq){
if (freq > 0 && !stop){
analogWrite(PIN_BUZZER, 512);
analogWriteFreq(freq);
} else {
analogWrite(PIN_BUZZER, 0);
}
}
void stopMusic(){
stop = !stop;
play_note(0);
}
void setup() {
pinMode(PIN_BUZZER, OUTPUT);
pinMode(PIN_BUTTON, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(PIN_BUTTON), stopMusic, RISING);
}
void loop() {
// intro
play_note(NOTE_E7);
delay(110);
play_note(NOTE_E7);
delay(220);
play_note(NOTE_E7);
delay(220);
play_note(NOTE_C7);
delay(110);
play_note(NOTE_E7);
delay(220);
play_note(NOTE_G7);
delay(440);
play_note(NOTE_G6);
delay(440);
}
的問題是,該按鈕被不一致。有時,按下它,音樂會立即停止。其他時候,它會繼續玩,我不得不再按一次或兩次。同樣,當我想讓音樂重新開始播放時,有時會在按下按鈕時立即開始播放,但有時候我需要按兩下或兩次以上來恢復音樂。我不知道這是什麼原因。建議?
Arduino不是C. – Olaf