-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: DCF77-Zeit sekundengenau Geräte ein- und ausschalten / Unterstützung gesucht !

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    30.09.2014
    Beiträge
    13

    DCF77-Zeit sekundengenau Geräte ein- und ausschalten / Unterstützung gesucht !

    Anzeige

    Hallo,

    mit einem DCF-Modul, dem DCF-RS1-Wandler und einem entsprechenden Controller möchte ich sekundengenau 3 Geräte abwechselt / zyklisch für 5 Minuten ein- bzw. ausschalten (dauerhaft).

    Eigentlich müßte dies doch ohne großen Aufwand möglich sein? Das Auslesen der Minuten und Sekunden sehe ich als schwierigsten Teil an. Dann auch die Frage, wird an den Ausgängen TTL-Technik angesteuert.... ? Zur ezit bin ich dabei das Programm / Projekt in Worte zu fassen - zu beschreiben um daraus die erforderlichen Befehle zu "generieren".

    Über jede Info, wie ich dies mit Hardware- als auch Software realisieren kann, bin ich sehr dankbar, da ich erst in das Thema "Programmieren in Bascom Basic" eingestiegen bin - bitte daher um etwas Geduld bei meinen Anfragen

    Grüße aus der Nähe von Bremen
    Peter

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    1.892
    Für das Auslesen der DCF Daten dürfte sich für Bascom eine Library finden lassen.
    Dort sollten dann die einzelnen Werte in Variablen abgelegt sein, die Du dann für dein Programm übernehmen kannst.

    Ich nehme mal an, das Du 220V Geräte schalten willst. Das diese Spannung Lebensgefährlich ist dürfte Dir klar sein, Du solltest also schon wissen, was Du da tust.
    Zur Ansteuerung deiner ( 220V ??? ) Geräte kannst Du ein Solid State Relais verwenden.
    Ein Controller wird vermutlich nicht genug Strom für die LED im SSR bringen, deshalb würd ich da nen kleinen FET wie z.B. nen BS170 als Treiber verwenden.

    Ein SSR braucht üblicherweise noch eine externe Beschaltung - Welche, das hängt von der zu treibenden Last ab und sollte sich im Datenblatt finden lassen.

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.11.2013
    Ort
    SA
    Alter
    64
    Beiträge
    211
    Hallo Peter,

    kleiner Schnipsel.

    ' DCF77 auf PinB.0 gelegt
    Config Dcf77 = Pinb.0 , Timer = 1 , Debug = 1 , Check = 1 , Inverted = 1 ', Gosub = Sectic
    'Hinweis: [Gosub=Sectic] wird jede Sekunden gestartet wenn aktiv.Natürlich muss du dann diese Sub anlegen.

    ' Datumsformat festlegen
    Config Date = Dmy , Separator = .

    'Synchronisiere die Uhrzeit mit dem DCF77 Zeitsignal..."
    'Auf die Synchronisierung der Uhrzeit mit dem DCF77 Zeitsignal warten.
    'dann muss Dcf_status.7 = 0 sein.
    'Hinweis: Für programmier Arbeiten/Test einfach Status auf 1 setzen
    'somit musst Du nicht die ca. 3 Minuten warten bis synchron Erfolgreich
    'beendet wird und Programm weiterläuft. Ist DCF angeschlossen wird trotztem
    'die Zeit übernommen.[DCF läuft ja im Hintergrund]
    'ich lasse Status immer auf 1 denn Time ist durch 16 MHz Takt sehr genau
    'auch wenn DCF77 mal kein "sauberes Signal empfängt" wird ja trotztem getaktet.
    'Bei Datenerfassung mit Zeitstempel natürlich auf 0 setzen.

    While Dcf_status.7 = 1
    ' Dcf_status.7 wird auf 1 gesetzt sobald die Zeit erfolgreich synchronisiert wurde
    ' aktuelle Zeiten (intern und DCF) sowie den Status zum Terminal ausgeben
    Print "Dcf : " ; "Uhr " ; Time(dcf_sec) ; " " ; "Datum " ; Date(dcf_day) ; " Status " ; Dcf_status.7

    Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte
    Lcd "DCF77 Synchron start"
    Locate 3 , 1 'Cursor auf 3 Zeile, 1 Spalte
    Lcd " Datum " ; Date$
    Locate 4 , 1 'Cursor auf 4 Zeile, 1 Spalte
    Lcd " Zeit " ; Time$
    Wend

    Print "Uhrzeit erfolgreich synchronisiert ! " ; Time$ ; " " ; Date$
    Locate 2 , 1 'Cursor auf 2 Zeile, 1 Spalte
    Lcd " Status OK "
    Wait 3
    Cls 'Anzeige löschen

    Gruß
    Fred

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    30.09.2014
    Beiträge
    13
    Hallo Fred,

    vielen Dank für die Programmzeilen!

    Die Aus- und Einschaltzeiten werde ich mit LEDs zum Testen "überwachen".

    Werden in Deinen Zeilen z.B. der Zustand... "... wenn der Wert für Minuten 00 und der Wert für Sec. 59 wahr ist, dann schalte den Ausgang xy auf high (einschalten) oder auf low (ausschalten) abgefragt? In meiner Programmbeschreibung gibt es in jeder Stunde 24 Schaltzustände, da ich 3 Geräte jeweils alle 5 Minuten - beginnend in der 00 Minute und 00 Sekunde - ein- bzw. ausschalte (und dies in einer Endlosschleife)!
    Zur Auswertung der Zeit benötige ich eigentlich weder Datum noch Wochentag noch Stunde....?? oder liege ich da falsch?
    Minuten und Sekunden müsste ich als "WERT" oder Zahl ermitteln und bei zutreffendem Wert eine Schaltaktion veranlassen , z.B. ... if minutenwert=00 und SecWert=59 then Dcf_status.7 = 1 (LED leuchtet bzw. Gerät wird eingeschaltet) und dies für alle anderen Schaltzeitpunkte.

    Ich hoffe ich habe Deine Programmzeilen richtig interpretiert.

    Nochmals vielen Dank für Deine Infos!

    Herzliche Grüße aus der Nähe von Bremen
    Peter

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.11.2013
    Ort
    SA
    Alter
    64
    Beiträge
    211
    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

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    30.09.2014
    Beiträge
    13
    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

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.11.2013
    Ort
    SA
    Alter
    64
    Beiträge
    211
    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

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beiträge
    765
    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! \/

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.11.2013
    Ort
    SA
    Alter
    64
    Beiträge
    211
    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 13:14 Uhr)

  10. #10
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    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.

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Port über Taster ein und ausschalten
    Von Projekt 2252 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 17
    Letzter Beitrag: 17.05.2012, 23:19
  2. Motor ein und ausschalten
    Von Bruchpilot90 im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 4
    Letzter Beitrag: 29.01.2010, 15:10
  3. Led mit Taster ein- und ausschalten
    Von Nullinger im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 30.01.2009, 14:00
  4. Glühbirne nach Zeit ausschalten
    Von timbow82 im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 15.06.2008, 06:29
  5. Zeitgesteurtes ein und ausschalten, Verständnisproblem
    Von Accenter im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 04.02.2008, 13:32

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •