Forum: Mikrocontroller und Digitale Elektronik Monostabiler Elektromagnet mit nur einem uC Pin ansteuern


von finalcu (Gast)


Lesenswert?

Hallo Zusammen

ich habe einen uC der über 32 IO-Pins verfügt. An 18 dieser 32 Pins habe 
ich einen monostabilen Elektromagneten der über einen MOSFET (BS170) 
ein- und ausgeschaltet werden kann. Wenn ich den Pin auf HIGH ziehe so 
schaltet der MOSFET durch und der Elektromagnet wird von einer externen 
Spannungsquelle (12V) gespiesen. Die Haltekraft ergibt sich dann aus der 
Kraft der Spule des Elektromagneten und des Permanentmagneten. Wenn ich 
den Pin nun auf LOW ziehe entlädt sich die Spule, der Magnet bleibt 
jedoch immernoch in der ausgefahrenen Position da der Permanentmagnet 
den Anker hält. Um ihn wieder in die Ausgangsposition zu bringen müsste 
ich den Elektromagneten umpolen um mit einem Strominpuls (ca. 20us) den 
Anker zu lösen. Am liebsten hätte ich nun eine einfache Schaltung damit 
ich nur einen Pin (HIGH und LOW) brauche um zwischen den beiden 
Zuständen: Elektromagnet ausgefahren (mit Bestromung um eine erhöhte 
Haltekraft zu erzielen) und Elektromagnet eingefahren (ohne Bestromung, 
eine Rückholfeder hält den Anker dann), zu schalten.

Ich habe mir schon überlegt mit grossen MOSFETS und einem IO-Pin die 
Spannung am Netzteil wischen +12V und -12V zu schalten. So könnte ich 
mit nur einem Pin jeweils zwischen +12V und -12V wählen und mit den 
jeweiligen Pins, die die einzelnen Elektromagnete schalten würde sich 
mit HIGH und LOW Bestromung oder keine Bestromung wählen lassen. Der 
Nachteil dabei wäre, dass ich keine Magente gleichzeitig ein- und 
ausfahren kann. Wenn der Vorgang jedoch schnell vor sich geht, genügt es 
mir auch wenn ich die jeweils nacheinander aus- und einfahre. 
Desweiteren müsste ich wahrscheinlich auch noch die Ansteuerung änderen, 
da die Schaltung dann +12V und -12V kompatibel sein müsste (Problem mit 
Freilaufdiode und MOSFET?).

Hat jemand vielleicht einen Vebresserungsvorschlag oder eine ganz andere 
Idee?

Gruss,
finalcu

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

ist  dein µC zufällig ein AVR?


dann könntest du 3 zustände erhaltenin dem du ihn als eingang ohne 
pullupp schaltest zum lösen müstest du den aus gang wieder einschalten 
und den anderen zustand  zuschalte und mit einem entsprechendem treiber 
die ander polung der Spule bewirken.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> um mit einem Strominpuls (ca. 20us) den Anker zu lösen.
Mikrosekunden? Hast du dich da in der zeitlichen Dimension verhagelt? So 
abartig schnelle (mechanische) Anker kann es doch fast nicht geben...

> Am liebsten hätte ich nun eine einfache Schaltung damit
> ich nur einen Pin (HIGH und LOW) brauche um zwischen den beiden
> Zuständen: ... zu schalten.
Meines Erachtens sind das 3 Zustände, die du brauchst:
1. bestromen mit positivem Strom (Anziehen)
2. stromlos (Halten)
3. brstromen mit negativem Strom (Lösen)

Falls das so ist, dann hast du nur 1 Bit (=IO-Pin), um diese 3 Zustände 
zu codieren. Und was folgern wir daraus: nur mit High und Low geht es 
nicht, denn das sind nur 2 Zustände.

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

zeig mal deinen jetzigen ansatz

lowside geschaltet und highaktiv?
oder
lowside geschaltet und low aktiv?
oder
wie?

gibt es ein schaltbild?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> dann könntest du 3 zustände erhalten in dem du ihn als eingang ohne
> pullupp schaltest
Die Schaltung möchte ich mal sehen, die einfach so den Zustand 
"hochohmig" auswerten kann. Okok, mit einem Spannungsteiler auf Vcc/2 
und einem Fensterkomparator ginge das. Aber ob das den Aufwand wert ist?

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

Lothar Miller schrieb:
...
> Falls das so ist, dann hast du nur 1 Bit (=IO-Pin), um diese 3 Zustände
> zu codieren. Und was folgern wir daraus: nur mit High und Low geht es
> nicht, denn das sind nur 2 Zustände.

beim AVR schon

der kann nalle drei Zustände (echtes tristate)
;-)

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

bipolare stromgetrieben Gatetreiber kämen in frage.

aber entweder benötigt man eine eigen löse spannung oder ein H brücke 
pro magnet

Wobei die Lösespannungquelle wohl den gerigeren Aufwand darstellt.

mfg

von nefuas (Gast)


