Inhaltsverzeichnis:

Zufällige DC-Motor-PWM-Experimente + Encoder-Fehlerbehebung - Gunook
Zufällige DC-Motor-PWM-Experimente + Encoder-Fehlerbehebung - Gunook

Video: Zufällige DC-Motor-PWM-Experimente + Encoder-Fehlerbehebung - Gunook

Video: Zufällige DC-Motor-PWM-Experimente + Encoder-Fehlerbehebung - Gunook
Video: Random DC Motor PWM & Optical Encoder Pinout Mapping 2024, Juli
Anonim
Zufällige DC-Motor-PWM-Experimente + Encoder-Fehlerbehebung
Zufällige DC-Motor-PWM-Experimente + Encoder-Fehlerbehebung

Es gibt oft Zeiten, in denen der Müll eines anderen der Schatz eines anderen ist, und dies war einer dieser Momente für mich.

Wenn Sie mir gefolgt sind, wissen Sie wahrscheinlich, dass ich ein riesiges Projekt übernommen habe, um aus Schrott meine eigene 3D-Drucker-CNC zu bauen. Diese Stücke wurden aus alten Druckerteilen und verschiedenen Schrittmotoren hergestellt.

Dieser Druckerwagen stammt von einem Texas Instruments Nadeldrucker aus den 1980er Jahren. Leider kann ich mich nicht erinnern, welches Modell es war, aber ich habe die Motornummer 994206-0001. Auch dieser DC-Motor ist mit einem Encoder ausgestattet, der für moderne Anwendungen hilfreich wäre. In meiner Eile, diese Baugruppe wiederherzustellen, habe ich sie nur entfernt und ein Foto davon gemacht, wo sie angeschlossen war.

In diesem Instructable werde ich versuchen, zu sehen, ob der Motor und der Encoder tatsächlich funktionieren und wofür die Pin-Outs sind.

Lieferungen:

Gleichstrommotor mit Encoder

Arduino UNO, NANO

L298N H-Brücke

DC-Abwärtswandler

Netzteil, das die entsprechende(n) Spannung(en) unterstützt, die Sie möglicherweise benötigen (ein alter PC-ATX könnte eine praktikable Option sein)

Kabel

PC mit arduino-IDE

Multimeter

Notizbuch!!

Schritt 1: Ein kurzer Blick auf die Baugruppe

Ein kurzer Blick auf die Baugruppe
Ein kurzer Blick auf die Baugruppe
Ein kurzer Blick auf die Baugruppe
Ein kurzer Blick auf die Baugruppe
Ein kurzer Blick auf die Baugruppe
Ein kurzer Blick auf die Baugruppe

Bild 1 zeigt die Haupthälfte des Wagens. Es wurde mit der Baugruppe, dem Motor mit dem Encoder und den Spuren für den alten Nadelpapiereinzug ausgestattet. Ich entfernte die Schienen und einen Teil der unteren Baugruppe. Das untere Stück, das ich entfernt habe, war die Stahlstützstange, die eigentlich ziemlich schwer war (sie scheinen sie heutzutage nicht mehr so zu machen).

Bild zwei zeigt, wo J8 (der Encoderanschluss) & und J6 (der Motoranschluss) von der Steuerplatine entfernt wurden. Ich habe ein Foto davon gemacht, um mich selbst auf die Spuren und ICs vom "Mutterbrett" zu schulen.

In den Bildern 3 und 4 sehen Sie die Motor- und Encoder-Anschlüsse.

Nachdem ich die Spuren auf dem Encoder abgebildet und den Schaltplan reproduziert hatte, konnte ich mein eigenes Diagramm erstellen, das ich sofort zur Verfügung hätte. Die Encoder-Pin-Belegung war das Wichtigste für mich zu bestimmen und steht im Mittelpunkt dieser Anleitung zur Fehlerbehebung. Wir werden dies im nächsten Abschnitt sehen.

Schritt 2: Die Pinbelegung des Encoders verstehen

Die Pinbelegung des Encoders verstehen
Die Pinbelegung des Encoders verstehen
Die Pinbelegung des Encoders verstehen
Die Pinbelegung des Encoders verstehen
Die Pinbelegung des Encoders verstehen
Die Pinbelegung des Encoders verstehen

Jetzt muss ich herausfinden, was die Pinbelegung des Encoders ist. Ich habe die Pins 1 bis 8 willkürlich markiert und beschreibe sie im letzten Bild. Was ich beim Betrachten der Steuerplatine und der Spuren auf dem Encoder selbst vermute, ist, dass Pin 1 und 6 Masse sind und 5 Vcc (Strom, 5 V) ist. Der Anschluss für 2 ist ausgeblendet, so dass er nutzlos ist und 3, 4, 7 & 8 sind die Ausgänge für das Diodenarray. WARNUNG: Ich mache mit meinem Test eine mutige Annahme! Ich habe Masse an Masse an meiner Stromquelle angeschlossen, aber dann verbinde ich 5 V direkt mit dem Encoder. Ab dieser hohen Spannung kann Ihr Encoder möglicherweise zerstört werden, wenn Sie nicht wissen, welche Spannung er benötigt (wie ich es nicht wusste). Sie können also mit einer niedrigeren Spannung wie 3,3 V beginnen. Nachdem ich meine 5-V-Stromquelle an den Encoder-Pin 5 und die Masse an Pin 1 angeschlossen habe, klebe ich meine Multimeter-Masse an Pin 1 und Pin 5, um sicherzustellen, dass die Stromversorgung vorhanden ist. Bild 2. Dann beginne ich mit dem Testen von Pin 3, von dem ich annahm, dass es sich um eines der Fotodioden-Arrays handelt, Bilder 3-5. Wie Sie sehen können, wechseln die Spannungszyklen von nahe 0 V bis nahe 5 V, wenn ich die Motorwelle drehe. Das war ein gutes Zeichen, um zu beweisen, dass meine Hypothese richtig war! Ich habe das gleiche für die Pins 4, 7 & 8 gemacht und die gleichen Ergebnisse erhalten. Jetzt habe ich festgestellt, was die Ausgangspins für meinen Encoder sind.

