Как управлять сервомотором от Arduino с малиной - PullRequest
0 голосов
/ 20 января 2020

на данный момент я использую сервомотор и два мотора. Моя цель состоит в том, чтобы, если я выполнил сценарий, он сначала запустил двигатели, затем повернул серводвигатель на 30 градусов, подождал 3 секунды, включил серводвигатель при его первоначальном запуске, и через 10 секунд двигатели должны остановиться. Тем не менее, мои двигатели запускаются без проблем, но сервомотор пытается развернуться на 180 °, и оба двигателя останавливаются одновременно. Здесь вы можете увидеть мой код:

#!/usr/bin/env python
#import
from time import sleep
import RPi.GPIO as GPIO
from picamera import PiCamera

#Variables
in1 = 17
in2 = 27
in3 = 23
in4 = 24

enA = 22
enB = 25

spd = 15

servoMotor = 5


#Setup
GPIO.setmode(GPIO.BCM)

GPIO.setup(in1, GPIO.OUT)
GPIO.setup(in2, GPIO.OUT)
GPIO.setup(in3, GPIO.OUT)
GPIO.setup(in4, GPIO.OUT)
GPIO.setup(enA, GPIO.OUT)
GPIO.setup(enB, GPIO.OUT)
GPIO.setup(servoMotor, GPIO.OUT)

GPIO.setup(in1, GPIO.LOW)
GPIO.setup(in2, GPIO.LOW)
GPIO.setup(in3, GPIO.LOW)
GPIO.setup(in4, GPIO.LOW)



#Variable 
a = GPIO.PWM(enA,1000)
b = GPIO.PWM(enB,1000)
#PWM with 50Hz
servoP = GPIO.PWM(servoMotor, 50) 
#Starting
a.start(spd)
b.start(spd)
servoP.start(0)

#Code
GPIO.output(in1, GPIO.LOW)
GPIO.output(in2, GPIO.HIGH)
GPIO.output(in3, GPIO.HIGH)
GPIO.output(in4, GPIO.LOW)
sleep(10)
GPIO.output(in1, GPIO.LOW)
GPIO.output(in2, GPIO.LOW)
GPIO.output(in3, GPIO.LOW)
GPIO.output(in4, GPIO.LOW)
servoP.ChangeDutyCycle(15)
sleep(3)
servoP.ChangeDutyCycle(7.5)
servoP.stop()

1 Ответ

2 голосов
/ 21 января 2020

Похоже, у вас сервопривод непрерывного вращения (CR). Даже если вы этого не сделаете, все сервоприводы имеют разные диапазоны PWN, так что, какой сервопривод вы используете, я хотел бы дать вам лучший ответ (извините за просьбу дать пояснения в ответе, но я не могу комментировать).

Попробуйте установить рабочий цикл на минимум 3 и максимум 11. Это, кажется, лучший диапазон для сервоприводов, которые вы используете. Что касается двигателей, не могли бы вы сказать, к каким контактам они подключены?

...