Forum: Mikrocontroller und Digitale Elektronik Bistabiles Relais bei Reset oder Spannungsausfall SICHER in Grundzustand setzen


von Torsten K. (Gast)


Lesenswert?

Hallo. :)

Ich habe folgendes Problem, zu welchem ich gerade etwas verzweifelt nach 
einer guten Lösung suche und entsprechend schon seit ein paar Tagen alle 
möglichen Themen durchgehe. Dabei habe ich mich auch bereits intensiv in 
FETs eingelesen, hier fehlt mir allerdings Praxiserfahrung. Ebenso habe 
ich OPs bisher noch nie verwendet.

Aber einmal zu den Details ...

Meine Schaltung wird mit einem 9V-Block versorgt, soll eine lange 
Laufzeit haben und ist entsprechend auf Stromsparen ausgelegt. Mit Hilfe 
eines bistabilen Signalrelais wird ein Servo in die eine oder die andere 
Endposition gefahren und dort über einen Endschalter abgeschaltet.
Das bistabile Relais wird, neben Display und Encoder von einem ATMEGA 
gesteuert - soweit alles kein Problem.

Tritt ein Brownout auf oder ist der µC im Reset oder wird die 
Stromversorgung für die Steuerung abgeschaltet, dann soll der Motor 
ZWINGEND in eine bestimmte Endposition fahren und anschließend den 
Stromverbrauch auf 0 reduzieren (Endschalter kann das übernehmen).

Grundsätzlich bin ich gedanklich so weit, dass ich wohl am µC einen Pin 
zur Laufzeit dauerhaft auf einen bestimmten Zustand (z.B. Ausgang Hi) 
schalte und damit den Sicherheitsschaltkreis über die Betriebszeit 
deaktiviere. Pins sind noch frei, von daher kein Problem.

Der Sicherheitsschaltkreis müsste den Motor vom Relais abkoppeln (da 
dessen Zustand unbekannt ist) und den Motor in Endposition fahren, 
sobald der µC-Pin NICHT in seinem definierten Zustand ist. Anschließend 
könnte der Sicherheitsschaltkreis über den Endschalter ebenfalls 
vollständig abgeschaltet werden.

Aber wie umsetzen?

In FETs habe ich mich zwar eingelesen und mir gefällt, dass sie über 
Spannung geschaltet werden, aber weder wüsste ich, welche Typen ich 
dafür am besten nehmen könnte (prinzipiell Logic-Level, Verarmungstyp, 
kein SMD, maximaler Schaltstrom ca. 1-2A für den Motor), noch wie etwas 
in die Schaltung integrieren könnte, um das gewünschte zu erreichen und 
dabei den Gesamtverbrauch während des Betriebs nicht bedeutsam erhöhen. 
Zudem möchte ich das bistabile Relais dabei außen vor lassen, da auch 
ein Ausfall von selbigem durch die Sicherheitsschaltung erfasst werden 
soll.

Für Vorschläge und Ideen wären ich wirklich dankbar.
Lg, Torsten

von Dirk J. (dirk-cebu)


Lesenswert?

Wie soll bei einem Brownout der Motor in eine Endposition fahren? 
Stützakku?

von 6A66 (Gast)


Lesenswert?

Torsten K. schrieb:
> Tritt ein Brownout auf oder ist der µC im Reset oder wird die
> Stromversorgung für die Steuerung abgeschaltet, dann soll der Motor
> ZWINGEND in eine bestimmte Endposition fahren und anschließend den
> Stromverbrauch auf 0 reduzieren (Endschalter kann das übernehmen).

Hallo Torsten,

das verstehe ich nicht oder nicht ganz:
Du hast einen Teil der Steuerung der - wenn kein Strom mehr vorhanden 
ist trotzdem etwas tun soll.

Torsten K. schrieb:
> Meine Schaltung wird mit einem 9V-Block versorgt, soll eine lange
> Laufzeit haben und ist entsprechend auf Stromsparen ausgelegt.

das ist schon mal kontraproduktiv um einen Motor zu fahren.

Torsten K. schrieb:
> Der Sicherheitsschaltkreis müsste den Motor vom Relais abkoppeln (da
> dessen Zustand unbekannt ist) und den Motor in Endposition fahren,

Hmm, vielleicht wäre ein Blockdiagramm ganz hilfreich um "Schaltung", 
"Steuerung", "Sicherheitsschaltkreis" und deren Zusammenwirken besser zu 
verstehen.

rgds

von 6A66 (Gast)


Lesenswert?

Du sprichts auch von "SICHER" (Bold) - wenn es um Sichergheit geht wäre 
auch nützlich den PL anzugeben den Du erreichen möchtest.

rgds

von Amateur (Gast)


Lesenswert?

Die Brownout-Detection ist eigentlich dazu da, im Falle eines 
Stromausfalles, oder während des Einschaltens für geregelte Zustände zu 
sorgen.
Natürlich kannst Du irgendeinen Pin auf einen beliebigen Pegel legen, 
aber beim Zusammenbruch der Spannung kannst Du diesen nicht auf Deinen 
Signalzustand legen.
Brownout ist keine definierte Unterbrechungsroutine, zumindest bei den 
mir bekannten Prozessoren.

