Übersetzen der Ausgänge des Schrittmotortreibers (A-, A+, B-, B+) zurück in clk,en,step

Ich habe ein ziemlich seltsames Problem, das es notwendig macht, die vier Drähte eines bipolaren Schrittmotors (A-, A +, B-, B +) zu erfassen und sie zurück in die Pins zu übersetzen, die den Schrittmotortreiber (clk, dir, Schritt).

Blockdiagramm, das die mögliche Implementierung der Lösung beschreibt.

Zuerst werde ich skizzieren, was ich versucht habe:

  1. mcp3008 ADC - Dieser Typ ist sofort ausgebrannt. (Ich gehe davon aus, dass die Schrittmotortreiber für einen Nema17-Ausgang ungefähr 1,2 Ampere pro Spule liefern).
  2. Ich habe nach ADCs mit höheren Spezifikationen gesucht, bin aber etwas verloren.

Fragen:

  1. Gibt es einen besseren Weg, dies zu tun, als einen ADC in einem Mikrocontroller zu verwenden?
  2. Welche Abtastrate würde ich benötigen, um die Mikroschritte der Schrittmotortreiber zu "erfassen" und sie zurückzuübersetzen / wie kann ich dies berechnen?
  3. Welche ADC-Auflösung wäre akzeptabel / wie wird dies berechnet? ex. 12bit, 16bit...
  4. Welche Spannung wäre "sicher" (ich weiß, dass ein Nema17 ca. 4 V hat, aber ich mache mir Sorgen, dass ein anderer Stepper höher sein wird).
  5. Welche ADCs sind verfügbar, die diese Spezifikationen erfüllen? (oberhalb und unterhalb).
    • SPI oder I2C
    • mindestens 4 Kanäle oder (ich kann vier 1-Kanal-ADCs bekommen).
    • Durchgangslochkomponentenpaket.

Vielen Dank an jeden, der auf alle oder eine meiner Fragen antwortet! Dies ist mein erster Beitrag, also hoffe ich, dass ich mich klar genug ausgedrückt habe.

Benötigen Sie überhaupt einen ADC? Sind das nicht nur Rechteckwellen, bei denen Sie Timing und Phase messen möchten?
Ja, Sie haben Recht, es sind ziemlich viele Rechteckwellen und ich bin mir nicht sicher, ob ich einen ADC verwenden muss. Ich denke, der Grund, warum ich es hatte, ist, dass ich mir Sorgen um Stepper mache, die Mikroschritte machen. Was würdest du stattdessen vorschlagen?

Antworten (2)

Ich würde Optokoppler verwenden. Sie müssen die Werte von R1 und R2 berechnen, um angemessene Ströme zu erhalten.

Sie müssen die PWM-Signale per Software umwandeln.

Wenn Sie die Mikroschritte ausschalten können, wird es einfacher.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Dies ist definitiv ein guter Anfang für mich, ich werde mich mehr mit Optokopplern befassen. Leider kann ich die Microstepping-Funktion nicht ausschalten. Würde sich die Schaltung stark ändern, wenn ich Mikroschritte machen müsste? Vielen Dank für die Antwort!
Die Schaltung kann für Mikroschritte gleich sein, aber die S/W wird komplizierter sein.
Ja, ich stelle mir vor, es wird schrecklich, wenn es 1/256 Microstepping ist. Nochmals vielen Dank, Sie waren unglaublich hilfreich!
Beim Mikroschritt können zwei der Opto-Ausgänge gleichzeitig aktiv sein. Sie müssen das Verhältnis der Impulsbreiten berechnen. Wenn sich das Verhältnis um einen Betrag ändert, der Ihrem Mikroschritt entspricht, dann ist das ein Schritt.
Ah, das wird interessant, wenn man bedenkt, dass ich wahrscheinlich nicht weiß, welche Mikroschritte der Treiber an einem bestimmten Punkt verwendet.

Ich wollte nur hinzufügen, dass der ADC verbrannt ist, weil er ein bipolarer Motortreiber ist und in seiner negativen Phase versucht, Strom von der Last zu beziehen, dh. Ihr ADC, brennen es. Sie benötigen keinen ADC, um diese Spannung zu messen. Sie können eine Oktokopplerschaltung wie von Mattman944 ​​erwähnt verwenden, die Ihren Mikrocontroller parallel zum Schritttreiber schaltet und so alle vorhandenen Sensorgeräte schützt.

hmmm, das macht Sinn. Ich habe die Ausgabe mit einem Oszilloskop gemessen und keine negative Welle gesehen. Aber ich muss es verpasst haben. Danke für die Antwort!