Schrittmotoren mit schalter starten lassen

Hallo

Natürlich bin ich auch ein neuling :slight_smile:

Habe folgendes Problem, durch ein Endschalter gesartet, "Start (Pause, wird durch Poti geregelt) soll der Motor 60Steps nach links (Pause, wird durch Poti geregelt) und dann 60steps(Pause, wird durch Poti geregelt) nach rechts.

Die Wartezeiten zwischen den steps und dem Start sind von Potis geregelt.
Der Endschalter macht mir sorgen, krige es nicht hin, habe im Netz wirklich nichts brauchbares gefunden. :frowning: Habe ein Arduino UNO und ein 298N Treiber mit einem 5V Steppermotor 10KOhm Potis. Das mit den Pausen alles OK nur der Start nicht.

Daher Bitte ich um Hilfe an den guten Leuten die das einfach besser können!

gidouz:
... Habe folgendes Problem ...

Ich verstehe ehrlich gesagt nur Bahnhof. Könntest Du etwas genauer beschreiben, was Du beabsichtigst?

Gruß

Gregor

Ein Endschalter startet nichts. Der wird betätigt wenn der Motor in eine Grenze fährt.

Es ist eigentlich ein Näherungsschalter der ein schliesser ist.

Die Anlage startet sie Läuft nach einem Tackt der nicht immer genau ist, der Näherungsschalter wird betätigt "also geschlossen" dann soll der Motor nach etwa 750ms starten die 60Steps machen eine kurze zeit bei den 60Steps bleiben 200ms und dann 60Steps zurück und dort warten bis das nächste signal vom Endschalter kommt eigentlich ganz einfach. Mein Problem ist das startsignal.

Hat nichts mit den LEDPins zu tun nehme ich an?

Danke für di schnelle antowort.

Da wir leider nicht wissen welcher Näherungsschalter und wie dessen Ausgang aussieht, können wir leider auch nur raten und das wird nix.

Es gibt viele verschiedene Näherungsschalter mit verschiedenen Betriebsspannungen und deshalb auch viele Möglichkeiten das Ding anzuschließen. Wenn man das Teil falsch anschließt, kann das das Todesurteil für den Arduino sein.

Also bitte mehr Infos über den Näherungsschalter.

Bauform ø 4 mm
Schaltabstand max. 1.5 mm
Ausgang PNP, Schliesser
Anschluss Stecker M8
Betriebsspannung 10...30 VDC Kann ein Relais das die 5VDC in den Arduino weiter gibt.
Betriebstemperatur -25...+70 °C

Wenn dieser geschlossen wird soll der Motor nach ca. 750ms anfangen.

Also ein normaler kapazitiver oder induktiver Näherungsschalter wie er in der Industrie verwendet wird.
Ich vermute mal mit 3 Anschlüssen.
Ausgang schaltet gegen +.

Wenn Du ein Netzteil und ein Relais hast mit 12V, würde ich vorschlagen den Ausgang des Näherungsschalters an den einen Spulenanschluß des Relais zu klemmen und den anderen Spulenanschluß auf den Minusanschluß des Netzteils. Den + Anschluß des Näherungsschalters natürlich an + des Netzteils und den - Anschluß des Näherungsschalters an - des Netzteils. Somit müsste das Relais anziehen wenn etwas in die Nähe des Näherungsschalters kommt.
Ich habe eine Skizze angehängt wie das Relais mit dem Näherungsschalter verbunden werden muß.

Der Relaiskontakt wird dann am Arduino mit GND und einem Eingang verbunden.
In den Beispielen die in der Programmierumgebung dabei sind gibt es unter “Digital” ein Beispiel “DigitalInputPullup”. Da siehst Du wie digitale Eingänge abgefragt werden. Falls Du nicht weiter kommst, kannst Du gerne mal Dein Programm hier hochladen, damit wir Dir direkt Tips zu Deinem Programm geben können.

Gruß,

Jürgen

Anschluss_Naeherungsschalter.jpg

Danke für den Tipp,

Den Code habe ich auch angehängt, super wäre wenn jemand mir weiterhelfen kann.
Nochmals zu Problem, wenn ich das Arduino anschliesse dann läuft das Programm, ich möchte aber das erst startet wenn es den Impuls vom Näherungsschalter bekommt, nach dem Ablauf des Programms dann wieder wartet bis der nächste Impuls kommt usw.

Dann habe ich eine andere Frage den Schrittmotor den ich jetzt habe ist zu schwach also 0.04Nm wollte einen stärkeren anschliessen mit 135Ncm der hat einen eigenen Treiber weiss jetzt nicht ob der auch mit Arduino laufen kann. Wie kann ich die Pinnbelegung posten?

#include<Stepper.h>

#define STEPS 200

Stepper stepper(STEPS, 8, 9, 10, 11);

int previous = 0;
int sensor1Pin = A1;
int sensor2Pin = A2;
int sensor3Pin = A3;

void setup()
{
Serial.begin(9600);
stepper.setSpeed(100);
int previous = A1;
}

void loop()
{

int val = map(analogRead(0), 0, 1023, 200, 0);

stepper.step(val - previous);
int sensor1Valu = analogRead(sensor1Pin);
int sensor2Valu = analogRead(sensor2Pin);
int sensor3Valu = analogRead(sensor3Pin);

previous = val;

delay(sensor1Valu);
stepper.step(99);
delay(sensor2Valu);
stepper.step(-99);
delay(sensor3Valu);
}