Hallo Gemeinde,
ich habe so lange schon nichts mehr gemacht, dass ich die Basics vergessen habe.
Möchte gerade einen Nema17 (welcher ist leider nicht mehr zu lesen) mit Getriebe per Driver zum Leben erwecken und außer, dass er hörbar irgendwas brummt, dreht er sich nicht.
Jetzt benötige ich euer Fachwissen, um den Stepper bzw. den Treiber zu identifizieren um die BA's zu bekommen.
Vielen Dank!
das Programm wird sicher auch noch nicht korrekt sein
#include <AccelStepper.h>
int PUL=10; //define Pulse pin
int DIR=9; //define Direction pin
int ENA=8; //define Enable Pin
// Define a stepper and the pins it will use
AccelStepper stepper; // Defaults to AccelStepper::FULL4WIRE (4 pins) on 2, 3, 4, 5
void setup()
{
stepper.setMaxSpeed(1000.0);
stepper.setAcceleration(5000.0);
stepper.setEnablePin (ENA); // Pin für das Enable an den Treiber
Serial.begin (9600); // Datenrate 9600 bps
}
void loop()
{
if (stepper.distanceToGo() == 0)
{
// Random change to speed, position and acceleration
// Make sure we dont get 0 speed or accelerations
delay(1000);
stepper.moveTo(rand() % 2000);
stepper.setMaxSpeed((rand() % 1000) + 1);
stepper.setAcceleration((rand() % 1000) + 1);
}
stepper.run();
}
Wieso?
Die Modelnummer kann man auf dem Foto ja wunderbar lesen: 17hs4401s-pg518
Spulenstrom: I = 1.68A
Versorgungsspannung 12-24V
Welche Spannung gibst Du dem Treiber?
Hast Du kontrolliert, ob die Spulen jeweils zwischen A+ und A- bzw B+ und B- geschaltet sind. Kontrolle mit Multimeter.
Ansonsten versuch mal zuerst ohne Bibliothek, einfach nur ein 10Hz Signal auf Pulse, das Du auch mit delay()s machen kannst.
Und bitte schmeiß diesen gefälschten Arduino MEGA weg. Gefälscht verstehe ich einen Nachbau der unrechtmäßig das Logo und den Namen benutzt.
Es ist egal welche Spule A ist und welche B.
Wichtig ist das die eine Spule an A+ uns A- angeschlossen ist und die andere an B+/B-. Also Spule an A+ - B+ ist falsch.
Vor dem Wegwerfen den Händler noch bitte schlecht bewerten mit dem Hinweis "Verkauft gefälschte Arduinos". Legale Nachbauten sind nämlich meist billiger.
Wie das Blink Beispiel nur mit kürzeren Zeiten (50mS)
int ENA = 2;
int DIR = 3;
int PUL = 4;
void setup() {
// put your setup code here, to run once:
pinMode (ENA, OUTPUT);
pinMode (DIR, OUTPUT);
pinMode (PUL, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(ENA,HIGH);
digitalWrite(PUL,HIGH);
delay(50);
digitalWrite(PUL,LOW);
}
Dann brauchst Du zuerst einen Sensor der Dir die Nullstellung gibt.
Von dieser Stellung dann x Schritte entsprechen 1° also um auf 30° zu kommen mußt Du x Schritte plus den Offset zwischen Nullstellung und 0°.
Zu den Schritten für 1°:
Der Motor hat 200 Schritte für 360°, Getriebe 5,18 : 1 und dazu kommt auch noch die Microschritte. 1:1 bis zu 1:32
Laut verlinkten Datenblatt sind das:
The number of complete steps per revolution is 1036.
Wobei das noch zu kontrollieren ist. Als Übersetzungsverhältnis werden oft Zahnräder-Kombinationen mit keinen geraden Übersetzungsverhältnis verwendet damit die Zahnräder nicht immer mit dem gleichen Zähnen ineinandergreifen. Darum glaube ich, daß das Übertragungsverhältnis gerundet ist und darum nicht 100% genau stimmt.
Also je nach Microschritte:
1/1 Microschritt : 1° entspricht ca 2,877 periodisch Schritten.
1/32 Microschritt: 1° entspricht ca 92,088 periodisch Schritten.
Diese Ungenauigkeit kann bei Bewegungen um einen Punkt herum (vor und zurück) vernachlässigt werden und kann mit gerundeten Werten gerechnet werden. Bei Drehung in eine Richtung summiert sich diese Ungenauigkeit auf und ergibt bei langen Lauf signifikante Ungenauigkeiten. Durch Einbezug des Nullpunkt-Sensors kann diese Ungenauigkeit bei jeder Umdrehung korrigiert werden indem bei jeder Umdrehung ein neuer Nullpunkt gesetzt wird.
Danke Uwe, auch für deine ausführlichen Worte! soweit ist mir das klar.
Mir gings um welche Bibliothek ich da am besten nehmen sollte, es gibt den AccelStepper auch mit Millimeter (im Prinzip 0-360mm), möchte Dynamiken einstellen und Positionen anfahren nach dem referenzieren.
bisher habe ich das mit Servos gelöst, da ist es ja einfach, mit dem Schrittmotor zwar "umfangreicher" aber dafür genau.