Gebruik die 28BYJ-48 Stappermotor met 'n ULN2003 Bestuurder en Arduino
In hierdie tutorial sal ons leer hoe om 'n 28BYJ-48 stapmotor te beheer met 'n ULN2003-ryer saam met 'n Arduino. Hierdie opstelling maak dit moontlik om die motor se posisie en spoed presies te beheer. Teen die einde van hierdie projek sal jy in staat wees om die motor in beide rigtings te draai en sy stappe effektief te beheer.
Ons sal die 28BYJ-48 stapmotor gebruik, wat 'n gewilde keuse is vir verskeie robotika- en outomatiseringsprojekte weens sy lae koste en gebruiksgemak. Die ULN2003 dryfplaat koppel die stapmotor met die Arduino, wat ons in staat stel om stap seine te stuur wat die motor se beweging beheer. Hierdie tutoriaal sal jou lei deur die nodige bedrading en kode om jou motor te laat draai.
Vir verdere verduideliking, verwys asseblief na die video wat met hierdie tutoriaal geassosieer is (in video by 0:45).
Hardeware verduidelik
Die sleutelkomponente van hierdie projek sluit die 28BYJ-48 stapmotor en die ULN2003 dryfplaat in. Die stapmotor bestaan uit verskeie spoele wat in 'n spesifieke volgorde geaktiveer kan word om rotasie te skep. Die ULN2003 dryf fungeer as 'n skakelaar, wat die Arduino toelaat om die krag wat aan elke spoel gelewer word, te beheer.
Die ULN2003-stuurder gebruik 'n Darlington-transistorreeks om die hoër stroom wat deur die stapmotor vereis word, te hanteer. Wanneer 'n pen van die Arduino 'n HOOG sein uitset, laat dit stroom toe om na die ooreenstemmende spoel in die motor te vloei, wat dit laat beweeg. Dit stel presiese beheer oor die rotasiewinkel en spoed van die motor in.
Datasheet Besonderhede
| Fabrikant | ULN2003 |
|---|---|
| Onderdeel nommer | ULN2003 |
| Logika/IO spanning | 5 V |
| Voorsienings spanning | 5-30 V (maks) |
| Uitsetstroom (per kanaal) | 500 mA maksimum |
| Piekstroom (per kanaal) | 2 A maks |
| PWM frekwensie riglyne | N/A |
| Invoerlingsdrempels | 0.8 V (laag), 2.4 V (hoog) |
| Spanningstoename / RDS(on)/ versadiging | 1.5 V maks |
| Termiese grense | 70 °C maks |
| Pakket | DIP-16 |
| Notas / variante | Gereeld gebruik met 5V stapmotors. |
- Verseker dat die bestuurder die huidige vereistes van jou motor kan hanteer.
- Gebruik hitte-afvoer indien nodig om termiese perke te bestuur.
- Kontroleer dat al die verbindings veilig is om te voorkom dat daar drijvende insette is.
- Toets die motor deur eenvoudige stapvolgorde te loop voordat dit in groter projekte geïntegreer word.
- Maak seker dat die motor met 'n voldoende toevoer spanning van krag voorsien word.
Draadinstruksies


