Update: Ich ändere gerade ein paar Dinge mit dem Projekt. Ich habe einige von euch Ratschlägen befolgt. Ich habe von einem Schrittmotor zu einem RC-Servo (gesteuert über PWM) gewechselt, und wenn ich auf Probleme stoße und sie nicht herausfinden kann, werde ich fragen. Danke für die Hilfe!
Ich arbeite an einem Projekt mit einem Freund und es ist das erste Mal, dass wir einen Arduino verwenden. Wir verwenden ein Arduino, um Daten von einem Sensor (Beschleunigungsmesser) zu nehmen und dann den Motor einzuschalten (6 V, DC).
Ich habe etwas gegraben und es scheint, als würde die Leistung des Arduino möglicherweise nicht gleichzeitig für den Motor und den Sensor ausreichen. Vielleicht könnte eine Art Verzögerung funktionieren (wäre das möglich?).
Ich überlege, ein Motorschild zu verwenden . Kann ich den Beschleunigungssensor weiterhin zusammen mit dem Motor steuern?
Ich versuche, eine einzige externe Stromquelle zu verwenden (maximal: 6 AA-Batterien; ich versuche, die Anzahl der Batterien zu begrenzen, da wir versuchen, sie tragbar zu halten), also gibt es eine Möglichkeit, seitdem eine Quelle zu verwenden Arduino und Motorschild benötigen (nach meinem Verständnis) zwei verschiedene Netzteile.
Problem 1 : Antreiben eines Motors direkt von einem Arduino
Das Antreiben eines Motors direkt von den Arduino-Pins ist aus mehreren Gründen nicht ratsam:
Problem 2 : Beschleunigungsmesser und Motorschild gleichzeitig steuern
Ausgabe 3 : Stromverteilung zwischen Arduino und Motorschild
Die meisten Schilde nehmen ein paar Pins ein und lassen den Rest für Sie übrig (deshalb haben viele eine Nachbildung des Arduino-Pin-Systems mit stapelbaren Headern). Sie sind so konzipiert, dass sie so problemlos wie möglich sind, daher ist es am einfachsten, einen Schild zu bekommen, um dies zu umgehen.
Ich persönlich treibe Motoren nicht direkt vom Board an; Stattdessen verwende ich dafür Motortreiber wie den L293D. Die Pins eignen sich nicht wirklich zum Extrahieren von Strom, und im Allgemeinen ist es besser, Sensoren direkt statt über die Arduino-Pins mit Strom zu versorgen. Denken Sie daran, dass die Pins eine Strombegrenzung haben, und wenn Sie sie überlasten, brennen sie durch.
Die Verwendung eines L293D ist einfach:
Verbinden Sie die Pins 1,9,16 mit Ihrer Vcc-Quelle (positiver Anschluss einer beliebigen 5-V-Quelle, mit der Sie den Arduino versorgen. Für mich ist es im Allgemeinen eine Leitung, die von einem LM7805 gezogen wird). Verbinden Sie nun die Pins 4,5,13,12 mit Ihrem GND (Minuspol). Verbinden Sie nun Pin 8 mit einer höheren Spannungsquelle (6 V, 12 V oder was auch immer Sie Ihren Motoren zuführen möchten). Beachten Sie, dass die negativen Anschlüsse aller Spannungsquellen mit GND kurzgeschlossen werden müssen.
Verbinden Sie nun Ihren Motor über die beiden Ausgangspins auf einer Seite (3,4 auf der linken Seite). Verbinden Sie die Eingangspins (2,7) mit zwei verschiedenen Pins auf dem Arduino. Wenn Sie beiden Pins das gleiche Signal (HIGH oder LOW) geben, stoppt der Motor. Wenn Sie HIGH von einem Pin und LOW vom anderen geben, dreht der Motor im Uhrzeigersinn oder gegen den Uhrzeigersinn, je nachdem, welcher Pin welches Signal hat.
Wenn Sie einen unidirektionalen Motor wünschen und Pins sparen möchten, schließen Sie einen der Eingangspins auf GND. Wenn nun der andere Eingangspin LOW ist, ist der Motor ausgeschaltet, und wenn er HIGH ist, ist der Motor eingeschaltet.
Sie können einen anderen Motor mit dem gleichen Verfahren am gegenüberliegenden Ende des Chips anbringen, wenn Sie möchten.
Der L293D zieht eine kleine Menge Strom vom Arduino und versorgt den Motor mit Strom, der über Pin 8 gezogen wird, und ist normalerweise ideal für solche Situationen.
abdullah kahraman
Om23
Anindo Ghosh