Inhaltsverzeichnis:
- Schritt 1: Stepper kennenlernen
- Schritt 2: Gemeinsame Masse finden
- Schritt 3: Ermitteln Sie die Schrittreihenfolge
- Schritt 4: Nehmen Sie den Motor für eine Probefahrt
- Schritt 5: Schwingen Sie es hin und her
- Schritt 6: Ich mache nie einen Halbschritt, weil ich kein Halbschritt bin …
- Schritt 7: Einen Motortreiber hinzufügen
- Schritt 8: Das Ende
Video: Einen Schrittmotor mit einem AVR-Mikroprozessor antreiben - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
Haben Sie einige gesäuberte Schrittmotoren von Druckern/Plattenlaufwerken/etc herumliegen?
Einige Sondierungen mit einem Ohmmeter, gefolgt von einem einfachen Treibercode auf Ihrem Mikroprozessor, und Sie werden mit Stil eintreten.
Schritt 1: Stepper kennenlernen
Grundsätzlich müssen Sie herausfinden, wohin all die kleinen Drähte gehen.
Der erste Schritt besteht darin, herauszufinden, ob es sich um einen unipolaren oder bipolaren Motor handelt. Werfen Sie einen Blick auf Jones on Steppers, um einen tieferen Hintergrund zu erhalten, und dann auf Ian Harries' Site, um eine einfache Methode zu finden, um einen unbekannten Motor herauszufinden. Lesen Sie sich ein wenig durch und machen Sie dann mit mir eine exemplarische Vorgehensweise zu diesem Motor, den ich günstig bekommen habe. (Sie sind gerade für 0,99 $ im Angebot. Sie sind klein, relativ leicht, haben aber nicht viel Drehmoment. Ich weiß noch nicht, wofür sie gut sein werden.)
Schritt 2: Gemeinsame Masse finden
Sie haben also fünf (oder vier oder sechs) Drähte. Ihr Motor wird zwei Hälften haben, und Sie können wahrscheinlich sogar feststellen, zu welcher Seite jeder Draht gehört.
Wenn Sie nur vier Drähte betrachten, haben Sie Glück - es ist ein bipolarer Motor. Alles, was Sie tun müssen, ist herauszufinden, welche beiden Kabelpaare zusammenpassen. Wenn Sie einen unipolaren Motor oder mehr als 4 Drähte haben, müssen Sie Ihr Ohmmeter ausbrechen. Was Sie suchen, ist der gemeinsame (Masse-) Draht für jede Hälfte. Sie können erkennen, welche Masse in einem bipolaren Motor geerdet ist, da er gegen einen der Pole den halben Widerstand hat als die Pole über sich selbst. Abgebildet sind meine Notizen vom Anschließen von Drähten an Drähte und dem Notieren des Widerstands (oder wenn sie überhaupt verbunden sind). Sie können sehen, dass Weiß der Boden für das unterste Trio b/c ist, es hat den halben Widerstand gegen Rot oder Blau, den sie zueinander haben. (Dieser Motor ist seltsam und hat keinen Mittelabgriff an der oberen Magnetspule. Es ist, als wäre er halb bipolar, halb unipolar. Vielleicht könnten Sie dies verwenden, um die Drehung in der Rot-Weiß-Blau-Spule zu erfassen, wenn die Schwarz-Gelb Spule wird angetrieben.)
Schritt 3: Ermitteln Sie die Schrittreihenfolge
Ich wollte diesen Motor als bipolaren Motor fahren, also ignoriere ich das weiße Massekabel. Ich habe nur vier Drähte, um die ich mir Sorgen machen muss.
Möglicherweise möchten Sie Ihren unipolaren Motor sowieso bipolar betreiben, da er die gesamte Spule in beiden Phasen verwendet, anstatt zwischen den beiden Hälften jeder Spule abzuwechseln. Mehr Spule = mehr Drehmoment. Lassen Sie Strom durch ein Paar (beachten Sie die von Ihnen gewählte Polarität) und lassen Sie dann gleichzeitig Strom durch das andere Paar. Achten Sie beim Anschließen des zweiten Paars darauf, in welche Richtung sich der Motor dreht. Schreib das auf. Vertauschen Sie nun die Polarität am ersten Paar, das Sie ausgewählt haben. Schließen Sie dann das zweite Paar wieder mit umgekehrter Polarität an. Beachten Sie die Richtung. Daraus sollten Sie in der Lage sein, die Reihenfolge zum Drehen des Motors in beide Richtungen herauszufinden. In meinem Beispiel drehten sich beide gegen den Uhrzeigersinn. Wenn Sie also die Sequenz auf die gleiche Weise durchlaufen, die ich gewählt habe, wird der Motor gegen den Uhrzeigersinn geschaltet.
Schritt 4: Nehmen Sie den Motor für eine Probefahrt
Wenn Sie noch nicht mit der Programmierung von Mikroprozessoren vertraut sind, könnten Sie schlechter abschneiden als das Ghetto Development Kit oder einer der verschiedenen PIC-Programmierer. Schließen Sie die Drähte direkt an Ihren Microproc an und verbrennen Sie ihn mit dem folgenden Code:
/* Spielen damit, die kleinen Schrittmotoren anzutreiben. */
/* Verzögerungsfunktion einschließen */ #define F_CPU 1000000UL #include /* Pin-Defs für ATTiny2313 */ /* Reihenfolge im Uhrzeigersinn */ #define BLUE _BV(PB0) #define BLACK _BV(PB1) #define ROT _BV(PB2) #define YELLOW _BV(PB3) #define DELAY 200 /* Millisekunden zwischen den Schritten */ int main(void){ DDRB = 0xff; /* Ausgabe an allen B-Pins aktivieren */ PORTB = 0x00; /* Setze sie alle auf 0v */ while(1){ /* Hauptschleife hier */ PORTB = BLUE; _verzögerung_ms (VERZÖGERUNG); PORTB = SCHWARZ; _verzögerung_ms (VERZÖGERUNG); PORTB = ROT; _verzögerung_ms (VERZÖGERUNG); PORTB = GELB; _verzögerung_ms (VERZÖGERUNG); } } Wie einfach ist dieser Code? Wirklich einfach. Alles, was es tut, ist, einige nette Definitionen zu machen, damit ich die Drähte nach Farbe anstatt nach ihren Pin-Namen beziehen kann, und dann schaltet es sie nacheinander mit einer einstellbaren Verzögerung dazwischen ein. Für den Anfang habe ich eine Verzögerung von einer halben Sekunde zwischen den Schritten ausgewählt. Sehen Sie das kurze Video für die Ergebnisse. Wenn Sie wirklich fit sind, zählen Sie die Anzahl der Schritte pro Zyklus, um die Einzelschritt-Winkelauflösung des Motors zu ermitteln. (Oh ja. PS. Läuft problemlos ohne Last bei 3,6 V. Siehe Batterie im Video.)
Schritt 5: Schwingen Sie es hin und her
Sie haben es also im Uhrzeigersinn laufen lassen. Etwas Interessanteres? Eine kleine Code-Bereinigung, und wir können es hin und her laufen lassen. Ich habe die Sequenz im Uhrzeigersinn in ein Array eingefügt, damit Sie mit einer einfachen for-Schleife durch die Phasen gehen können. Jetzt können Sie die Schleife nach oben oder unten laufen lassen, um im oder gegen den Uhrzeigersinn zu gehen.
int main (void) { const uint8_t delay = 50; const uint8_t im Uhrzeigersinn = {BLAU, SCHWARZ, ROT, GELB}; uint8_t i; DDRB = 0xff; /* Ausgabe an allen B-Pins aktivieren */ PORTB = 0x00; /* Setze sie alle auf 0v */ while(1){ /* Hauptschleife hier */ for (i=0; i<=3; i++){ /* Schritt durch die Farben im Uhrzeigersinn */ PORTB = im Uhrzeigersinn; _delay_ms (Verzögerung); } for (i=3; i>=0; i--){/* Schritt durch die Farben ccw */ PORTB = im Uhrzeigersinn; _delay_ms (Verzögerung); } }} Sehen Sie das rasante Video für das Hin und Her.
Schritt 6: Ich mache nie einen Halbschritt, weil ich kein Halbschritt bin …
Abgesehen von der Quest-Lyrik ist es, wenn Sie Ihren Motor halb antreten. Sie erhalten mehr Spitzenstrom, mehr Momentandrehmoment und die doppelte Winkelauflösung. Halber Schritt auf den Punkt gebracht: Statt Blau, Schwarz, Rot, Gelb treiben Sie den Motor mit Blau, Blau+Schwarz, Schwarz, Schwarz+Rot, Rot, Rot+Gelb, Gelb, Gelb+Blau an. Das Ergebnis ist, dass Sie für die Hälfte der Zeit beide Magnete gleichzeitig angreifen. Und während der Zeit, in der beide Sätze aktiviert sind, zeigt der Motor auf halbem Weg zwischen den beiden, wodurch der Winkel zwischen den "Schritten" kleiner wird und der Motor ruhiger läuft. Kannst du aus dem Video sagen? Ich bin mir nicht sicher… Nun sieht der Teil des Codes, der die Halbschritte ausführt, so aus:
Void HalfStepping (uint16_t Verzögerung, uint8_t Richtung) { uint8_t i; für (i=0; i<=3; i++){PORTB = Richtung; /* Single-Coil-Teil */ _delay_ms(delay); PORTB |= Richtung[i+1]; /* Halbschritt hinzufügen */ _delay_ms(delay); }} Der erste PORTB-Befehl setzt einen einzelnen Pol auf Plus und alle anderen auf Minus. Dann wartet es. Dann setzt der zweite PORTB-Befehl einen zweiten Pol (an der anderen Wicklung) auf Plus, wobei beide Wicklungen für das 1,4-fache des Drehmoments (und das 2-fache des Stroms) aktiviert werden. Eine vollständige Programmliste ist unten beigefügt. Jetzt sind zwei Arrays definiert (im Uhrzeigersinn, gegen den Uhrzeigersinn) und beide haben jeweils 5 Elemente, um den i+1-Eintrag in der halfStepping-Funktion zu ermöglichen.
Schritt 7: Einen Motortreiber hinzufügen
So weit, ist es gut.
Das einzige Problem ist, dass der Motor nicht so viel Drehmoment zu haben scheint, was daran liegen könnte, dass der Mikroprozessor nur ~ 50 mA pro Pin ausgibt. Der naheliegende nächste Schritt wäre, es an einen Motortreiber anzuschließen, um es mit mehr Saft zu versorgen. Aber dann ein bisschen nachdenken: Ich fahre es nur mit 5V und der Spulenwicklungswiderstand beträgt ~125 Ohm. Das bedeutet, dass der Motor nur 40 mA pro Pin zieht und er vom (starken!) AVR-Chip problemlos angesteuert werden sollte. Um den Motor mit mehr Spannung anzutreiben, habe ich ihn an einen SN754410 H-Brücken-Chip angeschlossen. Die Schaltung ist ziemlich einfach. Jeder Pin vom AVR geht an einen Eingang und die entsprechenden Ausgangspins gehen an den Motor. Der Chip benötigt 5 V für den Logikabschnitt und kann im Motorabschnitt viel mehr Spannung aufnehmen. Es hat ein wenig geholfen, es mit 11,25 V (drei 3,6 V-Batterien) zu betreiben. Spürbar mehr Drehmoment für meinen Finger, aber es ist immer noch kein Kraftpaket. Nicht schlecht für einen Motor, der kleiner als ein Nickel ist. Und jetzt ist die Schaltung ein universeller bipolarer Schrittmotortreiber. Hinzugefügt am 29. November: Habe den Motor letzte Nacht eine Weile mit 12 V laufen lassen und er wurde heiß. Ich bin mir nicht sicher, ob es ein Resonanzfrequenzproblem war oder ob es einfach zu viel Strom für die Wicklungen war. Seien Sie in jedem Fall etwas vorsichtig, wenn Sie diesen kleinen Motor mit größeren Spannungen fahren.
Schritt 8: Das Ende
Was habe ich also gelernt? Das Ansteuern eines Schrittmotors mit einem AVR (und einem H-Brücken-Chip) ist sogar im "fancy" Halbschrittmodus ziemlich einfach.
Ich bin mir aber noch nicht sicher, was ich mit den kleinen Schrittmotoren machen werde. Irgendwelche Vorschläge?
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
So koppeln Sie einen Xbox One-Controller mit einem Windows 10-Laptop.: 16 Schritte
So koppeln Sie einen Xbox One Controller mit einem Windows 10 Laptop.: Sie benötigen:Xbox ControllerWindows 10 Laptop
So schalten Sie jedes Gerät aus der Ferne ein, z. einen Computer (mit einem Mobiltelefon): 5 Schritte
So schalten Sie jedes Gerät aus der Ferne ein, z. ein Computer (mit einem Mobiltelefon): In diesem anweisbaren zeige ich Ihnen, wie Sie ein altes Mobiltelefon in einen Fernschalter für Ihren Computer verwandeln. Für andere Geräte siehe letzter Schritt. Dies ist fast kostenlos, wenn Sie ein altes Handy und eine SIM-Karte besitzen. Was Sie brauchen: - Altes Handy (w
Einen intelligenten Koffer mit einem Raspberry Pi herstellen – wikiHow
So bauen Sie einen intelligenten Koffer mit einem Raspberry Pi: In diesem Tutorial erkläre ich, wie Sie mit einem Raspberry Pi einen intelligenten Koffer herstellen können. Wenn Sie fertig sind, können Sie Ihren Koffer weltweit verfolgen und wiegen es ohne die Notwendigkeit einer Waage.Lass uns loslegen
So reparieren Sie einen Wechselrichter mit LCD-Hintergrundbeleuchtung. Mit einem Fujiplus FP-988D. für 0 $.: 9 Schritte
So reparieren Sie einen Wechselrichter mit LCD-Hintergrundbeleuchtung. Mit einem Fujiplus FP-988D. für $ 0.: In diesem anweisbaren werde ich Sie durch die Reparatur eines toten LCD-Hintergrundlicht-Wechselrichters mit den Teilen führen, die Sie haben. Sie können feststellen, ob Sie ein totes Gegenlicht haben, indem Sie zuerst andere Möglichkeiten ausschließen. Monitor auf mehreren Computern überprüfen. Stellen Sie sicher, dass