0

私はラズベリーパイでプログラミングするのが初めてです。私の仕事は、ボタンでアクティブになり、同じボタンで停止する「アラーム」を作成することです。ここで、高から低にフェードする 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);

    }

}

私は実際にはドイツ出身なので、私のコメントは残念ながらドイツ語です。しかし、皆さんが私を助けてくれることを願っています:/

4

0 に答える 0