- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 9 von 9

Thema: Stündlich ein Relais für eine gewisse Zeit schalten

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    23.03.2005
    Ort
    Bayern
    Beiträge
    62

    Stündlich ein Relais für eine gewisse Zeit schalten

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo an alle,

    ich habe mir ein kleines Projekt in den Kopf gesetzt und könnte etwas Hilfe brauchen.

    Ich benutze einen Atmel Mega 8, ein PCF 8583 Clock-IC, und ein Display.

    In dem Display würde ich gerne umschaltbar die Uhrzeit oder die Umgebungstemperatur anzeigen. Das funktioniert auch schon perfekt. Jetzt kommt der Punkt an dem ich etwas hänge. Ich würde gerne ein Relais zu jeder vollen Stunde für eine einstellbare Zeit anziehen lassen. Die Zeit an dem das Relais angezogen ist, möchte ich einfach über eine Variable einstellen.

    Wie bekomme ich es aber hin, dass das Relais zu jeder vollen Stunde anzieht und nach der eingestellten Zeit auch wieder abfällt?

    Ich freue mich schon auf ein paar gute Tipps.


    Vielen Dank schon mal.

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    09.05.2005
    Beiträge
    35
    Hallo,
    du speicherst ja die Minuten, die du von der RTC bekommst in eine Variable. Zur vollen Stunde ist diese Variable 00, musst also nur ne einfach if-Abfrage bauen. Geht natürlich mit jeder anderen Zeit auch also dann ungefähr so:
    Code:
    zeit= 'deine gewünschte Uhrzeit
    if min=zeit then
    .
    .
    .
    end if
    Dann das Relais wird dann über dann über den Timer nach ner bestimmten Zeit wieder ausgeschalten.
    Gruß
    Florian

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    23.03.2005
    Ort
    Bayern
    Beiträge
    62
    Hallo avrflo,

    danke für deine schnelle Antwort.
    Dieser Gedanke ist mir auch schon durch den Kopf gegangen. Ich habe ihn eigentlich nur verworfen, weil ich nicht ständig das Clock-IC und den Temperaturbaustein parallel abfragen will. Wenn im Display die Temperatur angezeigt wird, wollte ich eigentlich das Clock-IC nicht abfragen. Außerdem würde ich die Schaltung später auch gerne mit anderen Funktionen erweitern und wollte kein Risiko eingehen, dass gerade wenn die Minuten auf 00 sind, der Prozessor mit anderen Dingen beschäftigt ist.

    Ich dachte eigentlich mehr daran den internen Alarm des 8583 zu nutzen. Habe nur noch nicht die richtige Idee wie das am besten zu lösen ist.

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    09.05.2005
    Beiträge
    35
    Hallo,
    dein AVR kann ja nebenher noch ne Menge anderer Sachen machen, die Minuten sind ja für exakt eine Minute auf 00 und abfragen musste die RTC ja sowieso um die Zeit zu aktualisieren. Es reicht ja wenn du die Zeit jede 10 oder 20 sec abfragst, braucht ja kaum Rechenleistung.
    Gruß
    Florian

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    23.03.2005
    Ort
    Bayern
    Beiträge
    62
    Das ist schon richtig, dass der AVR auch noch nebenher andere Sachen machen kann. Sollte ich aber z.B. ein pulsweitenmoduliertes Signal an einem Ausgang brauchen oder irgendeinen anderen Takt, denke ich wäre es nicht so gut wenn immer wieder zwischendurch der 8583 abgefragt wird.

    Gruß
    tooltime

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.04.2004
    Ort
    Gronau
    Beiträge
    155
    Hallo Tooltime,

    ich hatte ein ähnliches Problem und habe dafür einen Timer genutzt.
    Allerdings habe ich den nicht auf eine Minute eingestellt, sondern auf
    1/10 Sekunde.

    Der Grund war, das ich neben dem Minuten-Takt auch noch einen
    Sekunden-Takt brauchte und dafür keinen 2. Timer opfern wollte,
    zumal später noch mehr periodische Ereignisse stattfinden sollen.

    Im Timer-Interrupt wird nun für die Minute einfach ein Zähler hoch-
    gezählt und dann die entsprechende Aktion ausgelöst.

    Du könntest die Lösung auch dafür nutzen, um bspw. periodisch Deinen
    Sensor abzufragen oder die LCD-Anzeige umzuschalten. Zähl dafür
    einfach für jede gewünschte Zeiteinheit einen separaten Zähler hoch.

    - Reinhard -

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    23.03.2005
    Ort
    Bayern
    Beiträge
    62
    Ich sehe schon das wird nicht so leicht.

    Ich habe mir ein paar Gedanken gemacht und werde sie gleich ausprobieren, wenn meine neuen Mega 8 da sind.

    Meine bisherige Idee ist:
    - Am 8583 einen Alarm zur vollen Stunde auslösen
    - Über den Interrupt den Alarm registrieren und automatisch die Alarmzeit um 1 Std. erhöhen
    - Den Timer starten und für eine voreingestellte Zeit das Relais angezogen lassen

    Das zur Theorie.
    Wie ich das praktisch lösen soll muss ich mir erst erarbeiten, da meine Erfahrung mit Interrupts und Timer im Moment gleich Null sind.

    Für gute Tips zur Umsetztung wäre ich weiterhin dankbar!!!

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    23.03.2005
    Ort
    Bayern
    Beiträge
    62
    Falls es noch jemand interessiert.
    Das Programm läuft jetzt.

  9. #9
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Brav.
    Na, dann aber gleich los: Dokumentieren und in die Code-Schnipsel rein (Downloadbereich)
    Nur so werden wir alle ein bißchen gescheiter
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Berechtigungen

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

LiFePO4 Speicher Test