- Schrittmotor:
- ULN2003 Schrittmotortreiber:
- Erforderliche Komponenten
- Schaltplan und Erklärung
- Code Erklärung
Der Schrittmotor ist ein speziell entwickelter Motor, der sich schrittweise dreht. Die Drehzahl des Schrittmotors hängt von der Rate des an ihn angelegten elektrischen Signals ab. Verschiedene Muster können die Richtung und den Drehtyp des Schrittmotors steuern. Es stehen hauptsächlich zwei Arten von Schrittmotoren zur Verfügung, unipolar und bipolar. Unipolar ist einfacher zu bedienen, zu steuern und auch einfacher zu bekommen. Hier in diesem Tutorial verbinden wir den Schrittmotor mit dem PIC-Mikrocontroller PIC16F877A.
Wir verwenden für dieses Projekt einen Schrittmotor 28BYJ-48, der billig und leicht verfügbar ist. Es ist ein 5V DC unipolarer Schrittmotor. Wir verwenden auch ein mit diesem Motor erhältliches Modul, das aus dem Schrittmotortreiber-IC ULN2003 besteht. ULN2003 ist ein Darlington-Paar-Array, das zum Antreiben dieses Motors nützlich ist, da der PIC-Mikrocontroller nicht genügend Strom zum Ansteuern liefern konnte. ULN2003A kann 500 mA Last mit 600 mA Spitzenstrom betreiben.
Schrittmotor:
Sehen wir uns die Spezifikation des 28BYJ-48 Schrittmotors aus dem Datenblatt an.
So drehen Sie den Schrittmotor:
Wenn wir das Datenblatt sehen, sehen wir die Pinbelegung.
Im Motor stehen zwei Spulen mit Mittelabgriff zur Verfügung. Roter Draht ist die gemeinsame für beide, die an VCC oder 5V angeschlossen werden.
Andere 4 Drähte in Pink, Rot, Gelb und Blau steuern die Drehung abhängig vom elektrischen Signal. Abhängig von der Bewegung kann dieser Motor auch in 3 Schritten gesteuert werden. Vollantriebsmodus, Halbantriebsmodus und Wellenantriebsmodus.
Drei Fahrmodi des Schrittmotors:
Voller Antrieb: Wenn zwei Statorelektromagnete gleichzeitig erregt sind, läuft der Motor mit vollem Drehmoment, was als Vollantriebssequenzmodus bezeichnet wird.
Schritt |
Blau |
Rosa |
Gelb |
Orange |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Halbantrieb: Wenn abwechselnd eine oder zwei Phasen erregt werden, läuft der Motor im Halbantriebsmodus. Es wird verwendet, um die Winkelauflösung zu erhöhen. Nachteil ist weniger Drehmoment, das bei dieser Bewegung erzeugt wird.
Schritt |
Blau |
Rosa |
Gelb |
Orange |
1 |
1 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
0 |
3 |
0 |
1 |
0 |
0 |
4 |
0 |
1 |
1 |
0 |
5 |
0 |
0 |
1 |
1 |
6 |
0 |
0 |
0 |
1 |
7 |
1 |
0 |
0 |
1 |
8 |
1 |
0 |
0 |
0 |
Wellenantrieb: In diesem Modus ist ein Statorelektromagnet eingeschaltet. Es folgt 4 Schritten wie im Vollantriebsmodus. Es verbraucht wenig Strom bei geringem Drehmoment.
Schritt |
Blau |
Rosa |
Gelb |
Orange |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
0 |
4 |
0 |
0 |
0 |
1 |
Wir haben zuvor den Schrittmotor mit anderen Mikrocontrollern verbunden:
Der Schrittmotor kann auch ohne Mikrocontroller gesteuert werden, siehe diese Schrittmotortreiberschaltung.
ULN2003 Schrittmotortreiber:
Lassen Sie uns die Breakout-Karte verstehen, die aus ULN2003 IC besteht. Es ist wichtig, die Stecknadel zu verstehen.
Der gelbe Teil dient zum Anschließen des Motors. Der rote Teil zeigt einen Jumper. Es ist wichtig, den Jumper zu platzieren, da er den Schutz der Freilaufdiode für den Motor ermöglicht . Der rosa Eingang ist für den Mikrocontroller-Anschluss vorgesehen.
Wir werden den Motor im Vollantriebsmodus im Uhrzeigersinn drehen und ihn erneut im Wellenantriebsmodus gegen den Uhrzeigersinn drehen. Überprüfen Sie das Demonstrationsvideo am Ende.
Erforderliche Komponenten
- Pic16F877A
- Programmierkit
- Steckbrett
- 20 MHz Kristall
- 33pF Scheibenkondensator - 2St
- 4,7k Widerstand
- Berg Drähte und Stifte
- ULN2003A Breakout Board zusammen mit dem Schrittmotor 28BYJ-48.
- Zusätzliche Kabel zum Anschließen
- 5V Netzteil oder Wandadapter mit 500mA Nennspannung
Schaltplan und Erklärung
Im Schaltplan wird auf der linken Seite der PIC16F877A und auf der rechten Seite der ULN2003A-Anschluss angezeigt. Der ULN2003 und der Schrittmotor befinden sich im Breakout Board.
Die Verbindung von der Breakout-Karte zur Mikrocontroller-Einheit wird hergestellt
A. IN1 => Pin33
B. IN2 => Pin34
C. IN3 => Pin35
D. IN4 => Pin36
Ich habe alle Komponenten und Ihre Hardware angeschlossen, um den Schrittmotor mit PIC-Mikrocontroller zu drehen.
Wenn Sie mit PIC Microcontroller noch nicht vertraut sind, befolgen Sie unsere PIC Microcontroller-Tutorials unter Erste Schritte mit PIC Microcontroller.
Code Erklärung
Der vollständige Code für diesen PIC-basierten Schrittmotortreiber finden Sie am Ende dieses Tutorials mit einem Demonstrationsvideo. Wie immer müssen wir zuerst die Konfigurationsbits im pic-Mikrocontroller setzen und dann mit der void- Hauptfunktion beginnen.
Dies sind die Makros für Konfigurationsbits der Mikrocontrollereinheit und der Bibliotheksheaderdateien.
#define _XTAL_FREQ 200000000 // Kristallfrequenz, die in der Verzögerung verwendet wird #define Geschwindigkeit 1 // Geschwindigkeitsbereich 10 bis 1 10 = niedrigste, 1 = höchste #define Schritte 250 // wie viel Schritt es dauern wird #define im Uhrzeigersinn 0 // Richtung im Uhrzeigersinn Makro #define anti_clockwise 1 // Makro gegen den Uhrzeigersinn
In der ersten Zeile haben wir die Kristallfrequenz definiert, die für die Verzögerungsroutine benötigt wird. Andere Makros werden verwendet, um benutzerbezogene Optionen zu definieren.
Wenn Sie den Code sehen, sind drei Funktionen definiert, um den Motor in drei Modi im Uhrzeigersinn und gegen den Uhrzeigersinn anzutreiben. Hier sind die drei Funktionen:
1. void full_drive (Zeichenrichtung)
2. void half_drive (Zeichenrichtung)
3. void Wave_drive (Zeichenrichtung)
Überprüfen Sie die Definitionen dieser Funktionen im folgenden vollständigen Code:
In der ungültigen Hauptfunktion fahren wir den Motor abhängig von den Schritten im Uhrzeigersinn im Vollantriebsmodus und drehen den Motor nach einigen Sekunden Verzögerung im Wellenantriebsmodus erneut gegen den Uhrzeigersinn.
void main (void) { system_init (); während (1) { / * Den Motor im Vollantriebsmodus im Uhrzeigersinn antreiben * / für (int i = 0; i
So können wir den Schrittmotor mit dem PIC Microcontroller drehen. Schrittmotoren sind sehr nützlich in CNC-Maschinen, Robotik und anderen eingebetteten Anwendungen.