Getestet mit:Raspberry Pi 2; Raspberry Pi B+; Python 2.7; Raspbian pre Jessie
Voraussetzungen:Raspberry Pi mit Raspbian Jessie und Internetverbindung (siehe Schritte 1-7 in der Einfuehrung)
2

Einfaches DC Motortreiberboard fuer den Raspberry Pi mit dem IC L293d und software Pulse-Width Modulation

In diesem Tutorial wird die unabhaengige Kontrolle von Richtung und Geschwindigkeit von zwei Gleichstrommotoren durch den Raspberry Pi mit dem IC L293d und Software-basierter Pulse-Width-Modulation beschrieben. Pulse-Width Modulation ist eine Methode zur Kontrolle der Frequenz und Arbeitslast eines Signals. Eine PWM-Arbeitslast von 10 bedeutet die Schaltung des Signals fuer 10% der Intervallzeit.
Der Raspberry Pi 2 (und B+) unterstuetzt zwei hardwarebasierte PWM Pins; in diesem Tutorial wird statt dessen die einfachere softwarebasierte PWM verwendet, bei der Frequenz und Arbeitslast vom Prozessor berechnet werden. Raspi.tv hat eine sehr gute Einfuehrung in Software-PWM und Adafruit ein schoenes Tutorial ueber Hardware-PWM veroeffentlicht.

Wichtig
Alle Pin Nummern sind gezaehlt nach der Board-Nummerierung!

Steckplatine

L293d motor driver breadboard

L293d Motortreiber auf einer Steckplatine

Schaltkreis
MOTSUP bezeichnet den Eingang der Versorgungsspannung fuer die Motoren. Der IC L293d (technische Spezifikation) vertraegt eine Eingangsspannung von 4.5-36 Volt; die Stromquelle ist entsprechend der Motorspezifikation zu waehlen, jeder Motor darf aber nicht mehr als 650mA ziehen.

Motorboard Schematic

Motorboard Schaltkreis

Steuerung der Motoren
Stelle sicher, dass alle Verbindungen richtig sind und teste dann die Motoren nach download des Pythonscripts

Code Erlaeuterungen
In der __init__ Funktion der Motor Klasse aus motor_control_l293_pwm.py wird der Motor initialisiert:

Zuerst werden die Pins eingerichtet. Anschliessend werden zwei software-PWM Instanzen mit einer Frequenz von 100 Hertz erzeugt fuer die Vorwaerts- und Rueckwaertspins.

Damit der Motor zu beginn ruht wird die Arbeitslast(duty cycle) ueber start mit 0 initialisiert. Der Kontrollpin, welcher steuert, ob ein Motor an oder aus ist, wird auf an gestellt, da die Aktivitaet ueber die Arbeitslast per PWM reguliert wird.
Die Funktion forward setzt einfach die Rueckwaerts-Arbeitslast auf 0 und die Vorwaerts-Arbeitslast auf die gewuenschte Geschwindigkeit:

Jetzt kann ein Motor erzeugt und gestartet werden durch

Damit laueft motor1 in Richtung vorwaerts mit 90% der Maximalgeschwindigkeit.

Das ganze Script
Klicke auf Ganzes Script um das ganze Programm anzuzeigen.

Permanenter Schaltkreis
Der permanente Schaltkreis laesst sich sehr gut auf einer Streifenplatine zusammenbauen:
The permanent board is easily assembled on a stripe board or could be etched and printed with the Gerber files presented.

Assembled Motorboard

Zusammengebautes Motorboard

Gerber files
Zum aetzen oder PCB-Druck des Schaltkreises sind diese Gerber-Dateien geeignet:

Links
RasPi.tv Einfuehrung in Software-PWM: http://raspi.tv/2013/rpi-gpio-0-5-2a-now-has-software-pwm-how-to-use-it
Adafruit Tutorial ueber Hardware-PWM: https://learn.adafruit.com/adafruit-raspberry-pi-lesson-9-controlling-a-dc-motor/lm293d
L293 technische Spezifikation: http://www.ti.com/lit/ds/symlink/l293.pdf

Knight of Pi

Johannes Bergs aka Knight of Pi. Diploma in Bioinformatics, some Webdesign and Python coding then. Living in the beautiful city of Vienna.

2 Comments

  1. Hi Pi-Knights,
    Habe den Blog gerade erst entdeckt, obwohl ich schon ein bisschen zum thema gelesen hab.

    Die Schaltpläne, das Steckbrettschema und die Code-Auschnitte, werden bestimmt noch hilfreich.

    Folgendes könnte die Anleitung vielleicht noch verständlicher machen:

    1. Welche V/A-Werte haben externe Stromquelle und Motoren?

    2. Wurde der L293 (Titel, Intro) oder der L293D mit integrierten flyback-Dioden (Schaltplan, Links) eingesetzt. Wenn ohne D, wie reagiert die Schaltung ohne die Schutzdioden? Ist die Anwendung so gefahrlos für den Pi möglich?

    3. Auch wenns in den Augen brennen wird, aber es könnte ja noch ein Foto von der Rückseite der Streifenplatine reingestellt werden.

    Gerade bei 2. schrecke ich davor zurück einfach den l293ne zu nehmen den ich in meiner Grabbelkiste gefunden und ich weiß nicht welche Dioden ich wo und an welche Ports hängen müsste.

    Good Knights.

    • Servus GotoDengo,

      danke fuer den Hinweis- es muss der L293d sein, ich habe es im Tutorial geaendert und auch die Spezifikation dazugefuegt.

      Ich wuensche viel Erfolg und Spass beim basteln!

Schreib einen Kommentar zu Knight of Pi Antworten abbrechen

Time limit is exhausted. Please reload CAPTCHA.