Lesenswert?

Ich kann dir mur irgend einen Schrittmotordriverchip empfehlen.
Ich benuetze das fuer ein bistabiles 'magnetisch gesteuertes Ventil'
Schaltzeit ? keine us sondern (bei mir): 50ms ! fuer sicheres 
Umschalten.

http://www.youtube.com/watch?v=QMvBxLXeSN8&feature=related

von finalcu (Gast)


Lesenswert?

Sorry, ich meine natürlich 20ms!

Rein theoretisch brauche ich nur zwei Zustände, da ich nur den 
bestromten Ausgefahrenen Zustand und den unbestromten eingefahrenen 
Zustand brauche. Natürlich müsste die Ansteuerschaltung dann etwas 
komplexer sein, da sie über eine "Zwischenzustand", nämlich Bestromung 
mit negativer Spannung um den Anker zu lösen, verfügen müsste.

Momentan sieht meine Schaltung genau so aus:

http://www.mikrocontroller.net/articles/Datei:Relais_npn.png

Natürlich erfüllt diese nicht meine Bedingungen.

Gibt es vielleicht sowas wie ein Multiplexer, der mehrere Ausgänge hat 
(z.B 3 oder 4) aber nur einen seriellen Eingang?

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

Du köntes mit einem Fliplop mit enable arbeiten.

mit dem Enable wählst du den Aktor,
und über eine Leitung das zu übertragende signal.

Damit ist aber dein Problem mit der Magnetansteuerung noch nicht gelöst.

Einfacher wäre es deine Magnetanseuerung behinhaltet die komplette 
Lösung
also Polwechselschaltung und Zustandsfolge

d.h.

high vom µC --> macht Magneten spannungslos wartet ein paar µS und führt 
dann den High Impuls aus und läßt die spannung wieder abfallen.

low vom µC --> macht macht Magneten spannungslos wartet ein paar µs 
führt  dann den Lösenimpuls aus und lässt die Spannung wieder abfallen.

Das Zeitschema must du natürlich dem Vermögen des Magneten und deinen 
Bedürfnissen anpassen.

Wenn zwischen H und L flanke und umgkehrt eine Mindestimpulsdauer 
definiert ist, so braucht die Schaltung eigentlich vor dem Impuls gar 
nicht zu warten.

Nicht herum kommst du um die Polwendung oder eine Zweite Spannung zum 
Lösen der Magnete und die Puls Steuerung. Für letzteres könnte ein 
dicker Kondensator herhalten kein ELKO.


MFG Winne

von finalcu (Gast)


Lesenswert?

Ganz genau! Hab mir auch eben was mit nem dicken Kondensator gedacht, 
der gerade so konzipiert ist, dass er für das Lösen reicht. Ich frage 
mich nur eben ob ich dann nicht ein Problem mit dem Schwingkreis bekomme 
(Kondensator und Spule...)

von finalcu (Gast)


Angehängte Dateien:

Lesenswert?

Hab mal ne einfache Schaltung entworfen und würde gerne von euch wissen 
ob das so in etwa funktionieren würde...?

Anmerkung: Q1 und Q3 wären z.B normale N-MOSFET (BS170). Q2,Q4,Q5 und Q6 
sollen die gleiche Funktion wie ein N-MOSFET haben, nur lassen sich an 
diesen Positionen wohl keine MOSFET verwenden, da Source nicht auf Masse 
ist... IC1 ist ein logischer Inverter.

Bei einem Steuersignal HIGH funktioniert die Schaltung wie bisher. Bei 
LOW wird der Elektromagnet für eine kurze Zeit umgepolt. Dies wird mit 
Hilfe eines Kondensators realisiert, der Q4 und Q3 solange durchsteuert, 
bis er entladen ist. Der Kondensator wird dann bei einem HIGH wieder mit 
+5V aufgeladen.

Fragen: Geht das überhaupt so? Wie lassen sich Q2,Q4,Q5 und Q6 
realisieren? Wo (und wie) kommt die Freilaufdiode hin?

von Falk B. (falk)


Lesenswert?

@  finalcu (Gast)

>Fragen: Geht das überhaupt so? Wie lassen sich Q2,Q4,Q5 und Q6
>realisieren? Wo (und wie) kommt die Freilaufdiode hin?

Mein Tipp. Lass die Super-Spar-Bastellösung. Nimm für jeden Magenten 
ZWEI IO Pins, das kann man leicht über Schieberegister machen, Ist immer 
noch schnell genug. Nimm für jeden eine H-Brücke von der Stange und alle 
Probleme sind gelöst. Alles andere wird nicht viel, schon gar nicht 
kleiner und billiger.

Siehe

AVR-Tutorial: Schieberegister
H-Brücken Übersicht

MFG
Falk

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Winfried J. schrieb:
> beim AVR schon
> der kann nalle drei Zustände (echtes tristate)
> ;-)
Das Problem liegt weniger beim Ausgeben der 3 Zustände als vielmehr beim 
Auswerten des Hi-Z Zustands...

