PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C-Control I UNIT M2.0 Programmierung



tauchmaus63
20.07.2005, 18:09
Hallo Gemeinde,
ich habe vor mir eine Terrariumsteuerung zu bauen.
Zu diesem Zweck habe ich mir ein C-Control I UNIT M2.0 bei CONRAD gekauft. Vorher hatte ich eine einfachere Variante dieser Baureihe.
Jetz kommt mein Problem: Ich bin nun nicht der Programmierer, aber ich versuche mich in der Materie etwas hinein zu versetzen.
Ich möchte verschiedene (4) Relais mit einem Zeitprogramm steuern.
Ich habe da scho einiges probiert. Leider funzt das nicht so, wie ich es will. Die Relais fallen nach dem ansteuern eines zweiten immer wieder ab. Es bleibt sozusagen immer nur ein Relais angesteuert.
Wie bekomme ich so eine Art Schleife für das Halten des Relaiszustandes hin? Kann man da etwas mit Variablen, die den Zustand speichern arbeiten? Wie geht das denn?



define SDA as port[9]
define SCL as port[10]

define EXTPORT as byteport[4]
define REL1 as port[29]
define REL2 as port[30]
define REL3 as port[31]
define REL4 as port[32]
define LIGHT as port[16]


LCD.INIT
LIGHT=off
SDA=on
SCL=on
EXTPORT=OFF


TYPE tUhrzeit
Stunde AS BYTE
_Minute AS BYTE
Sekunde AS BYTE
END TYPE

DEFINE AlteUhrzeit AS BYTE
DEFINE Jahr AS WORD
DEFINE Heizungein AS tUhrzeit
DEFINE Heizungaus AS tUhrzeit
DEFINE Beregnungein AS tUhrzeit
DEFINE Beregnungaus AS tUhrzeit


Heizungein.Stunde = 20
Heizungein._Minute = 36
Heizungein.Sekunde = 00
Heizungaus.Stunde = 21
Heizungaus._Minute = 10
Heizungaus.Sekunde = 00

Beregnungein.Stunde = 20
Beregnungein._Minute = 37
Beregnungein.Sekunde = 30
Beregnungaus.Stunde = 20
Beregnungaus._Minute = 37
Beregnungaus.Sekunde = 30



DO

IF Heizungein.Stunde = HOUR THEN
IF Heizungein._Minute = MINUTE THEN
IF Heizungein.Sekunde = SECOND THEN
REL1=ON
END IF
END IF
END IF


IF Heizungaus.Stunde = HOUR THEN
IF Heizungaus._Minute = MINUTE THEN
IF Heizungaus.Sekunde = SECOND THEN
REL1=OFF
END IF
END IF
END IF


IF Beregnungein.Stunde = HOUR THEN
IF Beregnungein._Minute = MINUTE THEN
IF Beregnungein.Sekunde = SECOND THEN
REL4=ON
END IF
END IF
END IF


IF Beregnungaus.Stunde = HOUR THEN
IF Beregnungaus._Minute = MINUTE THEN
IF Beregnungaus.Sekunde = SECOND THEN
REL4=OFF
END IF
END IF
END IF



IF AlteUhrzeit <> SECOND THEN

AlteUhrzeit = SECOND

Jahr = YEAR + 2000

LCD.CLEAR
LCD.POS 1,1

IF HOUR < 10 THEN
LCD.PRINT "0" & HOUR
ELSE
LCD.PRINT HOUR
END IF

LCD.PRINT ":"

IF MINUTE < 10 THEN
LCD.PRINT "0" & MINUTE
ELSE
LCD.PRINT MINUTE
END IF

LCD.PRINT ":"

IF SECOND < 10 THEN
LCD.PRINT "0" & SECOND
ELSE
LCD.PRINT SECOND
END IF

LCD.POS 2,1

SELECT CASE DOW

CASE BPPSunday
LCD.PRINT "So."
CASE BPPMonday
LCD.PRINT "Mo."
CASE BPPTuesday
LCD.PRINT "Di."
CASE BPPWednesday
LCD.PRINT "Mi."
CASE BPPThursday
LCD.PRINT "Do."
CASE BPPFriday
LCD.PRINT "Fr."
CASE BPPSaturday
LCD.PRINT "Sa."

END SELECT

LCD.PRINT " " & DAY & "." & MONTH & "."
LCD.PRINT Jahr

END IF

LOOP

LCD.OFF
END

Dirk
01.08.2005, 18:05
Hallo tauchmaus63 (oder bist du auch spelli/Christoph?),

da du jetzt ja bei CONRAD (in Hannover?) warst und dir eine C-Control I 2.0 gekauft hast, legst du jetzt mit der Programmierung deiner Terrariensteuerung los. Gut so.

Dazu ein paar Anmerkungen:

1. Dieses Board ist für die C-Control II, du hast aber die C-Control I. Also setz das doch auch in das C-Control I Board rein.

2. Bleib doch auch sonst 'mal bei einem Board und einem Namen, weil man dann besser helfen kann. Du warst ja (höchstwahrscheinlich) auch im CC2net.de mit ähnlichen Fragen.

3. Dein Prog sieht ja so zwar umständlich, aber ganz gut aus. Wenn du für die Beregnung die selbe Uhrzeit nimmst, schaltet sich das Relais ein und wieder aus. Eine Variable als Zwischenspeicher brauchst du nicht.

4. Wenn du ein Prog veröffentlichst, setze es doch zwischen die "Code" Textzeichen, dann kann ein Leser es ausklappen und es nimmt nicht so viel Platz weg.

Gruß Dirk