Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> > > Hallo, > > > ich habe da offensichtlich einen Knoten im Kopf, vielleicht kann jemand helfen: > > > > > > Ich habe diverse Zeitschaltuhren programmiert. Dafür habe ich die 24h in 86400s eingeteilt. Jetzt > > > möchte ich eine Beleuchtung um 21:00Uhr abends einschalten (75600) und um 22:00 Uhr(79200) > > > wieder aus. Das ist auch kein Problem. > > > > > > <code>if aktuellZeit>=75600 and timeserial <=79200 > > > schalte_ein</code> > > > > > > wenn ich nun aber das Licht nachts um 02:00Uhr ausschalten möchte, funktioniert meine Zeitschaltuhr > > > nicht mehr...hat jemand eine Idee, wie man das elegant abfackeln kann? > > > > > > derzeit mache ich das so: > > > ich gucke, ob die Ausschaltzeit kleiner ist als die Einschaltzeit, ist das der Fall, addiere ich 86400s > > > auf die Ausschaltzeit, warte dann bis Mitternacht und ziehe die 86400 wieder ab. Das geht zwar, ist > > > aber nicht sehr elegant, zumal ich mir dann andere Mechanismen verbaue: > > > > > > z.B. > > > Die Einschaltzeit richtet sich nach dem Sonnenuntergang. Wenn nun der SU kurz vor der Ausschaltzeit > > > liegt, dann würde die Beleuchtung nur sehr kurz eingeschaltet. Das ist Kappes. Deshalb fange ich das > > > ab, indem ich eine Mindesteinschaltzeit von 20min. festlege, ansonsten bleibt alles dunkel. > > > > > > Es wäre schön, wenn jemand den Knoten im Kopf lösen könnte > > > > > > Gruß > > > Christian > > > > > > > > Hallo Christian > > > > wie wäre es so: > > <code> > > > > if tein > taus // Schaltzeit über 0:00Uhr hinaus > > { einschaltzeit = 86400 - tein + taus; // Gesamteinschaltzeit ermitteln > > if einschaltzeit >= min_einschaltzeit // nur weiter prüfen wenn min. Einschaltzeit erreicht > > {if time >= tein or time < taus // prüfen auf Uhrzeit "ein" => wichtig _oder_ ! > > { einschalten... > > } > > } > > } > > else > > { einschaltzeit = taus - tein; // Gesamteinschaltzeit ermitteln > > if einschaltzeit >= min_einschaltzeit // nur weiter prüfen wenn min. Einschaltzeit erreicht > > {if time >= tein and time < taus // prüfen auf Uhrzeit "ein" => wichtig _und_ ! > > { einschalten... > > } > > } > > </code> > > > > nitraM > > Hallo nitraM, > danke für die Antwort, aber das kann ich so nicht machen. Ich darf nur an einer Stelle einschalten, > sonst kriege ich das Ausschalten nicht hin. Es gibt da noch einen Taster, der die ganze Automatik bei > der ersten Betätigung aushebelt, aber nur während der "Zeitschalter-ein"-Phasen. Ansonsten arbeitet > der Taster wie ein Schalter mit einer auto-aus-Funktion nach zwei Stunden. Die setzt dann das "busy" > wieder zurück und das Licht geht aus. > > Man muss das irgendwie mit eiener Anweisung hinkriegen: > <code> > if(timeserial>=gartenlicht_on and > timeserial<=gartenlicht_off) or Schalter(4,1) > { > if schalter_busy[4] and timeserial>=gartenlicht_on > gartenlicht_off=-1; //Ausschaltzeit löschen > max7311.set(0,Relais7,1); > } > else > { > max7311.set(0,Relais7,0); > }</code> > > Der Teil hier ist das, was unsauber ist, aber mir fällt nix Besseres ein. > <code> > { int einschaltdauer; > > if gartenlicht_on > gartenlicht_off // Schaltzeit nach 0:00Uhr hinaus > einschaltdauer = 86400 - gartenlicht_on + gartenlicht_off; > else > einschaltdauer = gartenlicht_off - gartenlicht_on; > > if einschaltdauer< gartenlicht_offset*2 //Einschaltzeit zu kurz > { > gartenlicht_off=-1; > gartenlicht_on=-1; > } > else > gartenlicht_on=su+gartenlicht_offset; //Einschaltzeit=Sonnenuntergang +Offset > > > if gartenlicht_off < gartenlicht_on and !schalter_flag[4] // ...und Schalter war niemals an > gartenlicht_off=gartenlicht_off+86400; //addiere 24h > if midnight and gartenlicht_off > 86400 //siehe oben > { > midnight=0; > gartenlicht_on=0; > gartenlicht_off=gartenlicht_off-86400; > }</code> > > Danke und Gruß, > Christian
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB