Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
elektronik:schrittmotorsteuerung_mit_dem_easydriver [2013/04/18 17:27] – [EasyDriver am Arduino] Fehler behoben octoate | elektronik:schrittmotorsteuerung_mit_dem_easydriver [2013/05/02 22:27] – Formatierung der Überschriften octoate | ||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
Für mein [[sonstiges: | Für mein [[sonstiges: | ||
- | ===== EasyDriver ===== | + | ====== EasyDriver |
{{: | {{: | ||
Zeile 10: | Zeile 10: | ||
**Wichtig: | **Wichtig: | ||
- | ===== Schrittmotor ===== | + | ====== Schrittmotor |
{{: | {{: | ||
Zeile 24: | Zeile 24: | ||
{{: | {{: | ||
- | ===== EasyDriver am Arduino ===== | + | ====== EasyDriver am Arduino |
Beim Anschluss an den Arduino habe ich mich ganz nach einem Tutorial auf [[http:// | Beim Anschluss an den Arduino habe ich mich ganz nach einem Tutorial auf [[http:// | ||
Hier also der Schaltplan für die Verbindung des Arduino Uno mit dem EasyDriver und einem Schrittmotor: | Hier also der Schaltplan für die Verbindung des Arduino Uno mit dem EasyDriver und einem Schrittmotor: | ||
Zeile 31: | Zeile 31: | ||
In meinem Setup habe ich zusätzlich noch ein paar Stecker und Buchsen verbaut, um einfachere Kabeldurchführungen in den Projektor zu ermöglichen und um evtl. später selbst Teile einfach austauschen zu können. | In meinem Setup habe ich zusätzlich noch ein paar Stecker und Buchsen verbaut, um einfachere Kabeldurchführungen in den Projektor zu ermöglichen und um evtl. später selbst Teile einfach austauschen zu können. | ||
+ | |||
+ | ===== Ansteuerung (Quellcode) ===== | ||
+ | Glücklicherweise hat [[http:// | ||
+ | |||
+ | Beiden Methoden kann man zusätzlich noch einen " | ||
+ | |||
+ | In der " | ||
+ | |||
+ | <code c 1> | ||
+ | ////////////////////////////////////////////////////////////////// | ||
+ | //©2011 bildr | ||
+ | //Released under the MIT License - Please reuse change and share | ||
+ | //Using the easy stepper with your Arduino | ||
+ | //use rotate and/or rotateDeg to control stepper motor | ||
+ | //speed is any number from .01 -> 1 with 1 being fastest - | ||
+ | //Slower Speed == Stronger movement | ||
+ | ///////////////////////////////////////////////////////////////// | ||
+ | |||
+ | |||
+ | #define DIR_PIN 2 | ||
+ | #define STEP_PIN 3 | ||
+ | |||
+ | void setup() { | ||
+ | pinMode(DIR_PIN, | ||
+ | pinMode(STEP_PIN, | ||
+ | } | ||
+ | |||
+ | void loop(){ | ||
+ | |||
+ | //rotate a specific number of degrees | ||
+ | rotateDeg(360, | ||
+ | delay(1000); | ||
+ | |||
+ | rotateDeg(-360, | ||
+ | delay(1000); | ||
+ | |||
+ | |||
+ | //rotate a specific number of microsteps (8 microsteps per step) | ||
+ | //a 200 step stepper would take 1600 micro steps for one full revolution | ||
+ | rotate(1600, | ||
+ | delay(1000); | ||
+ | |||
+ | rotate(-1600, | ||
+ | delay(1000); | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | void rotate(int steps, float speed){ | ||
+ | //rotate a specific number of microsteps (8 microsteps per step) - (negitive for reverse movement) | ||
+ | //speed is any number from .01 -> 1 with 1 being fastest - Slower is stronger | ||
+ | int dir = (steps > 0)? HIGH:LOW; | ||
+ | steps = abs(steps); | ||
+ | |||
+ | digitalWrite(DIR_PIN, | ||
+ | |||
+ | float usDelay = (1/speed) * 70; | ||
+ | |||
+ | for(int i=0; i < steps; i++){ | ||
+ | digitalWrite(STEP_PIN, | ||
+ | delayMicroseconds(usDelay); | ||
+ | |||
+ | digitalWrite(STEP_PIN, | ||
+ | delayMicroseconds(usDelay); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void rotateDeg(float deg, float speed){ | ||
+ | //rotate a specific number of degrees (negitive for reverse movement) | ||
+ | //speed is any number from .01 -> 1 with 1 being fastest - Slower is stronger | ||
+ | int dir = (deg > 0)? HIGH:LOW; | ||
+ | digitalWrite(DIR_PIN, | ||
+ | |||
+ | int steps = abs(deg)*(1/ | ||
+ | float usDelay = (1/speed) * 70; | ||
+ | |||
+ | for(int i=0; i < steps; i++){ | ||
+ | digitalWrite(STEP_PIN, | ||
+ | delayMicroseconds(usDelay); | ||
+ | |||
+ | digitalWrite(STEP_PIN, | ||
+ | delayMicroseconds(usDelay); | ||
+ | } | ||
+ | } | ||
+ | </ |