Folglich bleibt die Möglichkeit:
Du misst selber die Spannung. Ein fest eingestellter Komparator reicht 
hierfür. Dieser wird so eingestellt, dass er minimal vor dem Brownout 
kommt. So kannst Du deinen Prozessor gezielt in's Bett schicken.
Ob die Power dann noch reicht um die Heimreise zu beenden ist eine 
andere Sache bzw. hängt von der Schaltschwelle ab. Dein Motor hat ja 
auch noch Bedürfnisse.
Übrigens: Manche Prozessoren haben einen eigenen Komparator eingebaut.

von Max G. (l0wside) Benutzerseite


Lesenswert?

Das Kernproblem wird nicht sein, die Ansteuerung der FETs oder Relais 
hinzubekommen, sondern den Motor zu versorgen. Brownout bedeutet ja 
wohl, dass die Spannung zusammengebrochen ist.
Oder geht es dir nur um eine Batterie-leer-Erkennung, nach der der Motor 
in die sichere Position fährt und dann die Ansteuerung sich schlafen 
legt, bis es eine neue Batterie gibt?

Max

von Amateur (Gast)


Lesenswert?

Ich vergaß:

An Deiner Schaltung brauchst Du nichts zu ändern.

Irgendwo hast Du ja die Routinen: Fahre_Links und Fahre_Rechts.

Normalerweise bestehen diese aus den Sequenzen:
Fahre nicht in die andere Richtung plus fahre in Richtung xy.

Bei der Low-Voltage-Erkennung springst Du einfach eine der beiden 
Fahrrichtungen an und schickst das Teil anschließend ins Bett. Viele 
Rechner haben hierfür einen eigenen Befehl.

Aufgeweckt wird das Teil ja dadurch, dass die Spannung kurzzeitig "echt" 
null Volt ist (Batterie raus) und anschließend (neue Batterie rein) die 
Betriebsspannung wieder kommt.

Wie bereits vorher gesagt: Ob der Motor dort ankommt hängt von der 
Schaltschwelle ab.

von Torsten. K (Gast)


Angehängte Dateien:

Lesenswert?

Erst schon mal vielen Dank für die ganzen Antworten in der kurzen Zeit. 
:-)

Ich habe meinen ersten Schaltungsdraft mal angefügt, wobei sich 
folgendes noch ändern wird:
- µC wird ein ATmega328P (oder - softwareabhängig - auch mit weniger 
Flash)
- der Quarz wird gegen einen 32kHz getauscht (zwecks RTC und PowerDown)
- das bistabile Relais wird direkt an den Pins betrieben (< 35mA)
- Display werde ich vermutlich ebenso direkt via Pin bestromen
- im Schaltplan ist momentan keine Endposition erreicht
(sonst wäre S3 oder S4 betätigt)

So ... jetzt mal der Reihe nach zu den Fragen ...

@Dirk:
Brownout setze ich auf 4,7V. Ich gehe davon aus, dass ein 9V-Block dann 
immer noch das Minimum an Saft hat, um den Servo zumindest ein paar 
Milimeter weit zu bewegen - das würde bereits genügen. Notfalls ginge 
aber auch eine Reservebatterie (würde ich dann noch testen).

@6A66:
Nicht ganz. Ich habe eine Steuerung (µC). Sobald diese nichts mehr tut, 
soll ein anderer Schaltungsteil für einen definierten Motorzustand 
sorgen.

Das ein 9V-Block nicht ideal zum Betreiben von Motoren ist, ist mir 
bewusst. Der Motor wird voraussichtlich nur ein- oder zweimal die Woche 
laufen - von daher ist eine hohe Batterieleistung nebensächlich.

Schaltplan hängt an, vom Sicherheitskreis ist da aber noch nichts drin. 
Und sobald ich rausfinde, was Du mit "PL" meinst, kann ich Dir ggf. 
darauf anworten. ;)

@Amateur:
Genau das - tritt ein Fehlzustand (Reset durch Watchdog oder Brownout 
oder auch plötzliche Vaporisierung des µCs) auf, dann möchte ich - 
soweit irgend möglich - genau diesen definierten Zustand. Der µC wird - 
im Falle eines Neustarts - ebenso den definierten Zustand ansteuern und 
bis auf weiteres dort verweilen (um Softwarefehler und/oder Reset durch 
Watchdog abzudecken).

Allerdings ... wie kann ich den erreichen, wenn alle Pins dann hochohmig 
sind? ;)

@IOwside:
Siehe weiter oben. Ich schau mir das noch an, wie ein fast auf 4V 
leergelutschter 9V-Block reagiert und ob ich ggf. eine 
Alternativbatterie verwende.

und nochmal @Amateur:
Ich möcht' jedoch ein kleines Notfall-Backup für den µC. Sicherlich 
werde ich auch dem µC noch eine Batterie-Leer-Erkennung spendieren und 
dann alles nötige bis zur neuen Batterie einleiten. ;)

von stefanus (Gast)


Lesenswert?

Ein normaler DC Motor, der für 9V ausgelegt, wird sich bei bei 4V nicht 
mehr bewegen.

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
Noch kein Account? Hier anmelden.