> Hab mal ne einfache Schaltung entworfen...
So einen Aufwand, nur um ein paar Pins einzusparen? Ich würde hier auf 
jeden Fall mal 2 Ausgänge pro Magent vorsehen, und damit eine H-Brücke 
pro Magent ansteuern.
Und wenn die uC-Pins nicht reichen? Einfach mit ein paar 
Schieberegistern aus 3 Prozessorpins 8,16,24,32... Ausgänge machen.

EDIT: Pech, Zweiter. Falk hat recht... ;-)

von finalcu (Gast)


Lesenswert?

Mein Problem war, dass ich nicht genug IO-Pins zur Verfügung habe. Danke 
für den Tipp mit dem Schieberegister!

Nur noch eine kleine Frage: Mit welcher Frequenz kann ich Daten in ein 
solches Schieberegister einspeisen?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Nur noch eine kleine Frage: Mit welcher Frequenz kann ich Daten in ein
> solches Schieberegister einspeisen?
Das kommt auf dein Schieberegister und die Software an. Aber auch von 
Hand programmiert sollten sich 40 Ausgänge in etwa 40 us (mit AVR 12MHz 
Takt) aktualisieren lassen.

von finalcu (Gast)


Lesenswert?

Hab mir mal den L293D angeschaut. Kann mir jemand erklären wie der genau 
funktioniert?

An VS hänge ich meine +12V, VSS logische +5V und an GND die gemeinsame 
Masse. Enable1 setze ich auf HIGH. An Out1 und Out2 hänge ich meinen 
Elektromagneten. Wofür sind nun die beiden Eingänge In1 und In2... 
theoretisch würde mir doch ein Eingang für die Bestimmung der Polung der 
Spannung VS reichen?

von Andreas K. (derandi)


Lesenswert?

finalcu schrieb:
> theoretisch würde mir doch ein Eingang für die Bestimmung der Polung der
> Spannung VS reichen?

Nein. Ein Eingang muss invertiert zum anderen sein, sonst is nicht mit 
Umpolen.


Dein Elektromagnet, kommt der Permanentmagnet bis an die Spule oder wie 
soll das sonst gehen?

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

das kann ein 7406 mit 6 inverterienden busstreibern darinnen für je 6 
hbrücken übernehmen.

  googel mal nur zum verständniss nach highside switsh

einfache geht es mit minus 12 V dann kannst du dir die gesamte 
H-Brückenarie sparen zB netzteil mit +/-12 V und +5V dann kannst du die 
gesamte schaltung masse bezogen aufbauen.

und braucht es nur ein Pin und eine passende Treiberschaltung welche dir 
den P-KanalFet kurz öffnet. Hier könnte ein C helfen.

für eine Spule würde ich auch eine Hbrücke nehmen, für 10 Stück schon 
nicht mehr.

von nefuas (Gast)


Lesenswert?

mit einem  L293D kannst du zwei deiner Spulen treiben und umpolen.

von finalcu (Gast)


Angehängte Dateien:

Lesenswert?

Ok, das macht Sinn. Soweit ist nun alles klar... bleibt noch die Frage 
wo der MOSFET hinkommt um die Bestromung am Elektromagnet ein- 
respektive auszuschalten? Oder ist dafür der Pin Enable1 gedacht?

von Andreas K. (derandi)


Lesenswert?

finalcu schrieb:
> Oder ist dafür der Pin Enable1 gedacht?

Gewöhn dir doch mal an Datenblätter zu lesen, die dürften hier einen 
höheren Stellenwert haben als eine Bibel in der Kirche.

In dem Datenblatt zum L293 steht auf Seite 2 eine wunderschöne 
Wahrheitstabelle, alleine schon darin wird deine Frage beantwortet.

von Alex S. (thor368)


Angehängte Dateien:

Lesenswert?

Tach finalcu!

Wenn du immernoch Interesse an einer Schweineschaltung hast und 
einigermaßen flexibel bei der Versorgung bist, hätte ich da was für 
dich.

Den kleinsten Aufwand hast du wenn du zwei mosfets antseriell schaltest. 
Einen nch nach unten und einen pch nach oben. Wobei der EMagnet an die 
beiden drains kommt. Der andere Pol der Wicklung wird aus +12 versorgt. 
Das source des nch kommt wie gewohnt an Masse. Allerdings das des pch 
kommt an irgendwas über 12V. Vielleicht 24V aber das ist variabel.

Der Trick ist es nun die fallende Flanke des IO-Pins AC auf das gate des 
pch aufzukoppeln und diesen DC Pegel dann über einen pulldown(bzw. beim 
pch pullup;) abblubbern zu lassen. Das gibt zwar ein extrem übles 
Abschaltverhalten aber wenn du das nicht allzuschnell hintereinander 
machen willst wird ein entsprechender FET das schon aushalten. Die 
ON-time des pch kannst du dann über das Verhältnis von R und C 
bestimmen.

Thor

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.