# Einfaches Schrittmotorsteuerungsprojekt für MICROBIT - von JONATHAN DAVIES - microbit.iwasp.eu # Copyright 2017 iwasp.eu from microbit import * import random port = [pin0, pin1, pin8, pin2] # Liste der zu verwendenden GPIO-Pins t = 2 # Pausenzeit (Mikrosekunden) zwischen Motorschritten - kleiner Wert t, schnellere Motordrehung # Zufallsbereich für die Anzahl der Motorschrittzyklen rangeStart = 10 rangeEnd = 300 while (True): # unendliche Hauptschleife cycle = random.randrange(rangeStart, rangeEnd) # Zufallszahl der auszuführenden Motorschrittzyklen erzeugen while (cycle > 0): # Motorsequenz im Uhrzeigersinn - 4-Schritt-Zyklus # Pins in korrektem Muster für jeden Schritt einschalten # Zyklusmuster im Uhrzeigersinn - 1000,0100,0010,0001 port[0].write_digital(1) port[1].write_digital(0) port[2].write_digital(0) port[3].write_digital(0) sleep(t) # Pause zwischen den Schritten port[0].write_digital(0) port[1].write_digital(1) port[2].write_digital(0) port[3].write_digital(0) sleep(t) port[0].write_digital(0) port[1].write_digital(0) port[2].write_digital(1) port[3].write_digital(0) sleep(t) port[0].write_digital(0) port[1].write_digital(0) port[2].write_digital(0) port[3].write_digital(1) sleep(t) cycle = cycle-1 # wenn Null Zyklen erreicht sind, starten Sie die Sequenz gegen den Uhrzeigersinn Cycle = random.randrange(rangeStart, rangeEnd) while (cycle > 0): # Motorsequenz im Gegenuhrzeigersinn - 4-Schritt-Zyklus # Zyklusmuster gegen den Uhrzeigersinn - 0001,0010,0100,1000 port[0].write_digital(0) port[1].write_digital(0) port[2].write_digital(0) port[3].write_digital(1) sleep(t) # Pause zwischen den Schritten port[0].write_digital(0) port[1].write_digital(0) port[2].write_digital(1) port[3].write_digital(0) sleep(t) port[0].write_digital(0) port[1].write_digital(1) port[2].write_digital(0) port[3].write_digital(0) sleep(t) port[0].write_digital(1) port[1].write_digital(0) port[2].write_digital(0) port[3].write_digital(0) sleep(t) cycle = cycle-1 # Hauptschleifenende