
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
> Hallo Max! > > Zuerst müsstest Du Deine Taster anders abfragen und dabei auch gleichzeitig verriegeln. > > Define Taster1 Port[9] > Define Ver1 Byte > Define Zeit1 Word > > If (Not Taster1) And (Ver1 = 0) Then 'durchlaufen wenn Taster EIN > Ver1 = 1 'Verriegelung aktivieren > Zeit1 = 120 'Laufzeit einstellen > Pause 5 'Schalterentprellung > End If > If (Taster1) And (Ver1 = 1) Then 'durchlaufen wenn Taster AUS > Ver1 = 0 'Verriegelung aufheben > Pause 5 'Schalterentprellung > End If > > So erfasst Du beide Schaltzustände, einmal EIN und einmal AUS. Durch die Verriegelung wird die If Anweisung auch nur 1x durchlaufen, dadurch wird die „Zeit1“ Variable auch nur dann verändert wenn Du den Taster betätigst. Anschließend brauchst Du ein „Zeitglied“ wo die Zeit verändert wird. > > Define Sekunde Byte > > If Second <> Sekunde Then 'durchlaufen wenn nicht gleich > Sekunde = Second 'verriegeln - neu zuweisen > If Zeit1 > 0 Then Zeit1 = Zeit1 – 1 'Zeit runter zählen > End If > > Die If Anweisung wird 1x pro Sekunde durchlaufen, damit hast Du also eine Zeitbasis mit einer Sekunde. Die Variable „Zeit1“ wird also jede Sekunde um 1 herab gesetzt, bis sie wieder bei 0 angekommen ist. Mit dem Taster hast Du zuvor den Wert auf 120 eingestellt, die Variable erreit so also nach 2 Minuten wieder den Wert 0. Und zu guter letzt muss Du die entsprechenden Ausgänge nur noch in Abhängigkeit der „Zeit1“ Variable schalten. > > Define Licht1 Port[11] > > If Zeit1 > 0 Then > Licht = on 'Licht 1 einschalten > Else > Licht = off 'Licht 1 ausschalten > End If > > Und das war es auch schon. Das ganze packst Du in eine Endlosschleife und Deine Lichtsteuerung ist fertig... > > LG Jens Danke Jens, es funktioniert auch mit zwei Tastern. Hier das Programm: Define Taster1 Port[9] Define Taster2 Port[10] Define Ver1 Byte Define Ver2 Byte Define Zeit1 Word Define Zeit2 Word Define Licht1 Port[11] define licht2 port[12] define licht3 port[4] define licht4 port[15] define licht5 port[16] Define Sekunde Byte Define Sekunde1 Byte licht1=off licht2=off licht3=off licht4=off licht5=off #start If (Not Taster1) And (Ver1 = 0) Then Ver1 = 1 Zeit1 = 120 Pause 5 End If If (Taster1) And (Ver1 = 1) Then Ver1 = 0 Pause 5 End If If Second <> Sekunde Then Sekunde = Second If Zeit1 > 0 Then Zeit1 = Zeit1 -1 End If If (Not Taster2) And (Ver2 = 0) Then Ver2 = 1 Zeit2 = 120 Pause 5 End If If (Taster2) And (Ver2 = 1) Then Ver2 = 0 Pause 5 End If If Second <> Sekunde1 Then Sekunde1 = Second If Zeit2 > 0 Then Zeit2 = Zeit2 -1 End If If Zeit1 > 0 Then Licht1 = on Else Licht1 = off End If If Zeit2 > 0 Then Licht2 = on Else Licht2 = off End If goto start Wenn ich mit dem Taster1 Licht1 anschalte, dann sollte Licht3, Licht4 und Licht5 jeweils 120 sec nacheinander brennen, Taster 2 sollte weiterhin separat schaltbar sein. Wie müsste ich dann das Programm umbauen? Frohe Weihnachten Gruß Max |
| Antwort schreiben |