L293D
Ein Chip mit dem man bis zu zwei Motoren betreiben kann.
Der Chip hat 16 Pins und eine halbrunde Ausstanzung, zeigt diese nach oben werden die Pins von links oben nach rechts oben gezählt.
Also links oben Pin 1, links unten Pin 8, recht unten Pin 9 und rechts oben Pin 16.
L293D | RASPBERRY PI |
---|---|
Pin 1 – ENABLE 1 | Pin 22 – GPIO 25 |
Pin 2 – INPUT 1 | Pin 18 – GPIO 24 |
Pin 3 – OUTPUT 1 | - |
Pin 4 – GND | Pin 6 – GROUND |
Pin 5 – GND | Pin 6 – GROUND |
Pin 6 – OUTPUT 2 | - |
Pin 7 – INPUT 2 | Pin 16 – GPIO 23 |
Pin 8 – VCC1 | - |
Pin 9 – ENABLE 2 | - |
Pin 10 – INPUT 3 | - |
Pin 11 – OUTPUT 3 | - |
Pin 12 – GND | Pin 6 – GROUND |
Pin 13 – GND | Pin 6 – GROUND |
Pin 14 – OUTPUT 4 | - |
Pin 15 – INPUT 4 | - |
Pin 16 – VCC2 | Pin 2 – 5V |
Den Chip verkabelt man mit dem Raspberry Pi. Der Motor wird an Pin 3 (OUTPUT 1) und Pin 6 (OUTPUT 2) des Chips angeschlossen.
Um einen Motor zu betreiben nutzt man eine weitere Stromquelle. Die hier verwendete Batterie wird mit Minus an GROUND und mit Plus an Pin 8 (VCC1) des Chips angeschlossen.
Mit einem Python Skript kann man nun den Motor nach links und rechts drehen lassen.
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
motor_a = 16
motor_b = 18
motor_enable = 22
GPIO.setup(motor_a, GPIO.OUT)
GPIO.setup(motor_b, GPIO.OUT)
GPIO.setup(motor_enable, GPIO.OUT)
def turn_left():
GPIO.output(motor_a, GPIO.HIGH)
GPIO.output(motor_b, GPIO.LOW)
GPIO.output(motor_enable, GPIO.HIGH)
def turn_right():
GPIO.output(motor_a, GPIO.LOW)
GPIO.output(motor_b, GPIO.HIGH)
GPIO.output(motor_enable, GPIO.HIGH)
try:
turn_left()
time.sleep(3)
turn_right()
time.sleep(3)
GPIO.output(motor_enable, GPIO.LOW)
GPIO.cleanup()
except KeyboardInterrupt:
print "Bye..."
GPIO.cleanup()