RaspberryPi с Python: как остановить серво и запустить снова - PullRequest
0 голосов
/ 02 июля 2019

Когда я останавливаю сервопривод после действия и хочу запустить его снова, сервопривод странно движется. Сервопривод, кажется, выходит за пределы диапазона.

import RPi.GPIO as GPIO
import time

GPIO.setup(17, GPIO.OUT)
p = GPIO.PWM(17, 50)
p.start(2.5)
time.sleep(3)
p.ChangDutyCycle(12.5)
time.sleep(3)
p.ChangDutyCycle(2.5)
time.sleep(3)
p.stop()
p.start(2.5)
# this is not working
p.ChangDutyCycle(12.5)
p.stop()

Сервопривод должен нормально стартовать снова и делать движение. Он думает, что, возможно, устанавливает неправильную стартовую позицию и хочет двигаться в другом направлении.

1 Ответ

0 голосов
/ 22 июля 2019

Я решил проблему не очень элегантно, но лучшего решения не нашел. Я сделал дополнительный файл со всеми сервоприводами и выполнил его с os.system("path to file") в основной программе. В отдельном файле я инициализировал сервоприводы и запустил сервопривод. В конце я остановил серво и очистил только серво контакты, чтобы не сломать основную программу с другими задействованными контактами. Проблема в том, что вы должны установить сервоприводы обратно в начальную позицию в конце отдельного файла.

...