Schrittmotor 28BYJ-48 mit ULN2003 Treiberplatine: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 9: | Zeile 9: | ||
[[Datei:03480 5b.jpg|thumb|rigth|300px|Abb. 2: Schrittmotor 28BYJ-48]] | [[Datei:03480 5b.jpg|thumb|rigth|300px|Abb. 2: Schrittmotor 28BYJ-48]] | ||
[[Datei:ME015 03.jpg|thumb|rigth|300px|Abb. 3: ULN2003 Treiberplatine]] | [[Datei:ME015 03.jpg|thumb|rigth|300px|Abb. 3: ULN2003 Treiberplatine]] | ||
[[Datei:Ansteuerung Schrittmotor.jpg|thumb|rigth| | [[Datei:Ansteuerung Schrittmotor.jpg|thumb|rigth|500px|Abb. 4: Ansteuerung des Schrittmotors]] | ||
== Technische Daten == | == Technische Daten == |
Version vom 20. November 2023, 16:52 Uhr
Autoren: Prof. Dr.-Ing. Schneider
Einleitung
Bei demSchrittmotor 28BYJ-48 handelt es sich um einen Motor, der sich speziell für kleine Anwendungen mit dem Arduino-Board eignet. Die Besonderheit liegt darin, dass er ohne eine externe Spannungsversorgung betrieben werden kann. Der Motor entwickelt dabei ein relativ hohes Drehmoment. Dies wird durch ein Getriebe realisiert, welches innerhalb des Metallgehäuses vor dem eigentlichen Schrittmotor verbaut wurde. Dadurch wird es in dieser kompakten Bauweise überhaupt erst möglich, dass sich eine ganze Umdrehung der Antriebswelle auf 2048 Einzelschritte aufteilen lässt. Ein kleiner daraus resultierender Nachteil ist die langsame maximale Drehgeschwindigkeit.
Der Schrittmotor wird an die Motorsteuerungsplatine (ULN2003 Modul) angeschlossen. Diese versorgt den Motor mit ausreichend elektrischer Energie, damit die Leistung nicht von den digitalen Pins des Arduino-Boards aufgebracht werden muss. Die Steuerungsplatine gibt es in zwei Versionen, bei denen die seitlich angebrachten Pins entweder nach oben oder nach unten aus der Platine herausragen. Die Anschlussbelegung ist jedoch gleich.
Technische Daten
Anzahl Phasen | 4 |
Frequenz | 100 Hz |
Getriebe | 64:1 |
Schritte pro Umdrehung | 2048 |
Schrittweite | 5,625 °/64 (Halbschritt Modus) |
Drehmoment | 34.3 Nm |
Nennspannung | 5 V |
Stromaufnahme pro Spule | 100 mA |
Spulenwiderstand | 50 Ω |
Lautstärke | <40 dB |
Kabellänge | 24 cm |
Leehrlaufgeschwindigkeit | 17 UPM |
Außendurchmesser Motorgehäuse | 28 mm |
Abmessungen | ⌀28 mm x 19 mm (ohne Schaft) |
Gewicht | 30 g |
Pinbelegung
Pin | Belegung | Farbe |
---|---|---|
1 | Versorgungsspannung (VCC, 5 V) | Rot |
2 | Masse (GND) | Orange |
3 | Gelb | |
4 | Versorgungsspannung VCC | Pink |
5 | Versorgungsspannung VCC | Blau |
Ansteuerung
Die Steuerung von Schrittmotoren erfolgt über elektrische Impulse mit einer bestimmten Frequenz, Sequenz und Länge. So wird bestimmt wie schnell, wie viele Schritte und in welche Richtung der Schrittmotor sich drehen soll. Der Treiber übersetzt die Impulse vom Controller und versorgt den Schrittmotor mit Spannung. The motor has 4 coils of wire that are powered in a sequence to make the magnetic motor shaft spin. When using the full-step method, 2 of the 4 coils are powered at each step. The default stepper library that comes pre-installed with the Arduino IDE uses this method. The 28BYH-48 datasheet specifies that the preferred method for driving this stepper is using the half-step method, where we first power coil 1 only, then coil 1 and 2 together, then coil 2 only and so on…With 4 coils, this means 8 different signals, like in the table below.
Schritt | IN1 | IN2 | IN3 | IN4 |
---|---|---|---|---|
1 | 1 | 0 | 1 | 0 |
2 | 0 | 1 | 1 | 0 |
3 | 0 | 1 | 0 | 1 |
4 | 1 | 0 | 0 | 1 |
Stepper.h - Stepper library for Wiring/Arduino - Version 1.1.0 |
// ensure this library description is only included once
#ifndef Stepper_h
#define Stepper_h
// library interface description
class Stepper {
public:
// constructors:
Stepper(int number_of_steps, int motor_pin_1, int motor_pin_2);
Stepper(int number_of_steps, int motor_pin_1, int motor_pin_2,
int motor_pin_3, int motor_pin_4);
Stepper(int number_of_steps, int motor_pin_1, int motor_pin_2,
int motor_pin_3, int motor_pin_4,
int motor_pin_5);
// speed setter method:
void setSpeed(long whatSpeed);
// mover method:
void step(int number_of_steps);
int version(void);
private:
void stepMotor(int this_step);
int direction; // Direction of rotation
unsigned long step_delay; // delay between steps, in ms, based on speed
int number_of_steps; // total number of steps this motor can take
int pin_count; // how many pins are in use.
int step_number; // which step the motor is on
// motor pin numbers:
int motor_pin_1;
int motor_pin_2;
int motor_pin_3;
int motor_pin_4;
int motor_pin_5; // Only 5 phase motor
unsigned long last_step_time; // time stamp in us of when the last step was taken
};
#endif
|
Demo
Videos
Hilfreiche Links
- Funduino Anleitung
- Arduino.cc: Stepper
- Arduino Reference: Stepper
- Moving the 28BYJ-48 Stepper Motor
- [1]
- [2]