Skip to main content

DcMortor

import RPi.GPIO as GPIO          
from time import sleep

GPIO.setmode(GPIO.BOARD)

ina1 = 33
ina2 = 35
ena = 37

inb1 = 31
inb2 = 29
enb = 23

GPIO.setup(ina1,GPIO.OUT)
GPIO.setup(ina2,GPIO.OUT)
GPIO.setup(ena,GPIO.OUT)

GPIO.setup(inb1,GPIO.OUT)
GPIO.setup(inb2,GPIO.OUT)
GPIO.setup(enb,GPIO.OUT)


pa=GPIO.PWM(ena,1000)
pa.start(25)

pb=GPIO.PWM(enb,1000)
pb.start(25)

print("\n")
print("The default speed & direction of motor is LOW & Forward.....")
print("r-run s-stop f-forward b-backward l-low m-medium h-high e-exit")
print("\n")    

while(1):

    x=input("")
# a -----    
    if x=='ar':
        print("a run")
        if(temp1==1):
         GPIO.output(ina1,GPIO.HIGH)
         GPIO.output(ina2,GPIO.LOW)
         print("a forward")
         x='z'
        else:
         GPIO.output(ina1,GPIO.LOW)
         GPIO.output(ina2,GPIO.HIGH)
         print("a backward")
         x='z'


    elif x=='as':
        print("a stop")
        GPIO.output(ina1,GPIO.LOW)
        GPIO.output(ina2,GPIO.LOW)
        x='z'

    elif x=='af':
        print("a forward")
        GPIO.output(ina1,GPIO.HIGH)
        GPIO.output(ina2,GPIO.LOW)
        temp1=1
        x='z'

    elif x=='ab':
        print("a backward")
        GPIO.output(ina1,GPIO.LOW)
        GPIO.output(ina2,GPIO.HIGH)
        temp1=0
        x='z'
# a -----

# b -----    
    if x=='br':
        print("b run")
        if(temp2==1):
         GPIO.output(inb1,GPIO.HIGH)
         GPIO.output(inb2,GPIO.LOW)
         print("forward")
         x='z'
        else:
         GPIO.output(inb1,GPIO.LOW)
         GPIO.output(inb2,GPIO.HIGH)
         print("backward")
         x='z'


    elif x=='bs':
        print("b stop")
        GPIO.output(inb1,GPIO.LOW)
        GPIO.output(inb2,GPIO.LOW)
        x='z'

    elif x=='bf':
        print("b forward")
        GPIO.output(inb1,GPIO.HIGH)
        GPIO.output(inb2,GPIO.LOW)
        temp2=1
        x='z'

    elif x=='bb':
        print("b backward")
        GPIO.output(inb1,GPIO.LOW)
        GPIO.output(inb2,GPIO.HIGH)
        temp2=0
        x='z'
# b -----

    elif x=='al':
        print("a low")
        pa.ChangeDutyCycle(25)
        x='z'

    elif x=='am':
        print("a medium")
        pa.ChangeDutyCycle(50)
        x='z'

    elif x=='ah':
        print("a high")
        pa.ChangeDutyCycle(75)
        x='z'
    
    elif x=='bl':
        print("b low")
        pb.ChangeDutyCycle(25)
        x='z'

    elif x=='bm':
        print("b medium")
        pb.ChangeDutyCycle(50)
        x='z'

    elif x=='bh':
        print("b high")
        pb.ChangeDutyCycle(75)
        x='z'
     
    
    elif x=='e':
        GPIO.cleanup()
        break
    
    else:
        print("<<<  wrong data  >>>")
        print("please enter the defined data to continue.....")