meta data for this page
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
uebung:itt11:stepper-motor_ansteuern [2023/01/13 15:01] juergenhaasuebung:itt11:stepper-motor_ansteuern [2024/04/24 08:42] (aktuell) juergenhaas
Zeile 6: Zeile 6:
 Der Stepper-Motor aus dem Beispiel verfügt über 4 getrennt voneinander ansteuerbare Wicklungen, weswegen auch das Board mit dem Steuerungsmodul für den Motor über 4 Anschlüsse verfügt. Der Stepper-Motor aus dem Beispiel verfügt über 4 getrennt voneinander ansteuerbare Wicklungen, weswegen auch das Board mit dem Steuerungsmodul für den Motor über 4 Anschlüsse verfügt.
  
-<code javascript Stepper-Motor_manually_minimal.ino>+Der hier dargestellte Quellcode kommt ohne die Verwendung einer Bibliothek aus. 
 + 
 +**Wichtig:** Am Ende einer Drehbewegung müssen alle Motorspulen stromlos geschaltet werden, damit der Motor im Stillstand nicht von Strom durchflossen wird und Schaden nimmt. 
 + 
 +<code cpp Stepper-Motor_manually_minimal.ino>
 /* /*
  * PIN-Belegung:  * PIN-Belegung:
  * Pins D0-D3 des NodeMCU an Pins IN1-IN4 am Motorboard  * Pins D0-D3 des NodeMCU an Pins IN1-IN4 am Motorboard
 + * Stromversorgung (5V) an VCC und GND
    
  * Motor dreht in der Schleife abwechselnd links und rechts herum.  * Motor dreht in der Schleife abwechselnd links und rechts herum.
Zeile 33: Zeile 38:
   {LOW, LOW, LOW, HIGH},      // Motors vor dem Getriebe durch   {LOW, LOW, LOW, HIGH},      // Motors vor dem Getriebe durch
   {LOW, LOW, HIGH, HIGH},     // Beschaltung der 4 Motorwicklungen   {LOW, LOW, HIGH, HIGH},     // Beschaltung der 4 Motorwicklungen
-  {LOW, LOW, HIGH, LOW}, +  {LOW, LOW, HIGH, LOW},      // Es wird immer abwechselnd eine 
-  {LOW, HIGH, HIGH, LOW}, +  {LOW, HIGH, HIGH, LOW},     // einzelne Wicklung und dann 2  
-  {LOW, HIGH, LOW, LOW}, +  {LOW, HIGH, LOW, LOW},      // benachbarte Wicklungen gleichzeitig 
-  {HIGH, HIGH, LOW, LOW}, +  {HIGH, HIGH, LOW, LOW},     // aktiviert. Dadurch kommen bei 4 
-  {HIGH, LOW, LOW, LOW}, +  {HIGH, LOW, LOW, LOW},      // Wicklungen 8 Einzelschritte bei  
-  {HIGH, LOW, LOW, HIGH}+  {HIGH, LOW, LOW, HIGH}      // einer Umdrehung zustande.
 }; };
-const float sndSpd = 0.034; // Schallgeschwindigkeit in cm pro us 
  
 // globale Variablen // globale Variablen
 int curStep = 0;  // aktueller Schrittzustand int curStep = 0;  // aktueller Schrittzustand
 int curDir = RIGHT;  // aktuelle Drehrichtung int curDir = RIGHT;  // aktuelle Drehrichtung
-long duration;  // Messdauer für Echolot 
-float distance; // Entfernung für Echolot 
  
 int curPos = 0;  // aktuelle Motorstellung int curPos = 0;  // aktuelle Motorstellung
Zeile 52: Zeile 54:
  
  
-/* ---------- main functions ---------- */+/* ---------- Hauptfunktionen ---------- */
  
 /** /**
Zeile 79: Zeile 81:
 void loop()  void loop() 
 { {
-  // rechts drehen+  // rechts drehen, insgesamt 64 Umdrehungen
   for (int i = 0; i < 64; i++)   for (int i = 0; i < 64; i++)
   {   {
Zeile 139: Zeile 141:
   delay(1000);   delay(1000);
  
-  // links drehen+  // links drehen, insgesamt 64 Umdrehungen
   for (int i = 0; i < 64; i++)   for (int i = 0; i < 64; i++)
   {   {