Hallo zusammen, wie kann ich herausfinden, wieviel Zeit seit dem Ausschalten des µC vergangen ist?
RTC laufen lassen, mit Uhrenquartz als Schwingelement und Batterie oder Super-Cap als Energiequelle.
Chricky schrieb: > Dein Name ist Programm, oder? Damit wollte er höflichst zu Ausdruck bringen, dass es ohne Informationen keine sinnvollen Antworten gibt. :-)
Kasperle schrieb: > Auf die Uhr schauen? LOL @Chricky: Kannst du mal genauer beschreiben was du damit erreichen willst? Der uC selbst wird das nicht mehr so wirklich erreichen können, außer er speichert die Uhrzeit ab als er ausging und vergleicht diese mit einer RTC sobald er wieder aufgewacht ist. Du musst halt die Spannung lang genug "oben" halten damit der uC die Uhrzeit noch im EEPROM speichern kann.
Hallo Simon Huwyler, kannst Du das bitte für Anfänger (ich bin Programmierer) erklären?
Siehe An- Ausschalter mit Mehrfachfunktion
>Hallo Simon Huwyler, >kannst Du das bitte für Anfänger (ich bin Programmierer) erklären? Du bist ein Witz, mehr nicht.
Gerne: RTC = Real Time Clock. Das ist in der einfachsten Form ein Zähler mit einem Oszillator. Bei uCs kriegst Du das oft gratis dazu. Der Clou an der Sache: Du kannst die CPU ausschalten und nur noch diesen Zähler laufen lassen. Der ist üblicherweise über einen dedizierten Versorgungs-Pin gespeist und säuft sehr sehr sehr wenig Strom. Aber zumindest ein Schwingelement (Quartz) musst Du extern dranhängen. Auch über dedizierte Pins. Da eignet sich ein Uhrenquartz (2^15 Hz). Jetzt musst Du nur noch vor, resp. nach dem Abschalten (kurz vor dem Koma des Prozis) den aktuellen Zählerstand in's Ram schreiben (das oder zumindest ein Teil davon ist bei Prozis mit RTC auch persistent, solange Du ihm ein klitzekleines Bisschen Strom gönnst). Das ist der ganze Zauber. Es gibt Variationen, aber generell brauchst Du irgendwas, das weiterlebt, während der Prozi im Koma liegt. Daran kommst Du nicht vorbei (ausser, Du kannst die Uhrzeit extern beziehen (GPS, DCF77, Timeserver etc.)
Du musst einfach bedenken, dass die Beschreibung "der Prozessor ist aus" heisst, das er absolut nichts tut, nichts an Veränderungen der Umwelt merkt und auch nicht das Zeit vergeht. Deswegen die Vorschläge mit der RTC (Real Time Clock). Das ist ein Baustein, der dazu gedacht ist, unabhängig von der CPU weiter zu laufen und die Zeit hochzuzählen. Wenn Du Dir beim ausschalten die Zeit merkst und beim Einschalten die neue Zeit mit der alten vergleichst, dann weisst Du wieviel Zeit vergangen ist. Eine alternative wäre, mit der CPU selbst eine RTC zu programmieren. Dabei muss sie allerdings dann doch mit Strom versorgt werden. Sie wacht dann in regelmässigen Abständen auf und zählt selbst die Minuten, Sekunden etc. hoch.
P.S. Holger's Post: Ignorieren. Solche Idi**** gibt's ein paar hier. Ich habe erstaunlicherweise sofort kapiert, was Du meinst. Man muss nicht jede Frage in eine Doktorarbeit einpacken. Gruäss Simon
Danke Simon Huwyler, mein eigentliches Problem ist das, wie unter "An- Ausschalter mit Mehrfachfunktion" beschrieben. Wie könnte man hier Abhilfe schaffen? Mein Problem ist, dass ich mich in den Feinheiten der Elektronik nicht so gut auskenne.
Q Simon >P.S. Holger's Post: Ignorieren. Solche Idi**** gibt's ein paar hier. Ich >habe erstaunlicherweise sofort kapiert, was Du meinst. Man muss nicht >jede Frage in eine Doktorarbeit einpacken. >kannst Du das bitte für Anfänger erklären? Nun gib ihm schon fertigen Code, einen Schaltplan wie er die RTC anschliesst usw. Sonst nervt der hier noch tagelang rum;)
Chricky schrieb: > Siehe An- Ausschalter mit Mehrfachfunktion Das hingegen verstehe ich nicht. Was meinst Du damit?
Hallo Simon Huwyler, ich habe heute Abend noch einen anderen Thread aufgemacht: "An- Ausschalter mit Mehrfachfunktion", das erklärt mein Vorhaben genauer.
Achsoooo! Da kann ich nur wiederholen, was von mir und meinen Vorrednern schon geschrieben wurde: GANZ stromlos: geht nicht. ABER: Es gibt keinen Grund, den uC stromlos zu schalten! Über 10 Sekunden kannst Du das Ding locker mit 'nem Kondensator speisen! Den ganzen Prozi, da brauchst Du nicht mal 'ne RTC.
Jaja, warum sollte man auch einen 2.Schalter benützen, auf einem Schalter im Morsestil rumkloppen is viel cooler :-) Ne mal im Ernst, was spricht gegen 2 Schalter, einen für die Spots, einen für die LEDs?
Hallo Floh, eigentlich kein Problem! Den Erdleiter vergewaltigen und schon kann ich einen zweiten Schalter installiern! Aber schün ist das nicht, oder?
Floh schrieb: > Ne mal im Ernst, was spricht gegen 2 Schalter, einen für die Spots, > einen für die LEDs? Vielleicht soll das an der Decke hängen und da will man nicht extra die Wand aufstemmen, um noch nen Draht nachzuziehen. Wie schon gesagt, ein Elko (470µF) am MC und bei Stromausfallerkennung den MC in Powerdown mit Watchdoginterrupt z.B. 0,25s. Dann 40 Interrupts abzählen und schon weißt Du, wann die 10s um sind. Nach den 10s gehst Du nicht mehr in Powerdown, sondern läßt den Elko sich einfach entladen. Peter
Hallo Peter, wie erkenne ich, dass der Strom weg ist?
Bevor wieder Spitzfindigkeiten einiger Leute hier erscheinen von wegen Finger dranhalten etc.: Wie erkennt der µC, dass der Strom ausgeschaltet ist?
Da nimmste z.B. einen Komparator. Der vergleicht die Versorgungsspannung mit einer (über eine Referenz erzeugte) Spannung, mit welcher der uC gerade noch zuverlässig läuft. Also. Strom wird abgeklemmt --> Kondi fängt an, sich zu entladen --> Komparator kippt --> Interrupt wird ausgelöst --> Prozi tut, was immer zu tun ist und legt sich schlafen. Spannung kommt wieder --> Komparator kippt --> Interrupt weckt den Prozi auf. Und in der Zwischenzeit kannst Du z.B. eben so einen Zähler laufen lassen, der einmal pro Sekunde den Prozi kurz weckt oder so.
Das sind leider böhmische Dörfer für mich... Ich danke Dir für Deine Geduld und will auch wirklich keine fertige Lösung präsentiert bekommen (selber tüfteln, macht am meisten Spaß), aber kannst Du das bitte etwas laienhafter erklären? Danke!
hm, das wird jetzt ein bisschen problematisch.... denn ich weiss nicht so recht, wo ich anfangen soll. Du schreibst, Du bist Programmierer, also wage ich mal folgenden Vergleich: Du möchtest mir das Composit-Pattern erklären, und ich weiss nicht, was Polymorphismus bedeutet. Verstehst Du, was ich meine? Ich könnte Dir jetzt erklären, was ein Komparator und ein Kondensator ist (Interrupt kennst Du vermutlich als Programmierer). Aber das bringt Dich nicht weiter. Also schlage ich mal vor: Mach Dich mal etwas schlau über Etwas schlau in Bezug auf Elektronik-Grundlagen. Lerne z.B. wie man mit einem OpAmp einen Astabilen Multivibrator baut. Google und Wikipedia helfen Dir dabei. Dann, wenn Du das Rüstzeug hast, können wir Dir weiterhelfen, wie Du das für Dein Projekt anwenden kannst (wenn Du es bis dahin nicht selber erkannt hast). Gell, das ist kein bisschen arrogant gemeint! Jeder muss mal irgendwo anfangen. Nur - ich könnte Dir jetzt eine fertige Lösung präsentieren (das wollen wir beide aber nicht), oder etwa 20 Seiten in diesen Thread reintippen, wie ein OpAmp funktioniert. Und das macht keinen Sinn, weil diese 20 Seiten in 100'000facher Ausführung im Netz zu finden sind.
Hallo Simon Huwyler, ... wenn ich dafür Zeit hätte (träum) ... Geht Folgendes: Relais mit 220V Spule als "Stromsensor"? Wird der Kondensator einfach parallel zur Spannungsversorgung geschaltet und puffert dann den µC? Dann ist das auch für mich möglich...
Irgendwie kannst Du das schon mit 'nem Relais machen. Du kannst aber z.B. auch eine LabView-Karte kaufen, in einen PC einbauen, und das ganze mit LabView realisieren. Den PC in 'ne Unterputz-Dose zu packen, wird halt etwas anspruchsvoll... ;-) Ne, mal im Ernst: Lerne ein bisschen was über Hardware, bevor Du an 230V rangehst... sonst kann das ins Auge gehen. Nicht böse sein, aber aufgrund Deiner Fragestellungen gehe ich davon aus, dass Du die Basics nicht im Griff hast. Und diese Zeit MUSST Du Dir nehmen. Oder das Projekt sein lassen und weiterhin PC-Projekte realisieren. Wenn Du in's Embedded design gehst, kommst Du schlicht nicht umhin, Dich mit Hardware zu befassen. Kann Dein GPIO denn eine Relais-Spule treiben? Machst Du das über einen Transistor? Was ist ein Transistor? Hast Du an die Freilaufdiode gedacht? Was ist Freilauf und was ist eine Diode? Wie begrenzt man nun eigentlich den Strom durch die Spule? Funkenschlag beim Schalten? Solltest Du vielleicht bei Nulldurchgängen schalten? Was ist ein Nulldurchgang? Du siehst, da gibt es 1000e Fragen, die offen sind... Und Deine Fragen sind schlicht zu "offen". Wenn Du nicht selber beurteilen kannst, ob man es mit einem Relais realisieren könnte, bist Du auch nicht in der Lage, ein Relais richtig anzusteuern. Geschweige denn mit 230V dran. Nicht böse gemeint. Aber ... wenn ich dafür Zeit hätte (träum) ... gilt nicht. Entweder HAST Du zeit, resp. NIMMST sie Dir, oder Du lässt das Projekt fallen. Etwas zu basteln, wovon man keine Ahnung hat, geht ganz sicher schief. ... und es ist ja nicht so, dass die Lösung mit Komparator etc. eine Quadratur des Kreises ist. Das ist die Standardlösung. Das ist sozusagen das Composit-Pattern, wenn Du einen Texteditor programmieren willst. Und Du willst das jetzt irgendwie mit einem Rudel Singletons realisieren, deren Pointers Du in Vektoren von Arrays irgendwie speichert? Wobei ich nicht weiss, ob im Stack oder im Heap.... Wenn ich Dich fragen würde, ob man das nicht auch so machen könnte, würdest Du mir sagen: "Hey, lerne doch erst mal die Grundlagen von OOP, dann kann ich Dir weiterhelfen. :-) Gruäss Simon
man man man... interrupts, komparatoren tau - t = r * c Kondensator laden sobald die schaltung strom bekommt. Kondensator über r antladen lassen das erst nach 10 sek. VLow unterschritten wird. Prozessor ein, Pin abfragen, gut ist. Kann man auch über komparator machen, dann bleibt der c kleiner. Schreibstil an Chricky angepasst, kann er besser lesen
Frage hierzu: Inwiefern gibt es beim AVR Latch-Up? Wird der Kondensator bei stromlosem µC denn nicht über den Pin runtergezogen (könnte man ggf. über Serienwiderstand mildern)? Google findet dazu ja einiges.
kotz schrieb: > Kondensator laden sobald die schaltung strom bekommt. Kondensator über r > antladen lassen das erst nach 10 sek. VLow unterschritten wird. > Prozessor ein, Pin abfragen, gut ist. Jaja, aber wenn das eben die Spannung sein soll, die den Prozi selber speist? Ausserdem: Haben die Eingänge vom AVR Schmitt-Trigger? Sonst hast Du nämlich zwischen Vhi und Vlo 'ne riesen Grauzone, bei der passieren kann, was will, und in der im ungünstigen Fall dann auch noch Strom gezogen wird wie blöd. Und aus ist's mit Deinem R*C! Komparator kostet nichts und da hast Du 'ne riesen Flexibilität. Und dann eben noch Torsten's Latch-Up und das Runterziehen über die Protector-Dioden.... Ich habe jetzt extra auch noch darauf geantwortet, um Chricky nochmals zu zeigen, dass es halt wirklich sehr sehr wichtig ist, selber zu wissen, was man baut. Obiger Vorschlag mag gut sein und funktionieren. Aber da gibt's wiederum 1000 Fallstricke. Einfach Vorschläge entgegennehmen und auf Treu und Glauben irgendwie nach Anleitung umsetzen geht nicht.
Es gibt zich Möglichkeiten: - Messung der internen Bandgap mit VCC als Referenz. - Messung der Eingangsspannung von vor dem Regler (7805) über Spannungsteiler. - Zeitmessung der 20ms Periode hinterm Netztrafo oder per Optokoppler. Peter
ST ist doch gut, sichert wakeligen zustand am eingang. Und natürlich wird rc mit serienwiderstand gemessen - ich dachte das versteht sich unter euch "profis" von selbst. Aber macht ihr ruhig mal RTC und ADC und Komparatorgedöhns mit zwischenspeicherung im EEProm nebst Optokoppler für Nulldurchgang etc. Um in etwa 10 sek. zu erfassen würde ich ggf. noch einen DCF77 Empfänger, noch aber besser GPS empfehlen.
Wie wird die Schaltung überhaupt versorgt? Gibt es hier ein kleines Netzteil mit Gleichrichter, Elko und 5V-Regler? Oder geht das in Richtung Direktspeisung über sog. Kondensatornetzteil (was ich hier nicht hoffe). Bei ersterem sollte es einfach möglich sein, zwischen Gleichrichter und Elko eine Diode zu setzen, und direkt vom Gleichrichter (Ausgang) über Vorwiderstand (und Begrenzung mit Z-Diode auf AVR-Verträgliche Spannung) an einen Portpin zu gehen. Hier sollte man dann die 100Hz Pulse sehen. Fehlen die, dann läuft der µC nur noch aus dem Kondensator. Dies könnte Softwaremäßig erfasst werden. Kommen die Impulse nun rechtzeitig wieder, wars nur ein Aus-Einschalten. Sinkt die Spannung am Kondensator aufgrund längerer Zeit, startet das Programm eh neu (BrownOut Reset). Soweit zur Theorie.
Hallo zusammen, vielen Dank Euch allen für Eure Bemühungen. Im Beitrag " An- Ausschalter mit Mehrfachfunktion" gab mir Ulrich einen brauchbaren Vorschlag. Gruß Chricky
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.