Sie können dasselbe mit jedem optischen Sensor tun, den Sie von einem Drucker ziehen, von dem Sie möglicherweise Teile retten, da die meisten keine 8-Pin-Anschlüsse haben. Für moderne Heimdrucker scheinen sie 3- oder 4-Pin-Typen zu sein. HomoFaciens hat ein großartiges YouTube-Video zur Bestimmung eines unbekannten Pin-Outs für optische Sensoren.

Schritt 3: Einfache Arduino-Skizze zum Bewegen des Motors hin und her

Einfache Arduino-Skizze zum Bewegen des Motors hin und her
Einfache Arduino-Skizze zum Bewegen des Motors hin und her
Einfache Arduino-Skizze zum Bewegen des Motors hin und her
Einfache Arduino-Skizze zum Bewegen des Motors hin und her
Einfache Arduino-Skizze zum Bewegen des Motors hin und her
Einfache Arduino-Skizze zum Bewegen des Motors hin und her

Da ich nun Daten für den Motorgeber habe, ist es an der Zeit zu sehen, wie der Motor selbst läuft. Dazu habe ich eine sehr einfache Skizze für den Arduino geschrieben, Bilder 3 - 5. Ich definiere meinen Eingang für die Pulsweitenmodulation vom L298N als 'enB'. Für die Pins 3 und 4 habe ich es so eingerichtet, dass der Motor bei Bedarf die Richtung wechseln kann. Dieser Wille

A. Schalten Sie den Motor ein

B. 2 Sekunden in eine Richtung bewegen

C. Wechseln Sie die Richtung für 2 Sekunden und

D. Wiederholen

Ich möchte nur das Setup und die Funktionalität testen und dies hat sich bewährt (nach Änderung des Pulses von 50 auf 100, siehe Bild oben).

Der nächste Sketch erhöht die Beschleunigung, Bilder 6 - 8. Ich starte PWM von 100 (wie aus dem ersten Sketch-Lauf bestimmt) und beschleunige auf 255. Dies wird

A. Beschleunigen Sie Pin 3 (CW-Richtung) von 100 auf 255 auf PWM für 0,1 Sekunden

B. Verzögern von 255 auf 100 für 0,1 Sekunden

C. Richtung wechseln, Pin 4 (CCW)

D. Beschleunigen/Verzögern, wie bei Pin 3

E. Wiederholen

Dieser Prozess ist (irgendwie) im letzten Bild zu sehen, aber für eine bessere Darstellung verweisen wir auf das Video.

Diese Grundskizzen können auch an Ihren DC-Motor angepasst werden. Ich glaube, viele Leute verwenden diese Art von Skizze zur Steuerung von Robotern oder anderen Arten von Rollgeräten. Ich wollte nur die Funktion überprüfen und selbst ein besseres Verständnis dafür bekommen, ob dieser Motor läuft oder nicht.

Schritt 4: Letzte Gedanken (vorerst)

Hier würde ich sagen, Phase 1 ist abgeschlossen.

Ich weiß, dass der Encoder funktioniert und der Motor mit PWM auf dem Arduino läuft.

Das nächste, was für meine endgültige Anwendung wäre, wäre:

1. Bestimmen Sie die Impulse pro Umdrehung (PPR) des Encoders für seinen A & B-Pfad, Top & Bottom. Ich bin mir sicher, dass es irgendwo eine Skizze gibt, in der ich meine PWM zusammen mit einem Zähler für Encoderimpulse, CW & CCW ausführen könnte, aber ich habe noch keinen gefunden. (Alle Kommentare, wo man eine Arduino-Skizze findet, wird sehr geschätzt!)

2. Bestimmen Sie, wie dieser DC-Motor/Encoder auf GRBL betrieben wird und kalibrieren Sie zwangsläufig die Achsen. (Auch hier kommentieren Sie bitte, wenn Sie etwas wissen) Ich möchte dies mit einem Microsoft-Laptop tun. Ich habe einige mit Linux gefunden, aber das wird mir nicht helfen.

3. Entwerfen Sie die Maschine so, dass sie als Teil einer ganzen CNC funktioniert.

Alle Gedanken zu diesem Ziel werden auf jeden Fall empfohlen, wenn Sie sie im Kommentarbereich hinterlassen möchten. Vielen Dank fürs Suchen und ich hoffe, das hilft/inspiriert jemanden.