Dieses Projekt bietet eine vollständige Lösung für die Steuerung von DC-Motoren (z. B. mit L298N) und die präzise Messung von Drehimpuls (RPM) über einen AS5600 Rotary Encoder. Das System kombiniert Hardware-Steuerung mit Mikropython-Software und unterstützt PID-Regelung, automatische Kalibrierung sowie Echtzeit-Datenvisualisierung.
- AS5600 Rotary Encoder (I2C-Adresse:
0x36) - DC-Motor (z. B. 15000Hz-Modell)
- L298N Motor-Treiber
- ESP32/Pico (mit I2C/PWM-Schnittstellen)
- 9V/12V Stromversorgung für den Motor
- 3D-Druckteile (Verkabelungshalter, Sensorhalter, Motorhalter)
- USB-Adapter für die Stromversorgung
- Motorsteuerung mit Duty-Cycle-Regelung (links/rechts/stop)
- AS5600-Integration für Winkelposition- und RPM-Messung
- PID-Regler zur dynamischen Geschwindigkeitsanpassung
- Automatische Kalibrierung des Minimums Duty Cycle
- Echtzeit-Datenvisualisierung (RPM/Duty Cycle-Diagramm)
- Statusleuchten (Neopixel) für Fehler-/Betriebsstand-Anzeige
Steuert den Motor mit dutyCycle-Regelung und Reverse-Funktion.
dc_motor1.set_speed(50) # 50 RPM im UhrzeigersinnLiest Winkelwerte über I2C und wandelt sie in RPM um.
sensor1.read_registers() # Liest aktuelle Position
sensor1.count_rounds() # Zählt vollständige DrehungenImplementiert PID-Regelung für genaue Geschwindigkeitssteuerung.
controller.set_target_rpm(80)
controller.control_motor_with_rpm() # Regelt RPM über 10 Sekunden- AS5600_brick_mount.stl: Halter für den Encoder
- dc_motor_brick_mount.stl: Halter für den Motor
- Download: https://bit.ly/dcmotor-cad
# Implemente in `code_for_computer.py`
plt.ion() # Sofortiges Zeichnen
fig, ax = plt.subplots(figsize=(10, 6))
line1, = ax.plot(rpm_data, label='RPM', color='blue')
line2, = ax.plot(duty_data, label='Duty Cycle', color='orange')
ax.legend()
plt.draw() # Aktualisiert das Diagramm- Hardware vorbereiten: AS5600 mit ESP32 verbinden.
- Code laden:
main.py→ Hauptprogramm für Motor- und Sensorlogikcode_for_computer.py→ Für Datenvisualisierung (PC)
- Kalibrierung:
min_duty = calibrate_min_duty(dc_motor1, sensor1) # Automatische Bestimmung
- Optimiertes PID-Trainingsystem
- Sicherheitsschalter (z. B. Überhitzungschutz)
- Web-Oberfläche für Fernsteuerung (Flask/JSON)
- Full-Realtime-Grafik-Export (CSV/PNG)
- GitHub Repository: https://github.com/DeinProjekt/dcmotor-encoder
- Lizenzen:
- Hardware: CC BY-SA 4.0
- Software: MIT
Letzte Aktualisierung: 2023-10-05
Erstellt von: fabsehack