Posts mit dem Label dc motor werden angezeigt. Alle Posts anzeigen
Posts mit dem Label dc motor werden angezeigt. Alle Posts anzeigen

Dienstag, 16. Juni 2020

BBC Micro:bit Bastelei # 04 - Motoren Motoren


Die Nummer 4 meiner BBC Micro:bit Basteleien ist nun bei Youtube Online. Das Video zeigt 2 Beispiele, wie man mit dem Micro:bit einen Motor steuern kann.

Im ersten Beispiel wird ein Schritt- (Stepper) Motor mit einem Zufallsgenerator gesteuert und im 2. Beispiel baue ich mir einen kleinen Ventilator mit einem DC Motor, der über Tastendruck ein- und ausgeschaltet wird.



Ich habe dazu eine Aufbau nach folgende, Schema gemacht.


Ein Breakout Board war notwendig, um eine saubere Schaltung zu bauen. Das wichtigste war der Treiberbaustein für den Steppermotor mit einem ULN 2003A und natürlich der Stepper Motor 28BYJ-48. Ein 6V Batterieblock hat dann die Schaltung mit Strom versorgt.

Das Programm mit dem Zufallsgenerator stammt von Jonathan Davies. Zum besseren Verständnis habe ich die Kommentare ins deutsche übersetzt und stelle den Code hier zur Verfügung.

# 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
view raw MB_DC_Motor.py hosted with ❤ by GitHub
Im 2. Beispiel betreibe ich einen kleinen DC Motor mit dem BBC Micro:bit. Da passiert aber nicht viel. Auf Tastendruck kann der Motor gestartet und gestoppt werden. Das schaut man sich am besten im Video an.




Dann habe ich mit dem Ender 3Pro noch ein paar Halterungen für die Motore gedruckt. Und das ganze ohne Support. Sonst gibt es dabei nichts besonderes zu beachten, da kann ich auch auf die nähere Beschreibung verzichten.

Und alles weitere gibt es dann wieder in dem Video:



    Affiliate Links zu den Bauteilen: 
    Amazon Deutschland: https://amzn.to/2ADxLUe BBC Micro:bit: https://amzn.to/2BfhO6o Stepper Motor: https://amzn.to/37vvGpg (5x) DC Motor klein: https://amzn.to/30JViNZ (10x) Banggood: (China): https://www.banggood.com/custlink/mmvYhH7mmN BBC Micro:bit: https://www.banggood.com/custlink/KGmGTOSETp Stepper Motor: https://www.banggood.com/custlink/v3GhYVTD3R (5x) DC Motor klein: https://www.banggood.com/custlink/mDvRRPfvGL (10x)