CNC Shield 4.0 - A4498 Stepper Treiber - Nema 17

Hallo zusammen,
Ich habe mir ein CNC- Shield gekauft und würde es gern in Verbindung mit A4498- Treibern und Nema 17 Steppern betreiben, jedoch erhalte ich kein Lebenszeichen. Ich habe die Treiber auf die passende Referenzspannung eingestellt und einen Sketch zum Test aufgespielt. Da kein Lebenszeichen von den Steppern kam habe ich die Treiber vom Shield genommen und auf ein Breatboard aufgesteckt und getestet. Dort funktionierten die Treiber auf anhieb, ohne Probleme. Nun ist die Frage wo mein Fehler ist. Der Testsketch ist :

#include <AccelStepper.h>
 
#define dirPin 5
#define stepPin 2
#define motorInterfaceType 1
 
// Create a new instance of the AccelStepper class:
AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin);
 
void setup() 
{
  // Set the maximum speed and acceleration:
  stepper.setMaxSpeed(200);
  stepper.setAcceleration(30);
}
 
void loop() {
  // Set the target position:
  stepper.moveTo(600);
  // Run to target position with set speed and acceleration/deceleration:
  stepper.runToPosition();
 
  delay(1000);
 
  // Move back to zero:
  stepper.moveTo(0);
  stepper.runToPosition();
 
  delay(1000);
}

Für Hilfe wäre ich sehr Dankbar!

Was für Shild ist das, Link bitte. Wenn anders funktioniert ist was mit dem Shild oder? Falsch angeklemmt oder sonstwas

Wie hast Du die Jumper gesetzt?

Auf 1/16 tel Schritte Vollstromversorgung vom Netzteil. Netzteil hat an 12V 7.2W Max.

Ich habe ein wenig Lesestoff dazu gefunden, - das Teil scheint etwas "tricky" zu sein...

How to Use the CNC V4 Board

Das iat definitiv für mehrere Motore zu schwach, möglich auch schon für einen Motor.

Welchess Arduino-Modell bzw dessen Nachbau benutzt Du?

Grüße Uwe

Ich nutze dafür einen Arduino Nano mit Atmega328p.

passt!

Also @ uwefed, ich habe jetzt eine Test mit dem Breadboard wiederholt, ein Stepper Läuft mit dem Netzteil, sobald ich einen 2. dazu gebe läuft der Erste und der 2. Fängt an zu pfeifen. Wie errechnet ich denn, was ich für ein Netzteil ich benötig? Ich möchte 2x 17HS24-2104s Motoren und 1x 17HS19-2004S1 betreiben. Oder hätte jemand einen direkten Link zu einem Netzteil das ausreichend ist.

Ich habe jetzt einmal ein 12V Netzteil bestellt mit 30A und 360Watt, ich denke das sollte reichen... Oder?

100% bei der Leistung geht noch 3Motor :wink:
Die Spannung könnte höher sein zB. 24V, nur wen bestellt dann ist zu Spät.
Habe nach deinen Motoren nicht geschaut.

Reicht sicher.
Der nötige Strom hängt vom eingestellten Motorstrom auf dem Treibermodul ab. Der Strom, den das Netzteil liefern muß ist ca 1,414/ 3 des eingestellten Motorstrom ( 1,414 weil der Motortreiber in Summe SQR(2) mal den Motorstrom für beide Wicklungen des Motors treibt; 1/3 weil der SchrittmotorTreiber ähnlich einem Step Down Wandler wirkt).

Den genauen Wert kannst nur Du errechnen, da wir nicht die Einstellungen der Treiber, die Du vorgenommen hast, kennen.
Schätzungsweise brauchst Du ein 5-8A Netzteil.
Ein 24V Netzteil könnte die Funktion der Motore noch weiter verbessern da durch eine höhere Treiberspannung das Erreichen des Motorstroms beschleunigt und so das Drehomment bei schnellen Schrittfrequenz erhöht.

Grüße Uwe

1 Like

Vielen Dank, für eure Hilfe!!! Sobald das Netzteil da ist, werde ich alles testen und euch Rückmeldung geben, ob es die Lösung des Problems war, oder eventuell andere Probleme bestehen.

Also das Netzteil ist da. Der etwas kleinere Motor läuft flüssig, aber die größeren rumpeln nur übel... auch wenn sie einzeln angeschlossen sind. Mit H-Brücke laufen sie einwandfrei.

zum Testen nutze ich gerade diesen Code:

#include <AccelStepper.h>

#define MOTOR_1_STEP_PIN 2
#define MOTOR_1_DIR_PIN 3
#define MOTOR_2_STEP_PIN 4
#define MOTOR_2_DIR_PIN 5
#define MOTOR_3_STEP_PIN 6
#define MOTOR_3_DIR_PIN 7

#define MOTOR_SPEED 1000

AccelStepper motor1(1, MOTOR_1_STEP_PIN, MOTOR_1_DIR_PIN);
AccelStepper motor2(1, MOTOR_2_STEP_PIN, MOTOR_2_DIR_PIN);
AccelStepper motor3(1, MOTOR_3_STEP_PIN, MOTOR_3_DIR_PIN);

void setup() {
  motor1.setMaxSpeed(MOTOR_SPEED);
  motor1.setAcceleration(MOTOR_SPEED);
  motor2.setMaxSpeed(MOTOR_SPEED);
  motor2.setAcceleration(MOTOR_SPEED);
  motor3.setMaxSpeed(MOTOR_SPEED);
  motor3.setAcceleration(MOTOR_SPEED);
}

void loop() {
  motor1.moveTo(100);
  motor2.moveTo(100);
  motor3.moveTo(100);

  while (motor1.distanceToGo() != 0 || motor2.distanceToGo() != 0 || motor3.distanceToGo() != 0) {
    motor1.run();
    motor2.run();
    motor3.run();
  }

  delay(1000);

  motor1.moveTo(-100);
  motor2.moveTo(-100);
  motor3.moveTo(-100);

  while (motor1.distanceToGo() != 0 || motor2.distanceToGo() != 0 || motor3.distanceToGo() != 0) {
    motor1.run();
    motor2.run();
    motor3.run();
  }

  delay(1000);
}

P.S.: Ich hab die Treiber zum Testen jetzt erst einmal auf ein Breadboard aufgesteckt.

Was meinst Du mit H-Brücke?
Laufen die Motore ohne Last?

Die beiden Motore 17HS24-2104s haben 2,1A Nennstrom und 1,6 Ohm Wicklungswiderstand.
Der Motor 17HS19-2004S1 hat 2,0A Nennstrom und 1,4 Ohm Wicklungswiderstand.

Beide Strome sind zu große für einen A4988 ohne Kühlkörper. 2 A mit Kühlkörper sind gerade am Limit.

Du kannst alle Motore mit einem Strom, der kleiner als der Nennstrom ist, betreiben, damit der Treiber nicht überhitzt. Sinnvoll ist es nicht, da Du Drehmoment verschenkst bzw zu große Motore gekauft hast.

Grüße Uwe

Ich habe den Motor an einem L298N - Treiber getestet. Die Treiber sind bei mir mit Kühlkörper. Wären DRV8825 besser geeignet? Dort ist im Datenblatt 2,2A mit Kühlkörper angegeben. Was ich auch noch gefunden habe wäre der TMC2209.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.