Untitled
unknown
python
a year ago
2.2 kB
3
Indexable
import gpiod
import time
# Definicja czipu GPIO
chip = gpiod.Chip('gpiochip0')
# Definicje pinów dla silników (zgodnie z BCM)
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
# Inicjalizacja linii GPIO
motor1_line1 = chip.get_line(motor1_pin1)
motor1_line2 = chip.get_line(motor1_pin2)
motor2_line1 = chip.get_line(motor2_pin1)
motor2_line2 = chip.get_line(motor2_pin2)
# Konfiguracja linii jako wyjścia
motor1_line1.request(consumer="motor1_line1", type=gpiod.LINE_REQ_DIR_OUT)
motor1_line2.request(consumer="motor1_line2", type=gpiod.LINE_REQ_DIR_OUT)
motor2_line1.request(consumer="motor2_line1", type=gpiod.LINE_REQ_DIR_OUT)
motor2_line2.request(consumer="motor2_line2", type=gpiod.LINE_REQ_DIR_OUT)
# Funkcja do sterowania pierwszym silnikiem (silnik 1)
def control_motor1(direction):
if direction == "forward":
motor1_line1.set_value(1)
motor1_line2.set_value(0)
elif direction == "backward":
motor1_line1.set_value(0)
motor1_line2.set_value(1)
# Funkcja do sterowania drugim silnikiem (silnik 2)
def control_motor2(direction):
if direction == "forward":
motor2_line1.set_value(1)
motor2_line2.set_value(0)
elif direction == "backward":
motor2_line1.set_value(0)
motor2_line2.set_value(1)
# Funkcja testująca silniki
def test_motors():
try:
while True:
# Przykład testu:
print("Silnik 1 do przodu, Silnik 2 do tyłu")
control_motor1("forward")
control_motor2("backward")
time.sleep(5)
print("Silnik 1 do tyłu, Silnik 2 do przodu")
control_motor1("backward")
control_motor2("forward")
time.sleep(5)
except KeyboardInterrupt:
print("Test przerwany.")
# Wywołanie funkcji testującej
test_motors()
# Zwolnienie zasobów GPIO po zakończeniu programu
motor1_line1.release()
motor1_line2.release()
motor2_line1.release()
motor2_line2.release()Editor is loading...
Leave a Comment