I’m trying to trigger a relay using my Jetson Nano with GPIO, but using the following code I get an error that “A different mode has already been set!”
#!/usr/bin/env python
import Jetson.GPIO as GPIO
import time
from adafruit_servokit import ServoKit
# Pin Definitions
output_pin = 18 # BOARD pin 12, BCM pin 18
kit = ServoKit(channels=16)
# Pin Setup:
# Board pin-numbering scheme
GPIO.setmode(GPIO.BCM)
mode = GPIO.getmode()
print(mode)
# set pin as an output pin with optional initial state of HIGH
GPIO.setup(output_pin, GPIO.OUT, initial=GPIO.LOW)
GPIO.setwarnings(False)
print("Mode is %s" % mode)
def turn_on_relay():
while True:
choice = input('Enter 1 to turn on, Enter 0 to turn off; Q to quit: ')
if choice == '1':
GPIO.output(output_pin, GPIO.HIGH)
elif choice == '2':
GPIO.output(output_pin, GPIO.LOW)
elif choice == 'q':
break
turn_on_relay()
#GPIO.cleanup()
Resulting error is:
Traceback (most recent call last): File “cheetah.py”, line 12, in
GPIO.setmode(GPIO.BCM) File “/usr/local/lib/python3.6/dist-packages/Jetson.GPIO-2.0.8-py3.6.egg/Jetson/GPIO/gpio.py”,
line 312, in setmode ValueError: A different mode has already been
set! Exiting… Cleaning up pins
Why can’t I set the mode?