/*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);
}