schreiben Sie mir! -> mailto:peter [period] bickel [snail] orange [period] fr?subject=Gartenbahn © Peter Bickel 2009...2018 Revision 2018 PMWiki V 2.2.105 |
Low Cost PWM-Steuerung mit ARDUINO und Infineon-Platinezum ersten Teil mit der Einführung Teil 2: Die PWM-Erzeugung mit dem ARDUINODer ARDUINO erblickte vor zehn Jahren in Italien das Licht der Welt. Die Idee dahinter war, Mikroprozessoren handhabbar zu machen, Barrieren abzubauen und Berührungsängste aufzulösen. Hard- und Software sollten bereits Schülern erlauben, einfache Projekte zu verwirklichen, es war auch vorgesehen, einen Teil der Platinen gratis an Schulen zu verteilen. Alle Teile sind quelloffen und unterdessen entwickelt eine riesige Fangemeinde für den ARDUINO. In den zehn Jahren seit seiner Erfindung ist auch die Platinen-Familie stetig grösser geworden: Heute sind neue Platinen mit leistungsfähigen Prozessoren und viele Zusatzplatinen erhältlich. Und im Internet und in zahlreichen Büchern gibt es Programme für alle Lebenslagen. Ich arbeite hier mit dem ARDUINO UNO, bei dem der Prozessor in einem Sockel steckt und ausgewechselt werden kann. Die Hardware besteht aus einer etwa 5x7cm kleinen Platine mit einem Mikroprozessor von ATMEL (ATmega328P) und etwas Zugemüse. Verwenden Sie bitte nur den UNO! Die neueren Boards tragen andere Prozessoren, deren Programmierung von der des UNO abweichen kann. Die Programme entwickeln Sie auf dem PC in der Sprache C und laden sie dann über ein USB-Kabel in den Speicher des ARDUINO. Das Platinchen kann bei allen Elektronik-Versendern für knapp € 30 bestellt werden. Auf eBay finden Sie es auch für € 10.- made in China. Die Entwicklungsumgebung für den PCDie Entwicklungsumgebung (EU) ist rund 60MB gross und steht auf der ARDUINO-Webseite zum Download bereit, es gibt sie für Windows, MacOS und Linux, sowie für 32bit- und 64bit-Systeme. Sie enthält einen Editor zum Schreiben des Codes und einen Übersetzer (Compiler), der Ihr Programm auf Fehler untersucht und es dann in Maschinensprache übersetzt. Dann wird es über die USB-Schnittstelle in den Speicher des ARDUINO gefüllt. Ihr Programm startet sofort und läuft so lange, wie der ARDUINO an der Spannungsversorgung liegt. Auch wenn Sie nicht programmieren wollen, brauchen Sie die EU zum Laden des PWM-Programms in den ARDUINO und allenfalls zum Anpassen des einen oder anderen Parameters an Ihre Wünsche. Weitergehende Änderungen des Programms sind nicht nötig, ausser Sie wollen herumprobieren. Die Infineon Entwicklungs-PlatineDiese Platine hat das gleiche Format wie der Arduino und trägt zwei hochintegrierte Motorentreiber BTN8982TA. Jeder enthält je zwei MOSFET-Leistungsschalter und die nötige Ansteuerungselektronik in einem Gehäuse. Die beiden Leistungsschalter sind bei mir als H-Brücke geschaltet und steuern Geschwindigkeit und Drehrichtung eines Motors, ein Relais zum Umsteuern der Drehrichtung ist nicht nötig. Die Platine hat einen Schutz gegen Verpolung der Versorgunsspannung. In den ICs eingebaut sind Sicherungen gegen Übertemperatur und Überstrom. Sie wird von Farnell Elements14 zum Preis von rund € 22 verkauft. Die BedienelementeDer Arduino erhält seine Befehle vom Steuerpult, das zwei einpolige Kippschalter mit je drei Positionen trägt, je einen für Drehrichtung und Geschwindigkeit. Das Programm wertet die Schalterstellungen aus und bildet das PWM-Signal für die Motorentreiber. 1 die Funktion GeschwindigkeitDieser Kippschalter hat seine Ruhestellung in der Mitte, die beiden anderen Stellungen rasten nicht ein ((ON)-OFF-(ON)). Die drei Positionen haben die Bedeutung schneller - Geschwindigkeit halten - langsamer. 2 die Funktion DrehrichtungDieser Kippschalter hat drei einrastende Positionen: vorwärts - halt - rückwärts (ON-OFF-ON). In der Mittelstellung halt ist die Brücke stromlos, das Fahrzeug steht still. Wenn Sie auf eine der beiden anderen Stellungen gehen, steuert der ARDUINO den Stromfluss für Vor- bzw Rückwärtsfahrt. Sobald Sie den Geschwindikeitshebel betätigen, rollt das Fahrzeug an. Wenn Sie bei fahrendem Fahrzeug in die halt-Stellung gehen oder gar die Drehrichtung ändern, fährt der ARDUINO die Motorspannung herunter und das Fahrzeug hält an. So vermeiden Sie Fehlbedienungen, die rasch zur Überlastung der MOSFET-Transistoren führen können. Probeaufbau und Funktionskontrolle1 MaterialIm Bild der fabrikneuen Platinen ist gut zu sehen: Das MotorShield hat von Haus aus keine Buchsenleisten. Sie brauchen nur die rechte Seite mit zwei Buchsenleisten von acht bzw zehn Anschlüssen zu bestücken. Natürlich können Sie die Drähte auch direkt auf die Platine löten, ich rate aber ganz entschieden davon ab. Die winzigen Kontaktflächen lösen sich unter der Löthitze rasch vom Isoliermaterial und dann beginnt das Pfriemeln. Was meist mit dem vorzeitigen Ende der Patine ausgeht. Den vier Hochstrom-Anschlüssen habe ich Bananenbuchsen spendiert, Flachstecker 6.3mm sind genau so brauchbar. Die Buchsenleisten sind für Stecker von 0.5mm gebaut, der schnellste Weg zum Ziel ist isolierter Schaltdraht Durchm. 0.5mm, den Sie in verschiedenen Farben erhalten [A]. Etwas aufwendiger sind Stücke von Schaltlitze, die Sie beidseitig mit einem kurzen Stück Schaltdraht versehen und mit Schrumpfschlauch isolieren [B]. Und schliesslich finden Sie im Handel fertig konfektionierte Kabel mit Steckern [C]. Für den definitiven Aufbau empfehle ich Ihnen die zu den Buchsenleisten passenden Steckerleisten mit angelöteten Stücken von Schaltlitze [D]. Das Bild unten zeigt die vier Möglichkeiten. Machen Sie sich auch einige Gedanken zur Farbe der Verbindungskabel. Elektrisch spielen diese Farben keine Rolle, Ihnen helfen Sie aber, Fehler zu vermeiden. Bei mir sind rot und schwarz grundsätzlich für die Betriebsspannung vom Akku reserviert, wenn Sie Netzkabel verwenden, werden Sie wohl mit braun und blau vorlieb nehmen müssen. Am Ausgang des MotorShields ist die Polarität je nach Fahrtrichtung wechselnd, wählen Sie also zwei gleichfarbige Leiter. Der mittlere Anschluss GND bleibt offen. 2 VerdrahtungBauen Sie sich zunächst ein provisorisches Bedienpult, die Käseschachtel auf dem Bild hat sich prima bewährt. Der Arduino erhält seine Betriebsspannung vorläufig weiterhin vom PC, für den Motor brauchen Sie aber eine unabhängige Spannungsquelle von 12V. Das kann ein Akku sein oder ein Netzteil, ein altes PC-Netzteil tut den Dienst prima. An den Ausgang des MotorShields legen Sie einen kleinen Motor oder fürs Erste Ihr Multimeter, Sie brauchen dann nicht auch noch einen wildgewordenen Motor einzufangen... Für die Verdrahtung trennen Sie den Arduino vom PC, indem Sie den USB-Stecker abziehen. Auch das 12V-Spannungsquelle bleibt ausgeschaltet. Folgen Sie nun einfach dem Schema in Bild 4 und versuchen Sie, ohne Kurzschlüsse und Wackelkontakte die nötigen Verbindungen zu machen. Ganz wichtig: Die Masse-Kontakte (Ground - GND) von ARDUINO und Motor-Shield müssen miteinander verbunden sein! Die Anschlüsse IN1 und IN2 des Motor-Shields (Pins 3 und 11, Achtung: Die Zählerei beginnt bei 0!) bekommen das PWM-Signal. Die Anschlüsse INH1 und INH2 (Pins 12 und 13) blockieren die beiden Schalter-ICs (inhibit) und müssen mit +5V verbunden werden, damit der Motor läuft. Im Schema habe ich einen «Zündschlüssel» vorgesehen, den Sie zB mit einem Schlüsselschalter realisieren können. Aber ACHTUNG: Dieser Schalter ersetzt natürlich einen Hauptschalter in der Akkuleitung nicht! Meinen Versuchsaufbau sehen Sie am Aanfang der Seite, die Teile sind wie im Schema angeordnet, nur der Schlüsselschalter fehlt. Statt dessen verbindet der blaue Draht die beiden Inhibit-Eingänge mit +5V. Und weiter gehts zum 3. Teil: das Steuerprogramm |