#python #raspberry-pi #microcontroller #pwm #servo
#python #raspberry-pi #микроконтроллер #шим #сервопривод
Вопрос:
Я использую сервопривод MG 996R, подключенный к Raspberry Pi и внешнему источнику питания. Я использую этот код:
import RPi.GPIO as GPIO
import time
servoPIN = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(servoPIN, GPIO.OUT)
p = GPIO.PWM(servoPIN, 50) # GPIO 17 for PWM with 50Hz
p.start(2.5) # Initialization
try:
while True:
p.ChangeDutyCycle(5)
time.sleep(0.5)
p.ChangeDutyCycle(7.5)
time.sleep(0.5)
p.ChangeDutyCycle(10)
time.sleep(0.5)
p.ChangeDutyCycle(12.5)
time.sleep(0.5)
p.ChangeDutyCycle(10)
time.sleep(0.5)
p.ChangeDutyCycle(7.5)
time.sleep(0.5)
p.ChangeDutyCycle(5)
time.sleep(0.5)
p.ChangeDutyCycle(2.5)
time.sleep(0.5)
except KeyboardInterrupt:
p.stop()
GPIO.cleanup()
Но все, что я получаю, это непрерывное вращение с некоторыми случайными замедлениями.
Моя цель — иметь возможность поворачивать на 90 и -90 градусов.
Ответ №1:
Некоторые сервоприводы MG996R были модифицированы для непрерывного вращения. Это означает, что то, что вы отправляете, задает не угол, а направление и скорость вращения.
Я подозреваю, что у вас есть один из этих модифицированных сервоприводов.
Как ни странно, вот сообщение о том, что у кого-то есть противоположная проблема с сервоприводом того же типа.
Комментарии:
1. Да, и это то, что я получил в магазине электроники, когда вернулся к ним с проблемой. Он дал мне другой сервопривод с точно таким же названием и описанием, и он работает на 90 градусов.