Hallo Peter,
sende einfach mal deine Wertetabelle.
Z.B. sind 5 Minuten um setze Portpin auf L oder H oder Verknüpfe mehrere Portpin wenn
Portpin1 gleich 1 dann setze Portpin2 /3 auch auf 1 oder erst nach 24 Stunden setzen usw.
Gruß
Fred
Hallo Peter,
sende einfach mal deine Wertetabelle.
Z.B. sind 5 Minuten um setze Portpin auf L oder H oder Verknüpfe mehrere Portpin wenn
Portpin1 gleich 1 dann setze Portpin2 /3 auch auf 1 oder erst nach 24 Stunden setzen usw.
Gruß
Fred
Hallo Fred,
im Anhang sende ich Dir die Schaltzeiten-Tabelle. Nach Zuweisung der Ein-Ausgänge und Schleifenüberwachung, welche Minute und Sec. gerade aktuell ist, würde ich auf dem Testboard immer eine von 3 LEDs für 5 Minuten leuchten sehen. Noch bin ich dabei mir diverse Befehle von Bascom in ihrer Funktion klar zu machen.
Für weitere Ideen und Hinweise bin ich immer dankbar. Ich hoffe mein Projekt in den nächsten Monaten Realität werden zu lassen.
In diesem Sinne einen sonnigen 3. Oktober !
Herzliche Grüße aus der Nähe von Bremen
Peter
Schaltzeiten_3_Geraete.pdf
Hallo
Hallo Peter,
mit dieser Config bekommst du die Variablen Date$ und Time$ übergeben.
Config Dcf77 = Pinb.0 , Timer = 1 , Debug = 1 , Check = 1 , Inverted = 1 ', Gosub = Sectic
Wichtig ist noch je nach DCF77 die Inverted Einstellung. Viele benötigen [Inverted = 0]
Nun brauchst du nur noch Time$ auswerten.
Kleiner Ansatz:
If Time$ = „00:00:00“ And Time$ < “00:05:00” Then
Set Portpin1
Else
Reset Portpin1
End If
Gruß
Fred
Da kann das kleiner als auch weg bleiben. Es sei denn statt des = kommt ein größer gleich. Ich wusste gar nicht, dass man Zeiten mittels größer und kleiner auf Bereiche prüfen kann. Wieder was gelernt. Bisher habe ich immer _hour, _min und _sec ausgewertet.
Wenn das Herz involviert ist, steht die Logik außen vor! \/
Hallo peterfido,
natürlich gibt es verschiedene Lösungswege, wenn Bascom schon so was anbietet, warum nicht nutzen.
Möchte man aber ein Zeitfenster muss doch auch ein „kleiner“ abgefragt werden, oder?
Nahm an dies möchte Funkpeter so. IF war nur als Ansatz gedacht. Da er 4 Zeitfenster pro Portpin benötigt, können mit Or -Verknüpfungen vor Then, die anderen 3 eingebunden werden.
Auch ein Vorteil ist die Stunden- Dateabfrage um noch mehr Entscheidungen zu treffen.
z.B.
If Date$ = „31.12.2014“ And Time$ = „23:59:59” Then
Set Portpinx ‘ ist Anweisung für Zünder Feuerwerk starten.
End If
Da DCF77 sehr genau ist. Werden die Nachbarn staunen.
Zeitumstellungen gehen ja auch automatisch.
Nun wisst Ihr warum ich DCF gegenüber Quarz Taktgeber bevorzuge.
Noch ein kleiner Hinweis:
Baue DCF77 Module in ein kleines Gehäuse ein, schalten noch ein Transistor nach(für Flankensteilheit noch eine LED für Empfangskontrolle) dann mit ca. 2 Meter 3 adriges Kabel zum Controller(VCC, GND und Signal)
Somit kann ich Modul auf optimalen Empfangsort ausrichten.
Mit freundlichen Grüßen
fredred
Geändert von fredred (04.10.2014 um 12:14 Uhr)
Je nach Ort ist das DCF77 Signal nicht immer zuverlässig zu Empfangen. Bremen sollte noch nicht so kritisch sein. Das kann an der Signalstärke liegen aber auch an externen Störungen durch Schaltnetzteile / alte Röhren-Fernseher (wird weniger). Entsprechend sollte die Steuerung gut auf Fehler und Plausibilität Prüfen, sonst geht die Uhr ggf. auch mal 2 Stunden oder so falsch - so einen dummen Funk-Wecker der manchmal um ein paar Stunden falsch geht hab ich noch rumliegen. Für die Zwischenzeit ist man dann auf den Quarz am µC angewiesen.
Hallo Fred,
Hallo Peterfido,
Hallo Besserwessi,
der Funkempfang des DCF77-Senders ist nahe (nördlich) von Bremen -bei mir - kein Problem....
Die Bascom-Lib für DCF77 liefert doch aus bei Ausfall des DCF77-Signals eine hochgenaue interne Uhrzeit. Dies sollte vorübergehend auch genau genug sein.
Nun bin ich dabei w.o. geschrieben diverse Befehle in Bascom zu erarbeiten um zu verstehen, was ich da demnächst eigentlich programmiere.. Mich interesseieren ja "nur" die Auswerteroutinen für die Minuten und Sekunden. Zu Testzwecken Suche ich aktuell einen Hinweis, ob die interne Uhr des PCs über Bascom abgefragt werden kann....???? Kann man das tun? Und wie lautet der Befehl? Ich benötige den Zeitstring um damit zu experimentieren, bevor ich mich an das Programmieren des Schaltzeitenprogramms mache.
Für Hinweise und Ergänzungen schon mal vielen Dank!
Peter
Lesezeichen