Om die 28BYJ-48 stapmotor aan die ULN2003-stuurder en Arduino te koppel, volg hierdie stappe:
Eerst, koppel die motor aan die ULN2003-stuurprogram. Die motor het vier drade, tipies kleurgecodeer as oranje, geel, pienk en blou. Koppel hierdie drade aan die ooreenstemmende uitsetpinte op die ULN2003-stuurprogram. Die verbindings is soos volg:
Orangedraad naOUT1Yellowdraad naOUT2Pinkdraad naOUT3Bluedraad naOUT4
Verbind dan die ULN2003-stuurder met die Arduino. Die invoerpenne op die stuurder stem ooreen met vier digitale penne op die Arduino. Byvoorbeeld:
IN1naPin 10IN2naPin 11IN3naPin 12IN4naPin 13
Laastens, verbind die krag- en grondpinte van die ULN2003-stuurder aan die Arduino. Verbind dieVCCpen na die Arduino se 5V-uitgang en dieGNDPyn na die Arduino se grond. Verseker dat al die verbindings veilig is voordat die stelsel aangeskakel word.
Kode Voorbeelde & Staproete
In die opstelling afdeling van die Arduino-kode, definieer ons die penne wat aan die ULN2003-stuurder gekoppel is:
int Pin1 = 10;
int Pin2 = 11;
int Pin3 = 12;
int Pin4 = 13;
Hier verklaar ons vier heelgetal veranderlikes:Pin1,Pin2,Pin3, andPin4, wat ooreenstem met die digitale penne op die Arduino. Hierdie penne sal die stapmotor se beweging beheer.
In diesetup()funksie, ons konfigureer hierdie penne as uitsette:
void setup() {
pinMode(Pin1, OUTPUT);
pinMode(Pin2, OUTPUT);
pinMode(Pin3, OUTPUT);
pinMode(Pin4, OUTPUT);
}
Hierdie opstelling verseker dat die Arduino seine na die ULN2003-ryer kan stuur om die motor te beheer. DiepinModefunksie stel elke pen op UITVOER-modus, wat dit moontlik maak om seine te stuur.
Laastens, in die hooflus, skep ons 'n skakelgeval om die motor se stappe te beheer op grond van die veranderlike._step:
switch(_step){
case 0:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, HIGH);
break;
// Additional cases follow
}
In hierdie uittreksel gebruik onsdigitalWriteom hoë of lae seine na elke pen te stuur gebaseer op die huidige_step. Dit beheer watter spoele geaktiveer word, wat die motor toelaat om te draai. Die volledige kode wat hierdie snippers integreer, sal onder die artikel gelaai word.
Demonstraasie / Wat om te verwag
Sodra alles korrek gekabel is en die kode opgelaai is, behoort die stapmotor te draai in reaksie op die seine van die Arduino. Jy kan die motor toets deur die vertraging in die lus te verander of die stappe te verander om te sien hoe dit reageer. Wees bewus daarvan dat as die motor nie korrek van krag voorsien word nie, dit dalk nie sal beweeg of onvoorspelbaar kan optree.
Hoofstukke
- Inleiding - 0:00
- Hardeware verduidelik - 1:30
- Draadinstruksies - 3:15
- Kode Voorbeelde & Stapsgewys - 5:00
- Demonstraasie / Wat om te verwag - 7:45
// Original source is http://www.geeetech.com/wiki/index.php/Stepper_Motor_5V_4-Phase_5-Wire_%26_ULN2003_Driver_Board_for_Arduino
// Update by Ahmad Shamshiri for RoboJax.com
// Published on March 27, 2017 in Ajax, ON, Canada.
/*
*
Need wiring diagram from this code: https://youtu.be/0glBk917HPg
Purchase My Arduino course on Udemy.com http://robojax.com/L/?id=62
*
* Get this code and other Arduino codes from RoboJax.com
Learn Arduino step by step in a structured course with all material, wiring diagrams, and libraries
all in one place. Purchase My course on Udemy.com http://robojax.com/L/?id=62
If you found this tutorial helpful, please support me so I can continue creating
content like this.
or make a donation using PayPal http://robojax.com/L/?id=64
* * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been downloaded from RoboJax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
int Pin1 = 10;
int Pin2 = 11;
int Pin3 = 12;
int Pin4 = 13;
int _step = 0;
boolean dir = true;// false=clockwise, true=counter clockwise
int count=0;
void setup()
{
pinMode(Pin1, OUTPUT);
pinMode(Pin2, OUTPUT);
pinMode(Pin3, OUTPUT);
pinMode(Pin4, OUTPUT);
}
void loop()
{
switch(_step){
case 0:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, HIGH);
break;
case 1:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, HIGH);
digitalWrite(Pin4, HIGH);
break;
case 2:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, HIGH);
digitalWrite(Pin4, LOW);
break;
case 3:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, HIGH);
digitalWrite(Pin4, LOW);
break;
case 4:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, LOW);
break;
case 5:
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, LOW);
break;
case 6:
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, LOW);
break;
case 7:
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, HIGH);
break;
default:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, LOW);
break;
}
if(dir){
_step++;
}else{
_step--;
}
if(_step>7){
_step=0;
}
if(_step<0){
_step=7;
}
delay(1);
}
Goedere wat jy dalk nodig het
-
Amazon
-
Amazon
-
AliExpressPurchase 5 pcs 28BYJ-48 stepper motors from AliExpresss.click.aliexpress.com
-
AliExpress
Hulpbronne en verwysings
-
Buitenburg
-
Buitenburg
-
Buitenburg
-
Buitenburg
-
Buitenburg
-
Buitenburg
Lêers📁
Geen lêers beskikbaar.