Go Down

Topic: Arduino Uno CNC Shield Roboterarm (Read 175 times) previous topic - next topic

daniel3d

Hallo,

ich habe mir ein einfaches CNC Shield gekauft, welches auf den Arduino aufgesteckt wird. Gedacht ist dieses eigentlich um eine CNC Fräse zu steuern, das möchte ich nicht tun, sondern ein Roboterarm bewegen. Wenn ich die grbl Firmware drauf lade, kann ich die motoren problemlos steuern. Wenn ich aber nachfolgendes Skript hochlade bewegt sich nichts. Ich habe in der grbl Config bereits nachgeschaut und bin mir sehr sicher das ich die richtigen Pins anspreche. In dem Beispiel möchte ich den X-Achsen Motor bewegen. Wo könnte noch mein Problem liegen?

Code: [Select]

/********************************************************
** Download from:                                      **
** http://www.alhin.de/arduino/index.php?n=48          **
********************************************************/

#include <AH_Pololu.h>

// RES -> RESOLUTION per full revolve
// DIR -> DIRECTION PIN
// STEP -> STEPPING PIN
// AH_Polopu(int RES, int DIR, int STEP);
AH_Pololu stepper(200,5,2);   // Initialisation

void setup() {
  stepper.setSpeedRPM(60);          // RPM , rotations per minute
//stepper.setSpeedHz(100);           // Hz, steps per second
}

void loop() {

  stepper.move(200);               // move 200 steps
  delay(1000);

}

DrDiettrich

Vielleicht hindert das delay(1000) den Treiber am Steppen?

daniel3d

Das ist leider nicht das Problem. Das verwirrendste ist sowieso, dass wenn ich meine Schaltung auf einem Steckbrett aufbaue bewegt sich der Motor. Scheinbar muss irgendwas spezielles beachten werden, wenn man das CNC Shield verwendet.

agmue

Die Treiber haben neben STEP und DIR weitere Eingänge, beispielsweise ENABLE, die unbeschaltet ein bestimmtes Potential haben. Das Shield kann diese aber mit Ausgängen des Arduino verbinden, womit andere Level möglich sind. Auch kann das Shield PullUp- oder PullDown-Widerstände verwenden. Außerdem haben manche Shields Steckbrücken zur Konfiguration. Viele Möglichkeiten, warum sich ein Motor nicht dreht.

MicroBahner

Die Motortreiber haben einen Enable-Eingang. Den solltest Du auf alle Fälle auch vom Arduino aus versorgen. ( HIGH = disabled! ) Wie der bei offenem Eingang reagiert, hängt von der Schaltung des Shields ab.
Gruß, Franz-Peter

Go Up