Untitled
unknown
python
a year ago
2.4 kB
6
Indexable
import RPi.GPIO as GPIO
import time
# Konfiguracja pinów GPIO
GPIO.setmode(GPIO.BCM) # U?ywamy numeracji BCM (nie fizycznej numeracji pinów)
GPIO.setwarnings(False)
# Definicje pinów dla silników
motor1_pin1 = 12 # Pin GPIO dla pierwszego kierunku silnika 1
motor1_pin2 = 13 # Pin GPIO dla drugiego kierunku silnika 1
motor2_pin1 = 14 # Pin GPIO dla pierwszego kierunku silnika 2
motor2_pin2 = 15 # Pin GPIO dla drugiego kierunku silnika 2
# Ustawianie pinów jako wyj?cia
GPIO.setup(motor1_pin1, GPIO.OUT)
GPIO.setup(motor1_pin2, GPIO.OUT)
GPIO.setup(motor2_pin1, GPIO.OUT)
GPIO.setup(motor2_pin2, GPIO.OUT)
# Konfiguracja PWM
pwm_motor1_pin1 = GPIO.PWM(motor1_pin1, 1000) # 1000 Hz dla PWM
pwm_motor1_pin2 = GPIO.PWM(motor1_pin2, 1000)
pwm_motor2_pin1 = GPIO.PWM(motor2_pin1, 1000)
pwm_motor2_pin2 = GPIO.PWM(motor2_pin2, 1000)
# Start PWM z wype?nieniem 0 (wy??czony silnik)
pwm_motor1_pin1.start(0)
pwm_motor1_pin2.start(0)
pwm_motor2_pin1.start(0)
pwm_motor2_pin2.start(0)
# Funkcja do sterowania pierwszym silnikiem (silnik 1)
def control_motor1(speed, direction):
if direction == "forward":
pwm_motor1_pin1.ChangeDutyCycle(speed)
pwm_motor1_pin2.ChangeDutyCycle(0)
elif direction == "backward":
pwm_motor1_pin1.ChangeDutyCycle(0)
pwm_motor1_pin2.ChangeDutyCycle(speed)
# Funkcja do sterowania drugim silnikiem (silnik 2)
def control_motor2(speed, direction):
if direction == "forward":
pwm_motor2_pin1.ChangeDutyCycle(speed)
pwm_motor2_pin2.ChangeDutyCycle(0)
elif direction == "backward":
pwm_motor2_pin1.ChangeDutyCycle(0)
pwm_motor2_pin2.ChangeDutyCycle(speed)
try:
while True:
# Przyk?ad dzia?ania:
# Silnik 1 do przodu z 50% pr?dko?ci?
control_motor1(50, "forward")
# Silnik 2 do ty?u z 70% pr?dko?ci?
control_motor2(70, "backward")
time.sleep(5)
# Zmiana kierunku
control_motor1(50, "backward")
control_motor2(70, "forward")
time.sleep(5)
except KeyboardInterrupt:
pass # Przerywamy program gdy u?ytkownik naci?nie Ctrl+C
# Czyszczenie ustawie? GPIO po zako?czeniu programu
pwm_motor1_pin1.stop()
pwm_motor1_pin2.stop()
pwm_motor2_pin1.stop()
pwm_motor2_pin2.stop()
GPIO.cleanup()Editor is loading...
Leave a Comment