de:arduino:stepper

Differences

This shows you the differences between two versions of the page.

de:arduino:stepper [2022/04/21 15:00] ()
 1:  1:
 +{{ :hu:arduino:stepper.png?300|stepper}}
 +====== Schrittmotoren ======
 +Grundsätzlich gibt es zwei Möglichkeiten, Schrittmotoren von Arduino aus zu steuern. Es ist einfacher und billiger, wenn die Steuerung direkt von der Karte durchgeführt wird, d. H. Durch einige Verstärkererweiterungen wird die (normalerweise) Vierdrahtsteuerung direkt durchgeführt. Die andere, etwas teurere Lösung besteht darin, dass die anderen Funktionen in der externen Steuerung ausgeführt werden, wenn die Karte nur ein Freigabesignal, eine Richtung und einen Schrittimpuls an eine komplexe Steuerung ausgibt.
 +
 +Ein weiterer wichtiger Parameter ist die Motorleistung und die Auflösung der Schritte, entlang derer das Lösungsspektrum von den einfachsten bis zu den komplexesten recht breit ist.
 +
 +Vergleich verschiedener Steuerungen, ICs und Lösungen:
 +
 +^IC/Lösung^Art der Lösung^Ausgang \\ Strom (Spannung) \\ Maximum^andere|
 +|**[[#tb6560|TB6560]]**|**Regler** für 2- oder 4-Phasen-Motoren|3.0A (peak 3,5A)|- Full & 1/2-1/8, 1/16 Microstep\\ - eingebauter Wärmeschutz\\ -Stromversorgung: 10..35VDC|
 +|**[[#tb6600|TB6600]]**|**Regler** für 2- oder 4-Phasen-Motoren|3.5A (peak 4A)|- Full & 1/2-1/8, 1/16, 1/32 Microstep\\ - eingebauter Wärmeschutz, Kühlkörper\\ -Stromversorgung: 10..40VDC|
 +|**[[#dm542|DM542]]**|**Regler** für 2- oder 4-Phasen-Hibridmotoren|1.0 ~ 4.2A|Impulse/Umdrehung 400 - 25.000\\ - kompakt kivitel\\ -Stromversorgung: +20..50VDC (tipikusan 36VDC)|
 +|**[[#dm556|DM556]]**|**Regler** für 2- oder 4-Phasen-Hibridmotoren|1.8 ~ 5.6A|Impulse/Umdrehung 400 - 25.000\\ - kompakt kivitel\\ -Stromversorgung: +20..50VDC (tipikusan 24-48VDC)|
 +|**[[#dm860h|DM860H]]**|**Regler** für 2- oder 4-Phasen-Hibridmotoren|2.4 ~ 7.2A|Impulse/Umdrehung 400 - 25.000\\ - kompakt kivitel\\ -Stromversorgung: DC24..80V oder AC18..50V|
 +|**[[#a3967|A3967 - "EasyDriver"]]**|**Regler** für 2-Phasen-Motoren|max 1.5A|Impulse/Umdrehung 200 - 1.600\\ -Stromversorgung: DC7..30V|
 +|**[[#uln2003|ULN2003]]**|**serieller Signalverstärker**: 7 Darlington Line IC|50 mA (50V)|- Geeignet für die Signalverstärkung eines 4-Phasen- oder drei 2-Phasen-Motors mit geringer Leistung|
 +|**[[#l293d|L293D]]**|**serieller Signalverstärker**: 4 Halb-H-Brückensteuerung|600 mA (36V)|- wurde nicht für Schrittmotoren erfunden, kann aber verwendet werden|
 +|**[[#l6219|L6219]]**|Schrittmotor **Steuer-IC**|750 mA (46V)|- komplette Schrittmotorsteuerung mit PWM|
 +|**[[#l297|L297]]**|Schrittmotor **Steuer-IC**|||
 +|**[[#l298n|L298N]]**|Doppel (FULL-BRIDGE) **Leistungsverstärker-IC** oder Modul|4.0A|- Die Ausgangsleistung ist maximal 25W \\ - arbeitet mit L297 zusammen|
 +
 +====== TB6560 ======
 +{{ :wiki:arduino:tb6560.jpg?250|TB6560}}
 +Die am häufigsten verwendeten CNC-Steuerungen sind TB6560-basierte Panels oder eine verbesserte Version davon. der TB6600 (siehe unten). Es wird normalerweise zum Antreiben der NEMA 17 - 23-Serie verwendet.
 +
 +=== technische Daten ===
 +**Stromversorgung:** 32 VDC \\
 +**Ausgangsstrom:** maximal 3,0 A, 7 Ausgangsstrompegel wählbar \\
 +**Ausgangsfrequenz:** maximal 20 kHz \\
 +**Motortyp:** Kann auch für 2- und 4-Phasen-Motoren verwendet werden \\
 +**Auflösung:** bis zu 3200 Schritte/Umdrehung (Mikroschrittsteuerung) \\
 +
 +^Parameter^Minimum^Typisch^Maximum|
 +|Ausgangsstrom|0,6 A|-|3.0 A (peak 3,5A)|
 +|Stromversorgung|7 V DC|24 V DC|35 V DC|
 +|Eingangsfrequenz|640 Hz|-|20.000 Hz|
 +|Ausgangsfrequenz|0 Hz|-|16.000 Hz|
 +|Ausgangsspannung H/L|4,5 / 0 VDC|5 / 0 VDC|5,5 / 0,5 VDC|
 +
 +====== TB6600 ======
 +Der TB6600 ist eine erweiterte Version des TB65600. Unterschiede zwischen den beiden Typen:
 +^Parameter^TB6560^TB6600|
 +|Betriebsspannung|DC 10V-35V|DC 10-40V| 
 +|Mikroschrittsteuerung|Full, half, 1/4, 1/8, 1/16|Full, half, 1/4, 1/8, 1/16, és 32th|
 +|Maximaler Ausgangsstrom|± 3.0A|± 3.5A|
 +|Momentaner maximaler Strom (peak)|3.5A|4A|
 +
 +Der TB6600 ist außerdem mit einem Kühlkörper ausgestattet. Der TB6600 ist normalerweise in zwei Versionen auf dem Markt erhältlich:
 +^{{ :wiki:arduino:tb6600_1.jpg?300 |TB6600 panel}}^{{ :wiki:arduino:tb6600_2.jpg?300 |TB6600 mit Gehaus}}|
 +
 +==== Verdrahtung des TB6600 ====
 +{{ :wiki:arduino:tb6600_wir.jpg?400 |Verdrahtung des TB6600}}
 +
 +<WRAP center round important 80%>
 +Es ist wichtig zu beachten, dass für alle diese Steuerungen die gemeinsame Signalleitung immer an 5 V + angeschlossen sein muss.
 +</WRAP>
 +
 +====== DM542, DM556, DM860H ====== 
 +{{ :wiki:arduino:dm.png?250|DM556}}
 +{{anchor:dm542}}
 +{{anchor:dm556}}
 +{{anchor:dm860h}}
 +Die DM-Serie ist ein vielseitiges, volldigitales Laufwerk, das auf DSP-Steuerung mit modernster Steuerungssoftware basiert. Geeignet für Zweiphasen- und Vierphasen-Hybrid-Schrittmotoren.
 +
 +^paraméter^DM542^DM556^DM860H|
 +|Ausgangsstrom (+peak)|1.0..4.2A (3.0 RMS)|1.8..5.6A (4.0 RMS)|2.4..7.2A|
 +|Eingangsspannung|+20..50VDC (typischerweise 36VDC)|+20..50VDC (typischerweise 24..48VDC)|DC24..80V oder AC18..50V|
 +|Signalstrom|7~16mA (typischerweise 10mA)| 7~16mA (typischerweise 10mA)| 7~16mA (typischerweise 10mA)|
 +
 +Der Schrittmotorstrom und die Mikroschrittregelung können an den Reglern eingestellt werden.
 +
 +==== DM-Verkabelung ====
 +{{ :wiki:arduino:dm_wiring.png?400 |DM-Verkabelung}}
 +
 +<WRAP center round important 80%>
 +Es ist wichtig zu beachten, dass für alle diese Steuerungen die gemeinsame Signalleitung immer an 5 V + angeschlossen sein muss.
 +</WRAP>
 +
 +====== A3967 -  "EasyDriver" ======
 +{{ :wiki:arduino:easydriver_v43_top.png?200|EasyDriver V4.3}}
 +{{anchor:a3967}}
 +{{anchor:easydriver}}
 +
 +Die EasyDriver-Serie wurde von [[https://www.schmalzhaus.com/EasyDriver/|schmalzhaus]] entwickelt und bietet eine relativ einfache Lösung zur Steuerung von Schrittmotoren. EasyDriver benötigt ca. Es kann 750 mA pro Phase in einem bipolaren Schrittmotor ansteuern. **Dies bedeutet, dass für eine Vierdraht-NEMA der maximale Stromverbrauch 1,5 A betragen kann - dies ist ziemlich dünn.**
 +
 +Standardmäßig gibt es 8 Einstellmodi für Mikroschritte. Wenn der Motor 200 volle Schritte pro Umdrehung ausführt, können mit EasyDriver 1600 Schritte pro Umdrehung erreicht werden. Sie können diese Einstellung leicht überschreiben, indem Sie die Pins MS1 / MS2 erden. EasyDriver basiert auf Allegro A3967 IC. Das {{ :wiki:downloads:a3967.pdf |IC-Typenblatt finden Sie hier}}. 
 +
 +Der IC verfügt über einen Wärmeschutz, schaltet spätestens über 165 °C ab, begrenzt jedoch die Steuerung über 65 °C (siehe Typenblatt oben). Die Betriebstemperatur des IC ist bereits hoch, es lohnt sich, einen zusätzlichen Kühlkörper hinzuzufügen.
 +
 +Die maximale Antriebsspannung des Motors kann ca. 30 V betragen, dazu gehört die 5 V-Steuerung, es ist nur eine Stromversorgung erforderlich. Die Stromregelung kann mit dem Knopf am Bedienfeld zwischen 150 mA / Phase und 750 mA / Phase eingestellt werden.
 +
 +Die Stromversorgung des Moduls muss zwischen 7V und 30V bleiben.
 +
 +Den Schaltplan des EasyDriver-Moduls  {{ :wiki:downloads:easydriver_v45_sch.pdf |finden Sie hier.}}
 +
 +===== Modulanschlüsse =====
 +{{:wiki:arduino:easydriver.png?800|EasyDriver v4.3}}
 +
 +**DIR:** Richtungseingabe \\
 +**STEP:** Schritteingabe \\
 +**GND:** GND \\
 +**MS1:** Microstep select 1 input, siehe unten \\
 +**SLP:** Sleep mode (negiert!) \\
 +**+5V:** +5v Ausgang \\
 +**GND:** GND \\
 +**M+:** Power in + (7..30v) \\
 +**GND:** Power in- \\
 +**MS2:** Microstep select 2 input, siehe unten \\
 +**ENABLE:** Enable input (negiert!) \\
 +**RST:** Reset input (negiert!)  \\
 +**PFD:** Percent Fast Decay Input, mode select with 3 voltage-level \\
 +**B:** Motor coil A \\
 +**B:** Motor coil A \\
 +**A:** Motor coil B \\ 
 +**A:** Motor coil B \\
 +**CUR ADJ:** \\
 +
 +==== MS1-MS2 pins ====
 +Codierung der Pins MS1, MS2 (MS:Mikroschritt):
 +
 +^MS1^MS2^Auflösung|
 +|L|L|Full step (2 phase)|
 +|H|L|Half step|
 +|L|H|Quarter step|
 +|H|H|Eighth step|
 +
 +==== PFD Pin ====
 +Mit dem PFD können 3 Modi ausgewählt werden:
 +
 +PFD bemenet > 0,6V: „slow-decay” Modi \\
 +PFD bemenet < 0,21V: „fast-decay” Modi \\
 +PFD bemenet > 0,21V és  < 0,6V: „mixed-decay” Modi \\
 +
 +===== Verdrahtung =====
 +
 +{{:wiki:arduino:easydriver_wiring.jpg?400|EasyDriver Verdrahtung}}
 +
 +==== Beispielprogramm ====
 +
 +Roundtrip-Testprogramm
 +
 +<hidden Software zeigen>
 +<code c>
 +int smDirectionPin = 2; //Direction pin
 +int smStepPin = 3; //Stepper pin
 + 
 +void setup(){
 +  /*Sets all pin to output; the microcontroller will send them(the pins) bits, it will not expect to receive any bits from thiese pins.*/
 +  pinMode(smDirectionPin, OUTPUT);
 +  pinMode(smStepPin, OUTPUT);
 + 
 +  Serial.begin(9600);
 +}
 + 
 +void loop(){
 +  digitalWrite(smDirectionPin, HIGH); //Writes the direction to the EasyDriver DIR pin. (HIGH is clockwise).
 +  /*Slowly turns the motor 1600 steps*/
 +  for (int i = 0; i < 1600; i++){
 +    digitalWrite(smStepPin, HIGH);
 +    delayMicroseconds(700);
 +    digitalWrite(smStepPin, LOW);
 +    delayMicroseconds(700);
 +  }
 + 
 +  delay(1000); //Pauses for a second (the motor does not need to pause between switching direction, so you can safely remove this)
 + 
 +  digitalWrite(smDirectionPin, LOW); //Writes the direction to the EasyDriver DIR pin. (LOW is counter clockwise).
 +  /*Turns the motor fast 1600 steps*/
 +  for (int i = 0; i < 1600; i++){
 +    digitalWrite(smStepPin, HIGH);
 +    delayMicroseconds(70);
 +    digitalWrite(smStepPin, LOW);
 +    delayMicroseconds(70);
 +  }
 + 
 +  delay(1000);
 +}
 +</code>
 +</hidden>
 +
 +====== L297 / L298N ======
 +{{anchor:l297}}
 +{{anchor:l298n}}
 +L297 ist ein Schrittmotor-Steuer-IC, während L298N hierfür eine (Vollbrücken-) Ausgangsstufe ist. Der L297 kann natürlich weggelassen werden. In diesem Fall muss der Arduino auch eine direkte Schrittmotorsteuerung durchführen.
 +
 +===== Direkte Arduino-Steuerung ohne L297 =====
 +
 +===== Arduino + L297 + L298N (oder ULN2003) =====
 +
 +{{:wiki:arduino:l297pluszl298n.png|Arduino + L297 + L298N}}
 +
 +Die Arduino-Verbindung kann natürlich auf ein Projekt zugeschnitten werden. Die minimale Verbindung erfordert 2 Drähte (DIR / CLOCK), aber in komplexeren Lösungen können wir mehr steuern. IC-Pinbelegung:
 +
 +{{:wiki:arduino:l297pin.png?200|L297 Pinbelegung}}
 +
 +^Pin^Name^Funktion|
 +|1|SYNC|Der Ausgang des Scheduler-Oszillators, wenn mehrere ICs synchronisiert werden müssen|
 +|2|GND|GND|
 +|3|HOME|Open Collector-Ausgang, der anzeigt, wann sich L297 im Ausgangszustand befindet (ABCD = 0101).|
 +|4|A|Motorphasenausgang zum Verstärker|
 +|5|INH1|Zwischenlaststromausgang (A-B)|
 +|6|B|B Motorphasenausgang an den Verstärker|
 +|7|C|C Motorphasenausgang an den Verstärker|
 +|8|INH2|Zwischenlaststromausgang (C-D)|
 +|9|D|D Motorphasenausgang an den Verstärker|
 +|10|ENABLE|Schlüssellizenzierung. Wenn LO, dann sind INH1, INH2, A, B, C und D ebenfalls LO.|
 +|11|CONTROL|Der Eingang des Controllers, der den Zeitplan bestimmt. LO: Steuert INH1 und INH2, HI: Steuert den Motorphasenausgang (ABCD)|
 +|12|Vs|5V Stromversorgung|
 +|13|SENS2|Phase C und D Leistungsstufeneingang. Es wird normalerweise nicht verwendet, da die Leistungsverstärkung typischerweise von einem anderen IC durchgeführt wird, z. L298N oder ULN2003.|
 +|14|SENS1|Phase A und B Leistungsstufeneingang. Es wird normalerweise nicht verwendet, da die Leistungsverstärkung typischerweise von einem anderen IC durchgeführt wird, z. L298N oder ULN2003.|
 +|15|Vref|Referenzspannung für den Leistungsschalter. Die Spannung an diesem Eingang bestimmt die maximale Ausgangsspannung|
 +|16|OSC|Synchronisierungsmodus einschalten|
 +|17|CW/CCW|Drehung des Motors im oder gegen den Uhrzeigersinn (dies hängt auch von der physischen Verbindung ab)|
 +|18|CLOCK|Bewegung. LO-Trigger: ein Schritt|
 +|19|HALF/FULL|Halben oder vollen Schritt wählen. LO: Halb, HI: Voll|
 +|20|RESET|Eingang zurücksetzen. LO: Reset: ABCD = 0101|
 +
  
  • de/arduino/stepper.txt
  • 2022/04/21 15:00
  • ()