我是使用树莓派编程的新手,我的任务是建立一个用按钮激活并由同一个按钮停止的“警报”。现在我想包括一个 PWM 驱动的 LED,从高到低衰减。对我来说的问题是,我不知道如何通过按下按钮摆脱循环。
while(1)
{
// Wenn das erste mal gedrückt führe schleife aus
if(digitalRead(5)==1 && alarm==0)
{
//warte 300ms
delay(300);
//setze flag auf eins (Schleife war aktiv)
alarm=1;
}
//Wenn die Taste vorher schon einmal gedrückt wurde, stoppe LED
else if (digitalRead(5)==1 && alarm==1)
{
//warte 300ms
delay(300);
// Schalte den Alarm wieder aus
alarm=0;
// Schalte LED aus
digitalWrite(0, 0);
}
//Solange Alarm eingeschaltet, führe Schleife aus
while (alarm==1 && digitalRead(5)==0)
{
for(up = 1; up <= 100 | digitalRead(5)==1; up++)
{
softPwmWrite (0, up);
delay(10);
}
delay(1000);
for(down = up; down >= 0 | digitalRead(5)==1; down--)
{
softPwmWrite (0, down);
delay(10);
}
delay(1000);
}
}
我实际上来自德国,所以不幸的是我的评论是德国人。但我希望你们能帮助我:/