sketch_68_esp_schrittmotor_drehen   (ESP8266 NodeMCU)

sketch_68_esp_schrittmotor_drehen
  /*Anschluss des Schrittmotors 17HS13-0404S (Schrittwinkel 1,8 Grad)an ESP8266 NodeMCU V2 L293D Motor Shield.  
  Terminal-Klemmen A- A+ und B- B+. 
  Anschluss Akkupack 7,2 V (tatsaechl.Spannung bis 8V) an VM und GND.
  Staendiges Drehen Schrittmotor in eine Richtung mit konstanter Drehzahl.
  Achtung: Kabel der Servos nicht anschliessen !
  Einstellung Drehzahl in der Variablen "Schrittzeit".
  Einstellung der effektiven Spannung an den Wicklungen und damit Strom+Drehmoment ueber PWM-Ausgaenge Pins D1,D2(max mit Wert 1023).
  Der jeweilige Schrittstatus (Schaltzustand der Ausgaenge des L293D) wird auch im Serial Monitor angezeigt. 
  Die interne LED ist mit D4 verbunden, blinkt deshalb mit 1/4 der Schrittfrequenz.
  */
  int Schrittzeit=10;               // Zeitdauer fuer einen Schritt, Variable fuer delay 
                                    // Schrittzeit 10ms / Schrittfrequenz 100 Hz / Drehzahl 30 U/min 
  byte Status;                      // Variable fuer den Schrittstatus
                                    // Korrelation Ausgaenge D3D4 zum Status: HH=1 LH=2  LL=3  HL=4   
  void setup() 
  {
   pinMode(D1, OUTPUT);             // ENA ; PWM fuer Wicklung A ; bei 1023 volle Spannung
   pinMode(D2, OUTPUT);             // ENB ; ...      Wicklung B ; ...
   pinMode(D3, OUTPUT);             // Einschaltrichtung Strom fuer Wicklung A    
   pinMode(D4, OUTPUT);             // ...                     fuer Wicklung B
   Serial.begin(9600);              // Initialisierung Serial Monitor (beachte: muss auf 9600 eingestellt sein) 
   analogWrite (D1,1023);           // wenn niedriger eingestellt wird - pfeifen durch PWM
   analogWrite (D2,1023);    
  }
  
  void loop()
  {
  digitalWrite(D3,HIGH);
  digitalWrite(D4,HIGH); 
  delay(Schrittzeit);
  Status=1;
  Serial.println(Status);           // Der jeweilige Schrittstatus 1...4 wird im Serial Monitor angezeigt
  
  digitalWrite(D3,LOW);
  digitalWrite(D4,HIGH); 
  delay(Schrittzeit);
  Status=2;
  Serial.println(Status);
  
  digitalWrite(D3,LOW);
  digitalWrite(D4,LOW); 
  delay(Schrittzeit);
  Status=3;
  Serial.println(Status);
  
  digitalWrite(D3,HIGH);
  digitalWrite(D4,LOW); 
  delay(Schrittzeit);
  Status=4;
  Serial.println(Status);
  }