Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Anfänger braucht Hilfe ..... Kategorie: Programmierung Basic (von Achim - 7.07.2004 9:16)
 Als Antwort auf Re: Anfänger braucht Hilfe ..... von Thomas - 6.07.2004 21:47
> > > 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

Bisherige Antworten:

Re: Anfänger braucht Hilfe ..... (von Achim - 7.07.2004 9:19)