
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> > > Dachte es wäre einfach folgendes zu erreichen : > > > > > > Wenn man F1 drückt soll das Relais K1 für eine bestimmte Zeit ( die muss ich noch errechnen denke > > > so ca. 2 bis 4 Sekunden) schalten (eine Pumpe ansteuern) und nach dieser Zeit auf eine erneutes > > > drücken der F1 Taste abwarten. > > > > Hast Du die Bedienungsanleitung gelesen? Da ist ein sehr ähnliches Beispiel drin, > > wenn ich mich recht erinnere. > > stimmt dieses Programm verarbeitet aber keine Zeit .... meine man kann an und aus schalten .... Ein paar sehr gute allgemeine Hinweise haben Manfred und Thomas ja schon gegeben. Als Ergänzung will ich noch einen konkrete Lösungsansatz nachreichen. Thomas hat ja schon geschrieben, dass man Zeiten entweder über pause oder über second messen kann. Beide haben Vor- und Nachteile. Ich werde hier mal das Beispiel aus der Bedienungsanleitung ausbauen, das mit second arbeitet. Der Nachteil dabei ist, dass die Genauigkeit nur eine Sekunde ist. D. h. wenn Deine Pumpe K1 vier Sekunden laufen soll, läuft sie im schlechtesten Fall nur 3,05 Sekunden. Wenn Dir das zu ungenau ist, muss man sich noch etwas einfallen lassen. define k1 port[7] ' Relais 1 define k2 port[8] ' Relais 2 define f1 port[9] ' Taste F1 define f2 port[10] ' Taste F2 define led1 port[13] ' LED über F1 define led2 port[14] ' LED über F2 define k1dauer 3 ' Relais 1 soll immer drei Sekunden anziehen (Bsp.) define k2dauer 4 ' Relais 2 soll immer vier Sekunden anziehen (Bsp.) define k1timer byte ' Zähler für K1 define k2timer byte ' Zähler für K2 define oldsecond byte led1=off led2=off k1=off k2=off oldsecond = -1 #loop if NOT K1 and NOT F1 then gosub K1ON ' Relais 1 aus und F1 gedrückt? Dann ein. if NOT K2 and NOT F2 then gosub K2ON ' Relais 2 aus und F2 gedrückt? Dann ein. ' Das folgende nur einmal pro Sekunde if second = oldsecond then goto sameSecond second = oldsecond if NOT K1 then goto NOTK1 ' K1 ist noch an. Timer runter K1timer = k1timer - 1 if k1timer = 0 then gosub K1OFF ' Timer abgelaufen? Dann ausschalten # NOTK1 if NOT K2 then goto NOTK2 ' K2 ist noch an. Timer runter K2timer = k2timer - 1 if k2timer = 0 then gosub K1OFF Timer abgelaufen? Dann ausschalten # NOTK2 #sameSecond goto Loop ' Ende der Hauptschleife #K1On ' K1 einschalten, Led1 einschalten, Timer für K1 setzen K1=ON LED1=On K1timer = k1dauer return #K2On ' K2 einschalten, Led2 einschalten, Timer für K2 setzen K2=ON LED2=On K2timer = k2dauer return #K1Off ' K1 ausschalten, Led1 ausschalten K1=off LED1=Off return #K2Off ' K2 ausschalten, Led2 ausschalten K2=off LED2=Off return HTH Bye Achim |
| Antwort schreiben |