Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
elektronik:schrittmotorsteuerung_mit_dem_easydriver [2013/05/02 22:24]
octoate [EasyDriver am Arduino] Quelltext
elektronik:schrittmotorsteuerung_mit_dem_easydriver [2014/03/13 08:23]
octoate [Einstellung der Spulenstrombegrenzung] Wording...
Zeile 2: Zeile 2:
 Für mein [[sonstiges:super8scanner|Super 8 Schmalfilm Scanner]] Projekt musste ich mit einem Arduino einen Schrittmotor ansteuern, um die Mechanik des Projektors immer um ein Einzelbild weiter / zurück zu bewegen. Um mir eine Eigenbaulösung einer Schrittmotorsteuerung zu sparen, fiel die Wahl auf den EasyDriver Schrittmotortreiber, der von SparkFun produziert wird, da er recht einfach anzusteuern ist. In Deutschland ist er u.a. bei [[http://www.watterott.com|Watterott]] zu bekommen. An den Schrittmotor hatte ich keine weiteren Anforderungen, ausser, dass er mit dem EasyDriver zusammenarbeiten sollte, also einen Spulenstrom von unter 750mA benötigt. Für mein [[sonstiges:super8scanner|Super 8 Schmalfilm Scanner]] Projekt musste ich mit einem Arduino einen Schrittmotor ansteuern, um die Mechanik des Projektors immer um ein Einzelbild weiter / zurück zu bewegen. Um mir eine Eigenbaulösung einer Schrittmotorsteuerung zu sparen, fiel die Wahl auf den EasyDriver Schrittmotortreiber, der von SparkFun produziert wird, da er recht einfach anzusteuern ist. In Deutschland ist er u.a. bei [[http://www.watterott.com|Watterott]] zu bekommen. An den Schrittmotor hatte ich keine weiteren Anforderungen, ausser, dass er mit dem EasyDriver zusammenarbeiten sollte, also einen Spulenstrom von unter 750mA benötigt.
  
-===== EasyDriver =====+====== EasyDriver ======
  
 {{:elektronik:668x400xeasydriver_v44_description.png?400|}} {{:elektronik:668x400xeasydriver_v44_description.png?400|}}
Zeile 10: Zeile 10:
 **Wichtig:** Der EasyDriver unterteilt einen Einzelschritt in 8 Mikroschritte, d.h. dass bei meinem Schrittmotor mit 200 Schritten pro Umdrehung insgesamt 1600 Mikroschritte (Impulse am Step Eingang) für eine Umdrehung benötigt werden. **Wichtig:** Der EasyDriver unterteilt einen Einzelschritt in 8 Mikroschritte, d.h. dass bei meinem Schrittmotor mit 200 Schritten pro Umdrehung insgesamt 1600 Mikroschritte (Impulse am Step Eingang) für eine Umdrehung benötigt werden.
  
-===== Schrittmotor =====+====== Schrittmotor ======
  
 {{:elektronik:schrittmotor-1.jpg?200|}} {{:elektronik:schrittmotor-2.jpg?200|}} {{:elektronik:schrittmotor-1.jpg?200|}} {{:elektronik:schrittmotor-2.jpg?200|}}
Zeile 24: Zeile 24:
 {{:elektronik:schrittmotor-sm-42byg011-25.pdf|Datenblatt}} {{:elektronik:schrittmotor-sm-42byg011-25.pdf|Datenblatt}}
  
-===== EasyDriver am Arduino =====+====== EasyDriver am Arduino ======
 Beim Anschluss an den Arduino habe ich mich ganz nach einem Tutorial auf [[http://bildr.org/2011/06/easydriver/|Bildr.org]] gerichtet. Da noch ein Arduino Uno zur Verfügung stand und im Projektor auch noch genug Platz war, sprach nichts dagegen sich genau an die Anleitung zu halten. Selbst die Farben der Kabel meines Schrittmotors stimmen mit der Anleitung überein. Beim Anschluss an den Arduino habe ich mich ganz nach einem Tutorial auf [[http://bildr.org/2011/06/easydriver/|Bildr.org]] gerichtet. Da noch ein Arduino Uno zur Verfügung stand und im Projektor auch noch genug Platz war, sprach nichts dagegen sich genau an die Anleitung zu halten. Selbst die Farben der Kabel meines Schrittmotors stimmen mit der Anleitung überein.
 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 32: Zeile 32:
 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) ====+===== Einstellung der Spulenstrombegrenzung ===== 
 +Die technischen Daten oben zeigen, dass mein Schrittmotor üblicherweise mit 330mA arbeitet. Wenn man ein Netzteil am EasyDriver verwendet, das auch die Spannung erzeugt, die der Schrittmotor benötigt, braucht man am EasyDriver den Ausgangsstrom für die Spulen nicht begrenzen, da der Innenwiderstand des Schrittmotors den Strom begrenzt. Verwendet man aber ein Netzteil mit einer höheren Spannung als der Schrittmotor benötigt, muss man den Strom begrenzen, damit man den Schrittmotor nicht zerstört. Zum Einstellen wird ein Multimeter mit TP1 und GND verbunden und die Spannung an diesem Punkt gemessen. 1V entspricht einer Begrenzung von 150mA und 5V einer Begrenzung von 750mA. Durch simplen Dreisatz erhält man dann den einzustellenden Spannungswert. In meinem Fall waren das 2.2V. 
 +===== Ansteuerung (Quellcode) =====
 Glücklicherweise hat [[http://bildr.org/2011/06/easydriver/|Bildr]] zwei Routinen für den Arduino unter MIT Lizenz zur Verfügung gestellt, mit der man ganz einfach einen Schrittmotor mit dem EasyDriver ansteuern kann. Die Pins lassen sich, wie bei Arduino Sketches üblich, gleich zu Beginn festlegen, sodass man die Routinen schnell an die eigenen Bedürfnisse anpassen kann. Mit der Methode "rotateDeg" kann man den Schrittmotor um einen zu übergebenden Winkel weiterdrehen (bspw. 90 für 90 Grad), wobei negative Winkel den Schrittmotor zurückdrehen. Mit der Methode "rotate" kann man den Schrittmotor um die zu übergebende Anzahl an Microsteps weiterbewegen, wobei durch das Design des EasyDrivers ein Schritt des Schrittmotors 8 Microsteps sind (siehe oben). Auch hier gilt, dass negative Werte den Schrittmotor rückwärts laufen lassen. Glücklicherweise hat [[http://bildr.org/2011/06/easydriver/|Bildr]] zwei Routinen für den Arduino unter MIT Lizenz zur Verfügung gestellt, mit der man ganz einfach einen Schrittmotor mit dem EasyDriver ansteuern kann. Die Pins lassen sich, wie bei Arduino Sketches üblich, gleich zu Beginn festlegen, sodass man die Routinen schnell an die eigenen Bedürfnisse anpassen kann. Mit der Methode "rotateDeg" kann man den Schrittmotor um einen zu übergebenden Winkel weiterdrehen (bspw. 90 für 90 Grad), wobei negative Winkel den Schrittmotor zurückdrehen. Mit der Methode "rotate" kann man den Schrittmotor um die zu übergebende Anzahl an Microsteps weiterbewegen, wobei durch das Design des EasyDrivers ein Schritt des Schrittmotors 8 Microsteps sind (siehe oben). Auch hier gilt, dass negative Werte den Schrittmotor rückwärts laufen lassen.
 +
 Beiden Methoden kann man zusätzlich noch einen "Speed" Wert mit übergeben. Dieser Wert liegt zwischen 0 und 1, wobei 1 eine schnelle Bewegung, die aber weniger kraftvoll ist, beschreibt und 0.01 der langsamste Wert, dafür aber kraftvoller, ist. Beiden Methoden kann man zusätzlich noch einen "Speed" Wert mit übergeben. Dieser Wert liegt zwischen 0 und 1, wobei 1 eine schnelle Bewegung, die aber weniger kraftvoll ist, beschreibt und 0.01 der langsamste Wert, dafür aber kraftvoller, ist.
-In der "loop" Methode kann man schön die Verwendung der beiden Methoden sehen. + 
 +In der "loop" Methode kann man die Verwendung der beiden Methoden sehen. 
  
 <code c 1> <code c 1>
elektronik/schrittmotorsteuerung_mit_dem_easydriver.txt · Zuletzt geändert: 2014/03/13 08:23 von octoate
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0