我正在Pi上远程运行Python脚本来控制电机。这是脚本-
import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(10, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(11,GPIO.OUT)
GPIO.setup(13,GPIO.OUT)
GPIO.setup(15,GPIO.OUT)
def button_callback(channel):
print("Button was pushed!")
GPIO.output(15,GPIO.LOW) # assuming this is the connection to the enable pin on your motor controller board
exit()
# Start motor
GPIO.output(11,GPIO.HIGH)
GPIO.output(13,GPIO.LOW)
GPIO.output(15,GPIO.HIGH)
GPIO.add_event_detect(10,GPIO.RISING,callback=button_callback)
message = input("Press enter to quit\n\n")
GPIO.cleanup()
当我从Pi命令行运行脚本时,它可以正常工作,即按下开关时电机停止。
但是,当从Linux计算机通过SSH命令运行时,按下开关时电机不会停止。
这是Shell脚本中包含的SSH命令-
#!/bin/bash
ssh pi@192.168.1.12 "sudo python /home/pi/motor.py"
任何人都可以给我一个想法,为什么我不希望通过SSH表现出脚本的行为,并在可能的情况下提供解决方案。
谢谢!
答案 0 :(得分:0)
我已经使用其他代码解决了这个问题
import RPi.GPIO as GPIO
import time
from time import sleep
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(10, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(11,GPIO.OUT)
GPIO.setup(13,GPIO.OUT)
GPIO.setup(15,GPIO.OUT)
# Start motor
GPIO.output(11,GPIO.HIGH)
GPIO.output(13,GPIO.LOW)
GPIO.output(15,GPIO.HIGH)
while True:
input_state = GPIO.input(10)
if input_state == True:
GPIO.output(15,GPIO.LOW)
time.sleep(30)
message = input("Press enter to quit\n\n")
GPIO.cleanup()
GPIO.cleanup()
我仍然想知道为什么以前的代码不起作用。无论如何问题暂时解决了!
谢谢