meta data for this page
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
uebung:itt11:stepper-motor_ansteuern [2023/01/13 15:01] – juergenhaas | uebung: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. | ||
- | < | + | Der hier dargestellte Quellcode kommt ohne die Verwendung einer Bibliothek aus. |
+ | |||
+ | **Wichtig: | ||
+ | |||
+ | < | ||
/* | /* | ||
* 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}, | {LOW, LOW, LOW, HIGH}, | ||
{LOW, LOW, HIGH, HIGH}, | {LOW, LOW, HIGH, HIGH}, | ||
- | {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; | int curDir = RIGHT; | ||
- | long duration; | ||
- | float distance; // Entfernung für Echolot | ||
int curPos = 0; // aktuelle Motorstellung | int curPos = 0; // aktuelle Motorstellung | ||
Zeile 52: | Zeile 54: | ||
- | /* ---------- | + | /* ---------- |
/** | /** | ||
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++) | ||
{ | { |