Hallo,
ich habe vor ~1 Jahr mal einen Code geschrieben für eine Relay Steuerung. Dabei werden 8 Motoren angesteuert.
Zuerst 4 und danach die anderen 4.
Jetzt möchte ich aber das alle 8 gleichzeitig laufen, verstehe aber meinen eigenen Code nicht mehr...
Kann mir wer sagen warum nur 4/4 Motoren gleichzeitig laufen?
Python
import RPi.GPIO as GPIO
import time
import sys
from threading import Thread
var1 = int(sys.argv[1])
var2 = int(sys.argv[2])
var3 = int(sys.argv[3])
var4 = int(sys.argv[4])
var5 = int(sys.argv[5])
var6 = int(sys.argv[6])
var7 = int(sys.argv[7])
var8 = int(sys.argv[8])
def heron(gpio_nr, timeB):
GPIO.setup(gpio_nr, GPIO.OUT)
GPIO.output(gpio_nr, GPIO.HIGH)
GPIO.output(gpio_nr, GPIO.LOW)
time.sleep(timeB * 6);
GPIO.output(gpio_nr, GPIO.LOW)
GPIO.output(gpio_nr, GPIO.HIGH)
# GPIO in use[18, 23, 4, 17, 27, 22, 10, 9, ? , ?]
GPIO.setmode(GPIO.BCM)
my_threads = []
if (var1 != 0):
t = Thread(target=heron, args=(18, var1))
t.start()
my_threads.append(t)
if (var2 != 0):
t = Thread(target=heron, args=(23, var2))
t.start()
my_threads.append(t)
if (var3 != 0):
t = Thread(target=heron, args=(4, var3))
t.start()
my_threads.append(t)
if (var4 != 0):
t = Thread(target=heron, args=(17, var4))
t.start()
my_threads.append(t)
if (var5 != 0):
t = Thread(target=heron, args=(27, var5))
t.start()
my_threads.append(t)
if (var6 != 0):
t = Thread(target=heron, args=(22, var6))
t.start()
my_threads.append(t)
if (var7 != 0):
t = Thread(target=heron, args=(10, var7))
t.start()
my_threads.append(t)
if (var8 != 0):
t = Thread(target=heron, args=(9, var8))
t.start()
for my_thread in my_threads:
my_thread.join()
GPIO.cleanup()
Alles anzeigen