Am 4. Technik-AG-Tag wollen wir die Performance und Motorkontrolle des Arduino mithilfe des Treiberbausteins A4988 verbessern.
- Der Arduino kann mittels des Treiberbausteins L2913DNE zwar kleine Schrittmotoren steuern, aber die Leistungsfähigkeit ist gefährlich begrenzt.
- Zur Steuerung eines Schrittmotors werden minimal 5 I/O-Pins belegt.
- Die USB-Schnittstelle des PC konnte den Stromhunger des kleinen Schrittmotors aus dem 3,5“ Diskettenlaufwerk gerade so befriedigen.
- Rückwirkungen auf den Mikrocontroller sind eher wahrscheinlich als ausgeschlossen.
- Bei Stillstand des Motors oder sehr langsamer Drehzahl steigt der Strombedarf enorm an. Es gibt keine Begrenzung auf einen Maximalstrom.
- Vorwärts- und rückwärtsgerichtete Bewegung erfordern unterschiedliche Sequenzen.
- Eine einfache Möglichkeit zur Begrenzung der Schrittweite (Mikroschrittbetrieb) sieht der L293DNE nicht vor.
Aus diesen und weiteren Gründen hat sich die Verwendung komplexerer Schrittmotortreibermodule für zum Beispiel die Steuerung von CNC-Fräsen oder 3D-Druckern etabliert.
Nächstliegendes Ziel der Technik-AG ist unter anderem der Bau eines Bioreaktors entsprechend der quelloffenen Version des iGEM-AachenTeams 2015. Hier dienen Schrittmotoren dem Antrieb von Schlauchpumpen. Am 4. TAG-Tag wollen wir zunächst die Motorsteuerung nachbauen und mit der Optimierung beginnen.
iGEM-Aachen Schrittmotorpumpentreiber (1)
Die Schrittweite der Einzelschritte lässt sich durch die Anschlüsse MS1 bis MS3 steuern. Ohne deren Belegung erregt der Treiber den Schrittmotor im Vollschrittmodus (Bei Nema17 sind das 200 Schritt pro Umdrehung).
Hier findet man Informationen zur Manipulation der Schrittweite (2).
Die Schrittmotortreiber A4988 lassen sich günstig im Ausland beschaffen. Wer exakte Kopieen erwartet, wird enttäuscht. Maximaler Strom, verwendete Stromerkennung …. . Wesentliche Unterschiede beschreibt dieser Beitrag auf RepRap.org (3). Dort findet sich auch die Anregung zur Verwendung von RAMPS-Shields zur Vereinfachung bei der Verwendung. Der Bioreaktor benötigt 5 Schrittmotortreiber. Das schafft das RAMPS-Board.
Freundlicherweise versorgt uns dieser Beitrag auf Fritzing.org mit einem Grundgerüst für unseren Sketch, wenn er nicht gleich den aachener Quellen entnommen werden soll.
Die genannten Aufbauten verwenden externe Spannungs/Stromquellen. Für den Anfang empfiehlt sich die Versorgung über ein Labornetzteil auf dem sich nicht nur die maximale Spannung sondern auch der maximale Strom begrenzen lässt. Zugleich lässt dies eine externe Kontrolle der Strombegrenzung auf dem A4988- Treiberbaustein zu.
Die Aufbauten zeigen zudem die Verwendung eines Siebkondensators im Bereich der Eingangsspannung. Dieser Kondensator verhindert den Durchbruch von Strom/Spannungsspitzen auf die Stromquelle und den Arduino. Bei Elektrolytkondensatoren ist auf die richtige Polung zu achten. Im Prinzip genügt eine Spannungsfestigkeit dieses Kondensator auf den Betrag der maximalen Spannung. Bei der Bewegung eines Schrittmotors unter äußerem Zwanz können jedoch leicht wesentlich höhere Spannungsspitzen entstehen. Die Treiberbausteine A4988 sind für einen Betrieb bis 35V ausgelegt. Mindestens diese Spannung, besser >60V sollte der Kondensator vertragen. Treiberbausteine sind leicht zu wechseln und verhältnismäßig preiswerter als Stromversorgungen oder Mikrocontrollerplatinen. 😉
Aufgaben:
- Aufbau der Schaltung auf einem Steckbrett unter Verwendung eines NEMA 14-Schrittmotors.
- Demonstration der Funktionsfähigkeit im Vollschrittmodus.
- Auswahl im Halb-, Viertel- Achtel, Sechzehntelschrittmodus durch Steckbrücken.
- Auswahl wie zuvor aber durch I/O-Pins und im Programm.
- Richtungswechselauswahl via Programm.
- Strommessung bei Blockade des Motors.
Ausblick:
Neben dem A4988 haben sich Weiterentwicklungen des Konzepts etabliert, die einen erheblich ruhigeren und leiseren Motorbetrieb zulassen. Auch höhere Ströme lassen sich so steuern.
Das oben verlinkte Konzept der schrittmotorgetriebenen Schlauchpumpen ist zu realisieren und die Eignung unterschiedlicher Motortreiber auf Eignung zu prüfen.
Alternativ zur Verwendung des RAMPS-Boards ist das 1-Aktor-1-Kontroller-Konzept zu prüfen. Um nicht eine Vielzahl komplexer Platinen mit Overhead verwenden zu müssen, sind folgende Ansätze zu prüfen:
How to shrinkify Wie man den Arduinoansatz auf das benötigte Maß kondensiert.
Erik Bartmann bietet spezielle Kapitel als Ergänzung zu seinem Buch frei an. Hier interessieren für die weitere Arbeit insbesondere die Kapitel über den Eigenbau eines Arduinos und über die Interruptsteuerung (5).
Biomasseproduktion muss beobachtet werden, damit sie gesteuert werden kann. Zu diesem Zweck kann eine Trübungsmessung wichtige Hinweise geben. Mithilfe eines Licht-Frequenzwandlers lässt sich ein derartiger Sensor nach Vorbild des iGEM-Aachen-Bioreaktor aufbauen. Der Sensor: TSL235R (Datenblatt) (6) erfordert eine spezielle Weise des Auslesens (Arduino.CC-Beitrag) (7).
Verwendete externe Quellen:
(1) http://2015.igem.org/Team:Aachen/Notebook/Construction_Manuals/Pumps
(2) https://www.pololu.com/product/1182
(3) http://reprap.org/wiki/A4988_vs_DRV8825_Chinese_Stepper_Driver_Boards
(4) http://fritzing.org/projects/a4988-single-stepper-test/
(5) http://www.erik-bartmann.de/down/download-arduino1.html
(6) https://www.sparkfun.com/datasheets/Sensors/Imaging/TSL235R-LF.pdf
(7) http://playground.arduino.cc/Main/TSL235R
1 Gedanke zu „Schrittweise verbessern mit A4988“