Forum: Mikrocontroller und Digitale Elektronik NEMA17 Schrittmotor mit ESP32 und A4988 ansteuern


von Marc T. (marc_t694)


Angehängte Dateien:

Lesenswert?

[EDIT: im Diagramm hat sich ein Fehler eingeschlichen - Es geht kein 
Kabel vom Logik GND zum Vmot, sondern zum Motor GND direkt darunter]

Guten Tag,
Ich benötige Hilfe bei einem Studienprojekt.

Den Aufbau meiner Schaltung kann man dem Diagramm entnehmen. Leider 
funktioniert der Motor am Ende jedoch nicht.

Der gesamte Aufbau wird angetrieben von einer 12V Batterie.
Anschließend wird dies von einem Debo Spannungswandler runterregelt.
Der rechte Powerrail des Breadboards führt 12V, der linke 5V
Das habe ich mit dem Multimeter geprüft und funktioniert soweit. Auf dem 
12V Powerrail sitzt zusätzlich ein 100 MikroF Kondensator.

Auf dem Motortreiber habe ich die Referenzspannung (Vref) eingestellt 
und vorher mit folgender Gleichung begerechnet: Vref = 1.2 / 2.5 = 
0.48V.
1.2A ist hierbei ein empfohlener Wert, um den Treiber nicht zu 
überhitzen. 2.5 ergibt sich aus den verbauten Widerständen meines 
spezifischen Modells.

Auch positiv überprüft habe ich die, dem Datenblatt entnommenen 
Kabelpaare des Motors.

Der ESP32 läuft mit folgendem Programm:

---
1
#define STEP_PIN 17
2
#define DIR_PIN 16
3
4
void setup() {
5
  pinMode(STEP_PIN, OUTPUT);
6
  pinMode(DIR_PIN, OUTPUT);
7
8
  digitalWrite(DIR_PIN, HIGH); // Set initial direction
9
}
10
11
void loop() {
12
  digitalWrite(STEP_PIN, HIGH);
13
  delayMicroseconds(800);
14
  digitalWrite(STEP_PIN, LOW);
15
  delayMicroseconds(800);
16
}

---

Doch leider macht der Motor letztendlich garnichts. Weder brummt er, 
noch zuckt er. Der Aufbau verlief ohne irgendwelche Kurzschlüsse oder 
Funkenflüge und alle Bauteile verhalten sich und riechen eigentlich 
normal :-)

Woran könnte es liegen, dass trotzdem nichts passiert?

LG aus Halle an der Saale,
Marc

: Bearbeitet durch User
von Holger T. (holgert)


Lesenswert?

Ich habe keine Ahnung von ESP32 oder A4988. Aber ich sehe Vmot mit GND 
verbunden --> Kurzschluss der 12V Versorgung.

: Bearbeitet durch User
von Holger T. (holgert)


Lesenswert?

Marc T. schrieb:
> [EDIT: im Diagramm hat sich ein Fehler eingeschlichen - Es geht kein
> Kabel vom Logik GND zum Vmot, sondern zum Motor GND direkt darunter]

Dann zeichne die Skizze korrekt!

von Nemopuk (nemopuk)


Lesenswert?

Die handelsüblichen Steckbretter und Dupont-Kabel taugen höchstens für 
100mA. Benutze für Stromversorgung und zum Motor hin gelötete Leitungen 
aus Kupfer.

Programmiere das Ding anders. So ein Motor kann nicht aus dem Stand 
heraus so schnell drehen. Man muss ihn langsam beschleunigen. Du 
könntest mal ganz Sachte mit 800000 Mikrosekunden anfangen, das wird er 
aus dem Stand heraus wohl schaffen.

: Bearbeitet durch User
von Holger T. (holgert)


Lesenswert?

Wo wird die Funktion setup() in Deinem Programm ausgeführt?
Wo wird die Funktion loop() in Deinem Programm ausgeführt?
Sie sind nur definiert.

: Bearbeitet durch User
von Nemopuk (nemopuk)


Lesenswert?

