Bu uygulamamızda Raspberry Pi kartımız ve L298N motor sürücü kartını kullanarak standart bir DC motorun yön ve hız kontrolünü yapacağız.
Bu uygulamada kullanacağımız malzemelerimiz;
Raspberry Pi
L298N Motor Sürücü Kartı
6V 250 Rpm DC Motor
Jumper Kablolar
Devremizi şemada gördüğümüz şekilde kuruyoruz.
IN1 -- GPIO4 -- BOARD 7
IN2 -- GPIO17 -- BOARD 11
ENA --
L298N motor sürücü kartı 2 kanallı bir motor sürücü kartıdır. Kanal başına 2A akım verebilmektedir ve üzerinde dahili regülatörü vardır.
Bu örneğimizde 1 adet motor ile yapacağımız uygulama için MOTOR-A bölümünü ve buna bağlı IN1-IN2-ENA pinlerini kullandık. MOTOR-B bölümünü kullanmak isterseniz IN3-IN4-ENB pinlerini kullanabilirsiniz.
IN1-IN2-IN3-IN4 pinleri motor yönlerini belirlemek için, ENA-ENB pinleri ise motor hızlarını belirlemek için kullanılır.
Kodumuzu yazmak için dcmotor.py adı ile bir dosya oluşturuyoruz.
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
IN1=20
IN2=21
ENA=16
GPIO.setup(IN1,GPIO.OUT)
GPIO.setup(IN2,GPIO.OUT)
GPIO.setup(ENA,GPIO.OUT)
GPIO.output(IN1,GPIO.LOW)
GPIO.output(IN2,GPIO.LOW)
p=GPIO.PWM(ENA,1000)
p.start(0)
def ileri(hiz):
GPIO.output(IN1,GPIO.HIGH)
GPIO.output(IN2,GPIO.LOW)
p.ChangeDutyCycle(hiz)
def geri(hiz):
GPIO.output(IN1,GPIO.LOW)
GPIO.output(IN2,GPIO.HIGH)
p.ChangeDutyCycle(hiz)
def dur():
GPIO.output(IN1,GPIO.LOW)
GPIO.output(IN2,GPIO.LOW)
p.ChangeDutyCycle(0)
while True:
hiz=input("Hiz degeri giriniz(0-100 arasi) \n")
yon=input("Donus yonu seciniz (İleri icin i Geri icin g Dur icin s) \n")
if yon=='i':
ileri(int(hiz))
elif yon=='g':
geri(int(hiz))
elif yon=='s':
dur()
else:
print("Hatali komut girisi!")
GPIO.cleanup()
break
Kodumuzu yazıp kaydettikten sonra terminal ekranından
python dcmotor.py
komutu ile çalıştırabilirsiniz.
Comments