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: Terrariensteuerung die x-te Kategorie: Programmierung Basic (von Florian86 - 8.10.2008 4:48)
 Als Antwort auf Re: Terrariensteuerung die x-te von Florian86 - 7.10.2008 15:20
Florian86 nutzt:  CC1-Station V1.1
Hallo!
ICh schon wieder ;)
Also ich habe deinen Ratschlag befolgt und es klappt wunderbar.. Bei überschreiten der MaxTemp fällt das Relais ab und die Beleuchtung geht aus.
Doch ich habe nun ein weiteres Problem... :(
Abends schaltet K1 nicht aus, wie vorgesehen. Vielleicht hat einer eine Idee, woran´s liegen könnte?

Hier der aktuelle Quellcode:

define LED1 port[1] 'LEDs an Port 1-6
define LED2 port[2]
define LED3 port[3]
define LED4 port[4]
define LED5 port[5]
define LED6 port[6]

define K1 port[7] 'Relais 1 und 2 an Port 7 und 8
define K2 port[8] 'K1=Licht K2=Licht(Heizen)

define Temp ad[5]

define T1 word 'Variable für Temperatur

define Uhrzeit word 'Variable für die aktuelle Uhrzeit

define minTemp 27 'Minimaltemperatur 27°C (Schalttemperatur)
define maxTemp 33 'Maximaltemperatur 33°C (Schalttemperatur)

define absminTemp 20 'Absolute Minimaltemperatur (Alarmtemperatur)
define absmaxTemp 40 'Absolute Maximaltemperatur (Alarmtemperatur)


'***Das eigentliche Programm***


#Anfang
LED1=OFF 'Hier wird sichergestellt, dass LED1-6 aus sind
LED2=OFF
LED3=OFF
LED4=OFF
LED5=OFF
LED6=OFF
K1=OFF 'Hier wird sichergestellt, dass Relais 1 und 2 aus sind
K2=OFF

#loop 'Endlosschleife
if second=0 or second=59 then goto loop 'Verhindert Fehler beim Stundenwechsel
Uhrzeit=hour*100+minute 'Aktuelle Uhrzeit für Auswertung zwischenspeichern
T1=(Temp*5-250)/10 'Hier wird die Temperatur errechnet
if Uhrzeit >= 2000 then gosub AllesAus
if uhrzeit >=   830 then gosub AllesAn
goto loop

  #AllesAn 'wird morgens um 8.30Uhr aufgerufen
   K1=ON 'Relais 1 zieht an ("Sonnenaufgang")
   if T1<(minTemp) then K2=ON 'Wenn Temp <27 zieht K2 an (heizen)
   if T1>(maxTemp) then K2=OFF 'Wenn Temp >33 fällt K2 ab (heizen aus)
   if T1<(absminTemp) then gosub minAlarm
   if T1>(absmaxTemp) then gosub maxAlarm
   return

   #minAlarm 'LED1 blinkt und es ertönt ein Alarmsignal
    pause 1
    LED1=1
    BEEP 250,20,0
    pause 1
    LED1=0
    BEEP 350,20,0
    return

   #maxAlarm 'LED6 blinkt und es ertönt ein Alarmsignal
    pause 1
    LED6=1
    BEEP 250,20,0
    pause 1
    LED6=0
    BEEP 350,20,0
    return

  #AllesAus 'wird abends um 20.00Uhr aufgerufen
   K1=OFF 'Beleuchtung geht aus
   K2=OFF
   return


> Hallo!
> Dankeschön für die schnelle Hilfe. Hatte da wohl echt ein Brett vorm Kopp :D
> Werd´s gleich mal ausprobieren! :)
> Also, danke nochmals ;)
>
>
>
> > Hallo Florian,
> > das generelle Problem ist, dass die Temperatur nur einmal bei Start des Programms abgefragt und berechnet wird. Später in der Endlosschleife nimmst Du deshalb immer den gleichen Temp.wert her, die Steuerung kann deshalb generell nicht auf Temperaturwechsel reagieren.
> > Schieb die Messung/Berechnung der Temperatur in die Endlosschleife und es wird funktionieren.
> >
> > Am einfachsten findest Du den Bug mit dem Simulator (-->überwachte Variablen ; T1 überwachen bei maueller Änderung von AD5).
> >
> > Grüsse, MaPi
> >
> >
> > > Hallo liebe Forengemeinde!
> > > Ich habe mich in den letzten Wochen viel mit C-Control, bzw Basic-Programmierung beschäftigt und mir mit Hilfe dieses Forums und verschiedenen anderen Seiten eine kleine Terrariensteuerung gebastelt. Sie beinhaltet eine einfache Zeitschaltuhr, sowie einen Temperaaturbereich der überwacht/geregelt wird. Jetzt habe ich das Problem, dass ich irgendeinen Fehler im Quellcode habe... Auf jeden Fall schaltrt das Relais bei vorgegebener Übertemperatur nicht ab. Vielleicht kann sich ja mal jemand den Quellcode ansehen und mir sagen, was der Fehler ist.. Ich denke mal für die erfahrenen Nutzer hier dürfte das kein Problem sein.
> > > Also hier der Quellcode, und schonmal ein herzliches Dankeschön im voraus :)
> > >
> > >
> > >
> > > 'Geckoterrariumsteuerung Test.bas
> > >
> > > define LED1 port[1] 'LEDs an Port 1-6
> > > define LED2 port[2]
> > > define LED3 port[3]
> > > define LED4 port[4]
> > > define LED5 port[5]
> > > define LED6 port[6]
> > >
> > > define K1 port[7] 'Relais 1 und 2 an Port 7 und 8
> > > define K2 port[8] 'K1=Licht K2=Licht(Heizen)
> > >
> > > define Temp ad[5]
> > >
> > > define T1 word 'Variable für Temperatur
> > >
> > > define Uhrzeit word 'Variable für die aktuelle Uhrzeit
> > >
> > > define minTemp 27 'Minimaltemperatur 27°C (Schalttemperatur)
> > > define maxTemp 33 'Maximaltemperatur 33°C (Schalttemperatur)
> > >
> > > define absminTemp 20 'Absolute Minimaltemperatur (Alarmtemperatur)
> > > define absmaxTemp 40 'Absolute Maximaltemperatur (Alarmtemperatur)
> > >
> > >
> > > '***Das eigentliche Programm***
> > >
> > >
> > > #Anfang
> > > LED1=OFF 'Hier wird sichergestellt, dass LED1-6 aus sind
> > > LED2=OFF
> > > LED3=OFF
> > > LED4=OFF
> > > LED5=OFF
> > > LED6=OFF
> > > K1=OFF 'Hier wird sichergestellt, dass Relais 1 und 2 aus sind
> > > K2=OFF
> > > T1=(Temp*5-250)/10 'Hier wird die Temperatur errechnet
> > >
> > > #loop 'Endlosschleife
> > > if second=0 or second=59 then goto loop 'Verhindert Fehler beim Stundenwechsel
> > > Uhrzeit=hour*100+minute 'Aktuelle Uhrzeit für Auswertung zwischenspeichern
> > > if Uhrzeit >= 2000 then gosub AllesAus
> > > if uhrzeit >=  830 then gosub AllesAn
> > > goto loop
> > >
> > >   #AllesAn 'wird morgens um 8.30Uhr aufgerufen
> > >    K1=ON 'Relais 1 zieht an ("Sonnenaufgang")
> > >    if T1<(minTemp) then K2=ON 'Wenn Temp <27 zieht K2 an (heizen)
> > >    if T1>(maxTemp) then K2=OFF 'Wenn Temp >33 fällt K2 ab (heizen aus)
> > >    if T1<(absminTemp) then gosub minAlarm
> > >    if T1>(absmaxTemp) then gosub maxAlarm
> > >    return
> > >
> > >    #minAlarm 'LED1 blinkt und es ertönt ein Alarmsignal
> > >     pause 1
> > >     LED1=1
> > >     BEEP 250,20,0
> > >     pause 1
> > >     LED1=0
> > >     BEEP 350,20,0
> > >     return
> > >
> > >    #maxAlarm 'LED6 blinkt und es ertönt ein Alarmsignal
> > >     pause 1
> > >     LED6=1
> > >     BEEP 250,20,0
> > >     pause 1
> > >     LED6=0
> > >     BEEP 350,20,0
> > >     return
> > >
> > >   #AllesAus 'wird abends um 20.00Uhr aufgerufen
> > >    K1=OFF 'Beleuchtung geht aus
> > >    K2=OFF
> > >    return
> > >
> > >

 Antwort schreiben

Bisherige Antworten:

Re: Terrariensteuerung die x-te (von MaPi - 8.10.2008 9:37)
    Re: Terrariensteuerung die x-te (von Hanns - 8.10.2008 20:38)