Motoren
Motoren drehen sich nicht oder nur sehr schwer
Bei Kettenrobotern: Die Ketten sind zu stramm oder zu locker
Wenn die Ketten zu stramm sind, dann hat der Motor nicht genügend Kraft sich zu drehen. Ein Anzeichen dafür ist, wenn die Räder von der Ketten zusammengezogen werden, sodass die Achsen auf einer Seite nicht parallel sind. In diesem Fall sollten längere Kettenglieder eingefügt werden, bis die Kette gut sitzt.
Sind die Ketten zu locker, kann die Kette aus der Führung springen und auf den Führungsknubbeln aufsitzen. Dann muss die Kette wieder strammer gemacht werden.
Die Motoren drehen sich auch ohne Kette nicht
- Drehen sich beide Motoren nicht, kann es sein, dass die Stromversorgung nicht richtig angeschlossen ist. Es ist unbedingt darauf zu achten, dass der Motortreiber nicht falsch herum gepolt wird.
- Dreht sich nur ein Motor nicht, ist zunächst zu überprüfen, ob die Steuerpins auch korrekt mit dem Motortreiber verbunden sind.
- Ist dies der Fall, dann sollte überprüft werden, ob an den Anschlüssen für den Motor auch eine Spannung anliegt.
- Ist dies nicht der Fall, ist der Motortreiber eventuell kaputt.
Ein Motor dreht sich immer falsch herum
- Die Steuerpins sind verpolt
- Der Motor ist am Motortreiber verpolt.
- Es ist ein Fehler im Code
Es ist grundsätzlich sinnvoll, die Verkabelung der Steuerpins zu vertauschen, da man hierfür nicht mit dem Schraubendreher arbeiten muss. Das Ergebnis ist dasselbe.
Sobald der Pico Strom bekommt, dreht sich ein Motor und hört auch nicht mehr auf
- Der Pico ist womöglich beschädigt. Diesen mit dem Testprogramm und der Testplatine auf korrekte Funktion überprüfen.
Testprogramm
from machine import Pin, PWM
import utime
# Bestimme, welche Pins getestet werden sollen. Die Platine hat sieben LEDs. Somit können 7 Pins gleichzeitig getestet werden.
p_start = 11
p_end = 16
pins = list()
for i in range(p_start,p_end):
pins.append(PWM(Pin(i)))
# Die LEDs werden initialisiert. Hier nichts ändern.
#leds=[PWM(Pin(pins[0], Pin.OUT)), PWM(Pin(pins[1], Pin.OUT)), PWM(Pin(pins[2], Pin.OUT)), PWM(Pin(pins[3], Pin.OUT)), PWM(Pin(pins[4], Pin.OUT)), PWM(Pin(pins[5], Pin.OUT)), PWM(Pin(pins[6], Pin.OUT))]
# PWM Frequenz wird eingerichtet.
print("Der Test beginnt.")
for p in pins:
p.freq(2000)
# Zu Beginn werden alle LEDs ausgeschaltet.
for p in pins:
p.duty_u16(0)
# Die LEDs werden einzeln langsam aufgeblendet und abgeblendet. Gehen Sie ruckartig an und aus, dann ist PWM defekt.
for p in pins:
for i in range (65535):
p.duty_u16(i)
for i in range (65535, 0, -1):
p.duty_u16(i)
utime.sleep_ms(800)
# Alle LEDs blinken dreimal schnell hintereinander
for x in range(3):
for p in pins:
p.duty_u16(65535)
utime.sleep_ms(100)
for p in pins:
p.duty_u16(0)
utime.sleep_ms(100)
# Alle LEDs werden auf einer niedrigen Helligkeitsstufe angeschaltet und bleiben an.
for p in pins:
p.duty_u16(10000)
print("Der Test ist fertig.")