Gibt es eine Möglichkeit, mehr PWMs von Arduino Board zu bekommen?

Ich möchte 4 Stepper mit Arduino UNO steuern und mir fehlen PWMs. In jedem Tutorial über das Web haben sie PWM-Pin verwendet, in diesem Fall kann ich höchstens zwei Stepper mit Arduino verwenden nur PWM sein, das verwendet werden soll, oder gibt es eine Möglichkeit, PWMs auf meinem Board entweder mit Software oder Hardware zu erweitern? Zum Beispiel: Wir verwenden eine Softwareserienbibliothek, um Rx-, Tx-Pins zu erhalten.

Hier sind einige der Tutorials:

http://learn.adafruit.com/adafruit-arduino-lesson-16-stepper-motors/stepper-motors

http://arduino.cc/en/Tutorial/MotorKnob

Ich habe jetzt keine Zeit für eine wirkliche Antwort, also schreibe ich einfach Folgendes: Sie können PWM ohne Probleme in Software ausführen. Der einfachste Weg, dies zu tun, wäre, eine Schleife zu erstellen, die das Zählen durchführt. Setzen Sie zu Beginn einen Pin auf High und überprüfen Sie dann bei jedem Schleifendurchlauf den Zählerwert. Sobald der Prozentsatz der Zeit erreicht ist, für die der Pin hoch sein muss, setzen Sie den Pin auf niedrig. Eine andere, weniger prozessorintensive Möglichkeit wäre, Timer-Interrupts einzurichten und dann den Pin-Status in der Interrupt-Service-Routine festzulegen.
Dies ist nur eine Info. Behalten Sie den Arduino-Vorschlag in Area 51 im Auge .
Kann jemand erklären, wie genau PWM den Motor antreibt? Ich meine, warum werden 3PWMs-Pins (für 4-Draht-Stepper) benötigt?

Antworten (1)

Es gibt eine Funktion in Arduino analogWrite() , die PWM-Wellen erzeugen kann. Jeder analoge Pin kann in einen PWM-Ausgangspin umgewandelt werden. Aber das ist softwaregesteuert. Ihr Code wird also die meiste Zeit damit verbringen, die PWM-Signale zu erzeugen, anstatt andere nützliche Arbeiten auszuführen.

Es gibt auch ein PWM-Schild von Sparkfun. Versuchen Sie, dieses selbst zu machen (Schaltung ist verfügbar) oder kaufen Sie ein Board - https://www.sparkfun.com/products/10615

Verwenden Sie kein PWM zur Steuerung von Schrittmotoren. Dies ist eine komplexe Methode. Auch wenn Sie PWM zur Steuerung von Schrittmotoren verwenden, benötigen Sie zusätzlich einen H-Brücken-/Treiber-IC (Arduino kann Motoren nicht direkt antreiben, da Arduino nur sehr wenig Strom liefern kann, was nicht ausreicht, damit Motoren funktionieren).

Verwenden Sie Schrittmotortreiber zur Steuerung von Schrittmotoren. Sie benötigen keine PWM-Ausgänge, um diese Schritttreiber anzusteuern. Es werden nur GPIO-Pins benötigt. Auch diese Schrittmotortreiber enthalten auch die H-Brücke/Treiber-IC. Überprüfen Sie diesen Link, der erklärt, wie Schrittmotoren mit Schritttreibern und deren Anschlussplan gesteuert werden.

http://www.pololu.com/product/1182

Lassen Sie mich Ihnen sagen, was ich versuche zu machen, das ist meine eigentliche Frage electronic.stackexchange.com/questions/94723/… Ich versuche tatsächlich, die Stepper zu implementieren und auszuführen, indem ich Stepper-Treiber selbst mache. Ich habe früher l293d verwendet aber das nutzt PWM-Pin. Ich denke, ich kann die bereits gebauten Motortreiber nicht verwenden, da sie viel kosten
Wenn Schrittmotortreiber teurer sind, dann sind H-Brücken die nächste Option. Die Verwendung von Software zur Erzeugung von PWM ist keine gute Option, insbesondere wenn Sie andere Arbeiten mit Ihrem Arduino ausführen müssen. PWM sollte mit den Hardwaremodulen erzeugt werden. Arduino Mega hat im Vergleich zu Uno nur wenige mehr. Sie müssen einen Arduino Mega verwenden, um den Schrittmotor zusammen mit L293D anzutreiben. Überprüfen Sie diesen Link (Arduino Mega und Stepper-Treiber) reprap.org/wiki/Arduino_Mega_Pololu_Shield
Vielen Dank für Ihre Antwort. Haben Sie meine Frage gelesen? Mein ganzes Motiv ist es, Schritttreiber herzustellen, damit ich meine Motoren betreiben kann. Ich mache kaum andere Dinge mit dem Arduino. Kann ich also ein einzelnes uno selbst verwenden, um die Treiber mit L293D zu erstellen? Welche Softwareänderungen muss ich vornehmen? Funktioniert diese Stepper-Bibliothek ohne PWMs überhaupt nicht? Ich möchte Geschwindigkeits-, Schritt- und Richtungskontrolle, könnte ich das dann erreichen? Danke @robomon , du bist sehr hilfreich. Schöne Feiertage und frohe Weihnachten :)
Gern geschehen! Bitte stimmen Sie für meine Antwort, wenn Sie sie nützlich fanden. Sie können 1 Motor mit Arduino antreiben, aber das Antreiben von mehr erfordert PWM-Module, die Geld kosten. Überprüfen Sie diese Links learn.adafruit.com/… , arduino.cc/en/Tutorial/StepperUnipolar