Zuletzt besucht
Ausgewählte Projekte
- Platinen ätzen
- Das M.T.F.
- Bürstenloser-Motor Treiber
- Nintendo DS Mod
- Handy Modifikation
- STM32F429 Mac Tutorial
Web Applikationen
Links
Andere Projekte
- Kettensägen Fahrrad
- STM32F429 LCD Beispiel
- Mein PHP Content Managing System
- PHP Bildverarbeitung
- Rücklauftransformator-Treiber
- Atari Punk Konsole
- Teensy - ESP8266 - Interface
- Handy Ladestation
- 4-Bit Addierer
Meta
Der alles-in-einem BLDC Treiber
Mar 2015
Vor ungefähr einem Jahr wühlte ich durch meine Kiste alter Elektronikteile und fand ein paar Tupperdosen voller Motoren von alten Festplatten, die ich auseinandergenommen hatte. Diese sind aber nicht normale Motoren mit zwei Anschlüssen, die man einfach an den Strom anschließt, um den Motor zum laufen zu kriegen. Diese Motoren haben drei Anschlüsse, die man in einem bestimmten Muster ansteuern muss. Man nennt die „Bürstenlose Gleichstrommotoren“ (BLDC Motoren) Wikipedia Seite).
Mein Problem war nun, dass ich nicht wusste wie die BLDC Motoren angesteuert werden mussten. Also informierte ich mich über diese Motoren und entschied mich dazu, einen eigenen BLDC-Treiber zu entwerfen. Ich fing klein an und erstellte eine Logik Schaltung in Logisim, einem kostenlosen Logik-Simulator für simple Schaltungen (Link zur Software Seite). Leider wird an der Software nicht mehr gearbeitet, trotzdem ist sie im Vergleich zu ähnlichen Programmen für Mac besser.
Also frischte ich meine Fähigkeiten im Logik-Schaltungs-Entwurf auf und baute in Logisim einen BLDC Treiber, der nur auf JK Flipflops, OR Gattern und NOR Gattern, sowie einem Multiplexer basiert.
Auch wenn die Simulation funktionierte, wollte ich sichergehen, dass die Schaltung auch im wirklichen Leben funktionierte. Also nahm ich mein größtes Steckbrett und baute die simulierte Schaltung nach. Es hat geklappt!
Da ich die Funktionalität der Logikschaltung bewiesen hatte, war es nun Zeit sie in einem CAD Programm nachzubauen. Ich entschied mich dazu, SMD ICs der 74HCxx Familie zu verwenden, da ich mit dieser schon Erfahrung hatte.
Ich entwarf eine Platine, die alles beinhaltet, um BLDC Motoren anzusteuern. Alles was man tun muss ist eine Versorgungsspannung von 7-24 Volt anzuschließen. Dazu gibt’s die folgenden Features:
- Die Logik ICs benötigen eine Taktung. Diese kann man entweder von dem NE555 IC auf der Platine beziehen oder man kann eine externe Taktfrequenz anschließen. Mit der NE555 Taktung kann man den Motor zwischen 48 und 17000 RPM drehen lassen. Welches Taktsignal verwendet wird, kann man auf der Platine mit einer Drahtbrücke (Jumper) auswählen.
- Ein ENABLE Input muss auf 5V gezogen werden, um die Logik-Schaltung anzuschalten. Dies kann man ebenfalls mit einem Jumper auf dem PCB erreichen.
- Der FW/BW Input wählt aus, in welcher Richtung der BLDC Motor dreht. Einstellbar mit einem Jumper.
- Es gibt zwei Spannungs-Netze im Schaltplan, Vcc und ‘+5V‘. ‘+5V‘ ist der Ausgang eines 7805 Regulators, der Vcc als Eingang nimmt. Mit einer Drahtbrücke kann man Vcc und ‘+5V‘ miteinander verbinden. Dies sollte getan werden, wenn die Platine sowieso schon an regulierte 5V als Versorgungsspannung angeschlossen ist.
- Auf der Platine sind schon Mosfet H-Brücken zum Schalten der Motoren vorhanden. IRF7389 Chips werden verwendet. Diese können Ströme bis zu 4A aushalten. Alles was man tun muss ist den Motor anzuschließen und schon kanns losgehen.
- Wenn du die Mosfets auf der Platine nicht verwenden möchtest, kannst du auch die Ausgänge der Logikschaltung direkt anzapfen. Dies ist sinnvoll, wenn der BLDC Motor mehr als 4A zieht oder wenn dir die IRF7389 durchgebrannt sind (lies weiter...).
- Ich habe mir sehr viel Mühe gemacht, den Silk-Screen zu designen und möglichst viel informativen Text zu den Eingängen dazuzuschreiben, um es nutzerfreundlicher zu machen.
Die Schematik und die Platine können hier heruntergeladen werden (EagleCAD Dateien).
Ich habe die PCBs von Smart-prototyping.com herstellen lassen und sie wurden schnell geliefert. Ich bestückte und lötete eine davon.
Dann habe ich sie angeschlossen
Die Platine war fertig verlötet und nun wollte ich sie testen. Zunächst schloss ich 12V an, dann setzte ich den Jumper auf „Set FREQ“ (Taktung wird vom internen 555 Timer vorgegeben). Ein paar Sekunden, nachdem ich „ENABLE“ gesetzt hatte, gingen Q1 und Q2 in Flammen auf. Ich schaltete den Strom sofort ab doch der Schaden war irreversibel.
Nachdem ich die Schaltung analysierte, fand ich den Fehler:
- Der JK Flipflop ‘JK1‘ war defekt und hat nichts ausgegeben. So wurde JK2B selbstständig und von NOR1A so gesteuert, dass er als Frequenzteiler agierte (nicht was er tun sollte). Dadurch wurden die P- und N-Mosfet von zwei H-Brücken gleichzeitig angeschaltet, was zu einem Kurzschluss führte und sie heiß werden ließ.
Nachdem ich ‘JK1‘ ersetzt hatte und eine alternative H-Brückenschaltung auf einem Steckbrett aufgebaut hatte, schloss ich den Strom an und ... es funktionierte! Der BLDC Motor summte vor sich hin. Durch Drehen am Potentiometer ‘R9‘ konnte man den Motor beschleunigen lassen.
Hier ist eine Demonstration. Die Taktfrequenz geht dabei von 300Hz bis zum Maximum, bei dem der Motor noch mithalten kann, 2.2kHz. Beachte, dass dies die Taktfrequenz ist, nicht die eigentliche Drehfrequenz des Motors.