[Tutor] Help with NameError

Bryan Callow bcallow at lindenwold.k12.nj.us
Wed Aug 31 21:29:31 EDT 2016


Could someone help me with a NameError that I can't seem to figure out.
The program asks for an input and then runs two DC motors.  It worked for a
while and then when I reopened the program today I keep getting this
error.  Thank you.  -Bryan

import RPi.GPIO as GPIO
from time import sleep

GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)

Motor1A = 16
Motor1B = 18
Motor1E = 22

Motor2A = 11
Motor2B = 13
Motor2E = 15

GPIO.setup(Motor1A,GPIO.OUT)
GPIO.setup(Motor1B,GPIO.OUT)
GPIO.setup(Motor1E,GPIO.OUT)

GPIO.setup(Motor2A,GPIO.OUT)
GPIO.setup(Motor2B,GPIO.OUT)
GPIO.setup(Motor2E,GPIO.OUT)

forward = ['f', 'F']
backward = ['b', 'B']
exit_ = ['e', 'E']

print('Which direction would you like to move?')
direction = input("Type 'f' for forward, 'b' for backward, or 'e' to exit:
")
while direction not in exit_:
    if direction in forward:
        print('Moving Forward!')
        GPIO.output(Motor1A,GPIO.HIGH)
        GPIO.output(Motor1B,GPIO.LOW)
        GPIO.output(Motor1E,GPIO.HIGH)
        GPIO.output(Motor2A,GPIO.HIGH)
        GPIO.output(Motor2B,GPIO.LOW)
        GPIO.output(Motor2E,GPIO.HIGH)
        sleep(2)
        print ("Stopping!")
        GPIO.output(Motor1E,GPIO.LOW)
        GPIO.output(Motor2E,GPIO.LOW)
    if direction in backward:
        print('Moving Backward!')
        GPIO.output(Motor1A,GPIO.LOW)
        GPIO.output(Motor1B,GPIO.HIGH)
        GPIO.output(Motor1E,GPIO.HIGH)
        GPIO.output(Motor2A,GPIO.LOW)
        GPIO.output(Motor2B,GPIO.HIGH)
        GPIO.output(Motor2E,GPIO.HIGH)
        sleep(2)
        print ("Stopping!")
        GPIO.output(Motor1E,GPIO.LOW)
        GPIO.output(Motor2E,GPIO.LOW)
    sleep(1)
    print('Which direction would you like to move?')
    direction = input("Type 'f' for forward, 'b' for backward, or 'e' to
exit: ")

print('done')


More information about the Tutor mailing list