MG 996R сервопривод Raspberry Pi с регулировкой угла наклона

#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 градусов.