Holger T. schrieb:
> Wo wird die Funktion setup() in Deinem Programm ausgefüht?
> Wo wird die Funktion loop() in Deinem Programm ausgefüht?
> Sie sind nur definiert.

Das ist ein Arduino Sketch, da muss das so aussehen.

von Holger T. (holgert)


Lesenswert?

Nemopuk schrieb:
> Holger T. schrieb:
...
> Das ist ein Arduino Sketch, da muss das so aussehen.

o.k., da bin ich raus.

von Helmut H. (helmuth)


Lesenswert?

https://www.youtube.com/watch?v=PMS5jY7RTjo
A4988 Driver Tutorial How to Use ENABLE, SLEEP, and RESET Pins for 
Stepper Motor Control

Enable und Sleep miteinander verbinden.

von Thomas Z. (usbman)


Lesenswert?

/SLEEP und /RESET unbeschaltet? Diese Signale würde ich mal auf +5V 
legen.

von Helmut H. (helmuth)


Lesenswert?

Helmut H. schrieb:
> Enable und Sleep miteinander verbinden.

Falsch, soll sein Reset und Sleep

: Bearbeitet durch User
von Nemopuk (nemopuk)


Lesenswert?

/Enable und /Sleep haben Pull-Widerstände auf dem Board.
https://www.pololu.com/picture/view/0j3359

von Rainer W. (rawi)


Lesenswert?

Holger T. schrieb:
> Wo wird die Funktion setup() in Deinem Programm ausgeführt?
> Wo wird die Funktion loop() in Deinem Programm ausgeführt?

Wie bei jedem C-Programm werden die in der main() aufgerufen.

von F. (radarange)


Lesenswert?

Bevor du dir hier von der geballten Inkompetenz noch mehr vorwerfen 
lassen musst:

Welche Schritte hast du bereits unternommen, um das Problem zu lösen?

Wenn der Motor gar nichts macht, besteht die Möglichkeit, dass er 
einfach falsch angeschlossen ist. Hast du die Motoranschlüsse mal 
vertauscht? Kriegt der Motor Strom, aber irgendwas ist mit der 
Ansteuerung nicht in Ordnung, sollte er sich nicht mehr von Hand drehen 
lassen. Im ausgeschalteten Zustand sollte er sich einfach drehen lassen.

Natürlich ist der Aufbau nicht optimal, auch wird bei diesem hohen Strom 
der Treiber wahrscheinlich bald überhitzen, aber ein bisschen was sollte 
der Motor schon machen. Wenn er nichts macht, ist irgendwas im Argen.

von Rainer W. (rawi)


Lesenswert?

Marc T. schrieb:
> Woran könnte es liegen, dass trotzdem nichts passiert?

An einem Schaltungs- oder Steckfehler, vielleicht auch an einer defekten 
Verbindung.
Zeige einmal einen Schaltplan, damit den sich nicht jeder aus deinem 
Steckbrettbild zusammenreimen muss.

: Bearbeitet durch User
von Marc T. (marc_t694)


Lesenswert?

Moin,
Tatsächlich hat nur gefehlt den SLEEP und RESET pin miteinander zu 
verbinden - Danke für die Hinweise.

lg

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Marc T. schrieb:
> Tatsächlich hat nur gefehlt den SLEEP und RESET pin miteinander zu
> verbinden - Danke für die Hinweise.

Die Idee ist nur halb gut, weil du dir damit die Möglichkeit verbaust, 
den Treiber in den Sleep-Zustand zu versetzen. Besser wäre es, den 
Not-Reset Eingang über einen eigenen Pull-Up auf High zu legen.

von Michael B. (laberkopp)


Lesenswert?

F. schrieb:
> Wenn der Motor gar nichts macht, besteht die Möglichkeit, dass er
> einfach falsch angeschlossen ist. Hast du die Motoranschlüsse mal
> vertauscht

Wenn der Motor gar nichts macht, liegt es sicher nicht an vertauschen 
Motoranschlüssen.

Aber danke fur deine Expertenmeinung.

Beitrag #7894871 wurde vom Autor gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.