En af de Den mest populære trinmotor er 28BYJ-48. Efter artiklen, der blev offentliggjort i denne blog, skulle du allerede vide det alt hvad du behøver om denne type motor af præcision, hvor du kan styre drejningen, så den bevæger sig langsomt eller forbliver statisk i en position, du ønsker. Det giver dem mulighed for at have et væld af applikationer, fra industriel, til robotik, gennem mange andre, som du kan tænke på.
28BYJ-48 er en lille trinløs motor af enpolet type, og let at integrere med Arduino, da den har en driver / controller modul model ULN2003A, der normalt er inkluderet sammen med den. Alt til en meget billig pris og en ret kompakt størrelse. Disse funktioner gør det også ideelt at begynde at øve med disse enheder.
28BYJ-48 Funktioner
Motoren 28BYJ-498 Det er en trinvis motor, der har følgende egenskaber:
- Tipo: stepper motor eller unipolar step
- faser: 4 (fuld trin), da der er 4 spoler indeni.
- Modstand: 50 Ω.
- Motormoment: 34 N / m, det vil sige, hvis Newton pr. Meter overføres til Kg, ville det være en kraft svarende til at lægge ca. 0.34 kg pr. Cm på sin akse. Nok til at løfte med en remskive lidt over et kvart kilo.
- Forbrug: 55 mA
- Trin pr. Omgang: 8 af halvtrins typen (45º hver)
- Integreret gearkasse: ja, 1/64, så det deler hvert trin i 64 mindre for større præcision, derfor når det 512 trin på 0.7 ° hver. Eller det kan også ses som 256 fulde trin pr. Omgang (fuldt trin).
Fuld eller halv trin, eller fuld og halv trin, er de tilstande, du kan arbejde i. Hvis du husker det, sagde jeg i artiklen om trinmotorer, at kodeeksemplet til Arduino IDE fungerede med fuldt drejningsmoment.
For mere information kan du download dit databladSom for eksempel dette. Med hensyn til pinout behøver du ikke bekymre dig for meget, selvom du også kan se oplysninger i databladet for den model, du har købt. Men denne beton har en forbindelse, der giver dig mulighed for at forbinde alle kablerne på én gang uden at bekymre dig om polarisering, eller hvor hver enkelt går, bare indsæt i controlleren og voila ...
Med hensyn til motorstyringen eller driveren, der er inkluderet i denne 28BYJ-48 motor, har du det ULN2003A, en af de mest populære, og som du nemt kan bruge med Arduino. Den har en række Darlington-transistorer, der understøtter op til 500mA og har forbindelsesstifter, der forbinder de 4 spoler med stifter på Arduino-kortet nummereret fra IN1 til IN4, som du så i trinmotorartiklen, som jeg nævnte ovenfor. Fra Arduino kan du have ledninger fra pin 5v og GND til de to ben på drivermodulkortet, der er markeret - + (5-12v) for at drive kortet og stepmotoren.
Forresten, med Darlington transistorer det er tilladt at bruge et par bipolære transistorer placeret sammen og fungerer som en enkelt transistor. Dette øger signifikant forstærkning af signalet i den resulterende enkelt 'transistor', og tillader også højere strømme og spændinger.
El Darlington par, som den enkelte "transistor" dannet ved kombinationen af to bipolære transistorer er kendt. Det stammer fra Bell Labs i 1952 af Sidney Darlington, deraf navnet. Disse transistorer er forbundet på en sådan måde, at en NPN har sin kollektor tilsluttet samleren til den anden NPN-transistor. Mens udstederen af den første går til bunden af den anden. Det vil sige, at den resulterende transistor eller par har tre forbindelser som en enkelt transistor. Basen på den første transistor og samleren / emitteren til den anden transistor ...
Hvor kan man købe motoren
masse kan du finde i mange butikker specialiseret i elektronik, og også online som Amazon. For eksempel kan du købe dem på:
- For omkring € 6 kan du have en 28BYJ-48 motor med drivermodul.
- Ingen produkter fundet. og kabler til dens forbindelser, hvis du har brug for mere end en motor til den robot eller det projekt, du laver ...
Programmering af 28BYJ-48 med Arduino
Først og fremmest skal du være klar over begreberne med en stepper motor, så jeg anbefaler dig læs Hwlibres artikel om disse emner. Disse motorer er ikke designet til at blive fodret kontinuerligt, men til at polarisere dem i deres forskellige faser, så de kun bevæger sig de grader, vi ønsker. For at excitere faserne og kontrollere akselens rotation skal du føde hver forbindelse korrekt.
Producenten anbefaler at køre 2 spoler ad gangen.
- For at få det til at fungere ved maksimalt drejningsmoment, med den hurtigste hastighed og maksimale forbrug, kan du bruge denne tabel:
Paso | Spole A | Spole B | Spole C | Spole D. |
---|---|---|---|---|
1 | HØJ | HØJ | LOW | LOW |
2 | LOW | HØJ | HØJ | LOW |
3 | LOW | LOW | HØJ | HØJ |
4 | HØJ | LOW | LOW | HØJ |
- At kun excitere en spole ad gangen og få det til at fungere i bølgedrevstilstand (selv for halvdelen, men lavt forbrug), kan du bruge følgende tabel:
Paso | Spole A | Spole B | Spole C | Spole D. |
---|---|---|---|---|
1 | HØJ | LOW | LOW | LOW |
2 | LOW | HØJ | LOW | LOW |
3 | LOW | LOW | HØJ | LOW |
4 | LOW | LOW | LOW | HØJ |
- Eller til fremskridt halve trin, kan du bruge dette til at opnå større drejepræcision i kortere trin:
Paso | Spole A | Spole B | Spole C | Spole D. |
---|---|---|---|---|
1 | HØJ | LOW | LOW | LOW |
2 | HØJ | HØJ | LOW | LOW |
3 | LOW | HØJ | LOW | LOW |
4 | LOW | HØJ | HØJ | LOW |
5 | LOW | LOW | HØJ | LOW |
6 | LOW | LOW | HØJ | HØJ |
7 | LOW | LOW | LOW | HØJ |
8 | LOW | LOW | LOW | HØJ |
Og du tænker måske ... hvad har dette at gøre med Arduino-programmering? Sandheden er, at meget, siden du kan oprette en matrix eller matrix med værdierne i Arduino IDE så motoren bevæger sig som du ønsker, og brug derefter arrayet i en løkke, eller når du har brug for det ... Under hensyntagen til at LOW = 0 og HIGH = 1, det vil sige fravær af spænding eller højspænding, kan du oprette de signaler, som Arduino skal sendes til controlleren for at køre motoren. For eksempel for at tage mellemstore trin kan du bruge koden til matrixen:
int Paso [ 8 ][ 4 ] = { {1, 0, 0, 0}, {1, 1, 0, 0}, {0, 1, 0, 0}, {0, 1, 1, 0}, {0, 0, 1, 0}, {0, 0, 1, 1}, {0, 0, 0, 1}, {1, 0, 0, 1} };
Det vil sige til den komplette kode for skitsen Fra Arduino IDE kan du bruge dette grundlæggende eksempel til at teste, hvordan 28BYJ-48 stepmotoren fungerer. Med det kan du dreje motorakslen, når hele diagrammet er korrekt tilsluttet. Prøv at ændre værdierne eller ændre koden til det program, du har brug for i dit tilfælde:
// Definir pines conectados a las bobinas del driver #define IN1 8 #define IN2 9 #define IN3 10 #define IN4 11 // Secuencia de pasos a par máximo del motor. Realmente es una matriz que representa la tabla del unipolar que he mostrado antes int paso [4][4] = { {1, 1, 0, 0}, {0, 1, 1, 0}, {0, 0, 1, 1}, {1, 0, 0, 1} }; void setup() { // Todos los pines se configuran como salida, ya que el motor no enviará señal a Arduino pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); } // Bucle para hacerlo girar void loop() { for (int i = 0; i < 4; i++) { digitalWrite(IN1, paso[i][0]); digitalWrite(IN2, paso[i][1]); digitalWrite(IN3, paso[i][2]); digitalWrite(IN4, paso[i][3]); delay(10); } }
Som du kan se, ville det i dette tilfælde fungere med maksimalt drejningsmoment, der aktiverer spolerne to og to ...