на данный момент я использую сервомотор и два мотора. Моя цель состоит в том, чтобы, если я выполнил сценарий, он сначала запустил двигатели, затем повернул серводвигатель на 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()