Raspberry Pi ve L298N ile DC Motor Kontrolü

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.






Son Paylaşımlar