TB6600 und MobaTools

Hallo Forum,

in wieweit arbeitet der Motortreiber TB6600 mit Mobatools zusammen. Mir ist gerade aufgefallen, das eine Geschwindigkeitssteuerung möglich ist, er jedoch mit der Schrittanzahl "doSteps(3550);" nicht klarkommt. Gibt es hier eine andere Möglichkeit, die Anzahl der Schritte zu steuern?

Mario

Hallo Mario,

Grundsätzlich problemlos.

Da musst Du schon ein wenig mehr von deinem Projekt erzählen, damit man das Problem erkennen kann. Und Was verstehst du unter 'nicht klarkommt'? - da braucht's schon eine genauere Fehlerbeschreibung.
Poste mal deinen Sketch, ein Schaltbild, wie alles verdrahtet ist ( einschl. Stromversorgung ) und Links zu den verwendeten Komponenten.

Hier gibt es Hinweise zur Forumsnutzung, damit Du vernünftige Antworten bekommst.

Schrittmotortreiber ist Schrittmotortreiber. Einzige Limitierung ist die max zulässige Schrittfrequenz und die steht im Datenblatt.

Grüße Uwe.

Möchtest du jetzt ein 1000 Seiten Tutorial lesen was das alles für Ursachen haben könnte?
Nö!
Möchte jemand ein 1000 Seiten Tutorial schreiben?
Nö!

Du hast doch schon ungefähr 100 postings Erfahrung. Das was am meisten weiterhilft ist sich gleich Zeit nehmen detaillierte Informationen zu posten.

  • kompletten Sketch (auch dann wenn er 5000 oder noch mehr Zeilen hat)
  • detaillierte Beschreibung was dein Schrittmotor macht
  • detaillierte Beschreibung und/oder Foto was von der Schrittmotorachse bewegt wird
  • Datenblatt des Schrittmotors
  • Stromeinstellung des Schrittmotortreibers

Nö!
Ich bevorzuge

  • einen minimalen Sketch, der das Problem darstellt
> #include <Wire.h>
> #include <MobaTools.h>
> 
> const byte stepPin1 = 22;
> const byte dirPin1 = 23;
> const int stepsPerRev = 200; 
> 
> MoToStepper Motor1(stepsPerRev, STEPDIR); 
> 
> void setup() {
>   Motor1.attach(stepPin1, dirPin1);
>   Motor1.setSpeed(8000);  // 30 rev/min (if stepsPerRev is set correctly)
> }
> 
> void loop() {
>          Motor1.doSteps(3000);
>   }

Ich Habe gerade den Code auf den Arduino gespielt, und was soll ich Euch sagen, er funktioniert. Kann Euch nicht sagen, warum das gestern nicht klappte. Danke für Eure Unterstützung.

Mario

Erstaunlich ...

Bei 200Steps/Umdr. bedeutet das 2666 Steps/Sek. Welchen Arduino verwendest Du? Mit einem Mega/AVR ist das zuviel und wird auf 2500 Steps/Sek. begrenzt. Ausserdem verwendest Du keine Beschleunigung ( Rampenlänge ist 0 per default ). Ich kenne keinen Stepper, der das ohne Beschleunigung schafft. Oder hast Du beim TB6600 Microstepping eingestellt? Dann solltest Du aber auch die stepPerRev entsprechend anpassen.

Das macht keinen Sinn. Alle MoToStepper Methoden sind NICHT blockierend. Du sagst dem Stepper also mit voller loop() Geschwindigkeit immer wieder er soll 3000 Schritte machen - schneller als er überhaupt einen einzigen ausführen kann.
Entweder Du willst, dass er 'endlos' rotiert - dann reicht ein rotate(1) Aufruf am Ende von setup().
Oder Du willst ihn wirklich nach 3000 Schritten anhalten lassen. Dann musst Du auch abfragen, ob er die 3000 Schritte ausgeführt hat.

1 Like

Forum debugging a la Rubberduck debugging?

Grüße Uwe


Bild spendiert von Why a Rubber Duck is important in Software Engineering

Die wenigsten Quietsche-Entchen sind so geduldig wie wir hier
:wink:

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