私はラズベリーパイでプログラミングするのが初めてです。私の仕事は、ボタンでアクティブになり、同じボタンで停止する「アラーム」を作成することです。ここで、高から低にフェードする 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);
}
}
私は実際にはドイツ出身なので、私のコメントは残念ながらドイツ語です。しかし、皆さんが私を助けてくれることを願っています:/