ich sehe keinen richtigen offensichtlichen Fehler, allerdings kommt mir deine Button-press-Abfrage etwas kritisch vor, was sich u.U. ungünstig während der Laufzeit auswirken könnte:
Denn du liest einen Buttondruck, ohne auf Loslassen zu warten:
Code:
if (buttonState_1 == LOW)
{
volume ++;
if (volume == 16) volume = 15;
radio.setVolume(volume);
delay(100);
displayData();
}
else if (buttonState_2 == LOW)
{
volume --;
if (volume < 0) volume = 0;
radio.setVolume(volume);
delay(100);
displayData();
}
ich mache das bei mir in solchen Fällen so:
Code:
// digitalRead(buttonPin_1); // button_pressed == LOW?
if(!digitalRead(buttonPin_1) ) {
while(!digitalRead(buttonPin_1) ) // wait for button_up == HIGH
{delay(10);}
// volume ++;
//...usw...
}
// digitalRead(buttonPin_2); // button_pressed == LOW?
if(!digitalRead(buttonPin_2) ) {
while(!digitalRead(buttonPin_2) ) // wait for button_up == HIGH
{delay(10);}
// volume --;
//...usw...
}
vlt wäre das ja mal einen Versuch wert....
Lesezeichen