Korištenje 28BYJ-48 koraknog motora s ULN2003 upravljačem i Arduinom
U ovom tutorijalu naučit ćemo kako kontrolirati 28BYJ-48 steper motor koristeći ULN2003 drajver s Arduinom. Ova postavka omogućava preciznu kontrolu položaja i brzine motora. Na kraju ovog projekta, moći ćete rotirati motor u oba smjera i učinkovito kontrolirati njegove korake.
Koristit ćemo 28BYJ-48 stepper motor, koji je popularan izbor za razne projekte robotike i automatizacije zbog svoje niske cijene i jednostavnosti korištenja. ULN2003 upravljačka ploča povezuje stepper motor s Arduinom, omogućavajući nam slanje signala koraka koji kontroliraju kretanje motora. Ovaj vodič će vas provesti kroz potrebne veze i kod kako biste pokrenuli svoj motor.
Za daljnje pojašnjenje, molimo vas da se obratite videu povezanom s ovim tutorijalom (u videu na 0:45).
Objašnjeni hardver
Ključne komponente ovog projekta uključuju 28BYJ-48 steper motor i ULN2003 upravljačku ploču. Steper motor se sastoji od nekoliko namotaja koji se mogu energizovati u specifičnom redoslijedu kako bi se stvorila rotacija. ULN2003 upravljač djeluje kao prekidač, omogućavajući Arduinu da kontroliše snagu isporučenu svakom namotaju.
ULN2003 drajler koristi Darlingtonov tranzistorski niz za upravljanje višim strujama koje zahtijeva stepper motor. Kada pin sa Arduina šalje HIGH signal, omogućava protok struje do odgovarajuće zavojnice u motoru, uzrokujući njegovo kretanje. To omogućava preciznu kontrolu nad uglom rotacije i brzinom motora.
Tehnički podaci
| Proizvođač | ULN2003 |
|---|---|
| Broj dijela | ULN2003 |
| Logika/IO napon | 5 V |
| Napon napajanja | 5-30 V (maks) |
| Izlazna struja (po kanalu) | 500 mA max |
| Vrhunjska struja (po kanalu) | 2 A max |
| Upute za PWM frekvenciju | N/A |
| Ulazni logički pragovi | 0.8 V (nisko), 2.4 V (visoko) |
| Napon pada / RDS(on)/ zasićenje | 1,5 V max |
| Termalne granice | 70 °C max |
| Pakovanje | DIP-16 |
| Napomene / varijante | Uglavnom se koristi sa 5V steper motorima. |
- Osigurajte da vozač može zadovoljiti trenutne zahtjeve vašeg motora.
- Koristite hladnjake ako je potrebno za upravljanje termalnim granicama.
- Provjerite da su sve veze sigurne kako biste izbjegli lebdeće ulaze.
- Testirajte motor pokretanjem jednostavnih koraka prije integracije u veće projekte.
- Pobrinite se da napajate motor odgovarajućim naponskim izvorom.
Uputstva za povezivanje


Da biste povezali 28BYJ-48 steper motor sa ULN2003 drajverom i Arduinom, slijedite ove korake:
Prvo, povežite motor sa ULN2003 drajverom. Motor ima četiri žice, obično obojene u narandžastu, žutu, roza i plavu. Povežite ove žice na odgovarajuće izlazne pinove na ULN2003 drajveru. Povezivanja su sledeća:
Orangežica doOUT1Yellowžica doOUT2Pinkžica doOUT3Bluežica doOUT4
Sljedeće, povežite ULN2003 upravljač s Arduinom. Ulazni pinovi na upravljaču odgovaraju četiri digitalna pina na Arduinu. Na primjer:
IN1doPin 10IN2doPin 11IN3doPin 12IN4doPin 13
Na kraju, povežite naponske i uzemljene pinove ULN2003 drajvera na Arduino. PovežiteVCCpriključite na Arduino-ov 5V izlaz iGNDpriključite na Arduinoovu masu. Osigurajte da su sve veze sigurne prije nego što uključite sustav.
Primjeri koda i vodič
U odjeljku za postavljanje Arduino koda definiramo pinove povezane s ULN2003 upravljačem:
int Pin1 = 10;
int Pin2 = 11;
int Pin3 = 12;
int Pin4 = 13;
Ovdje deklariramo četiri cjelobrojne varijable:Pin1,Pin2,Pin3, iPin4, koji odgovaraju digitalnim pinovima na Arduinu. Ovi pinovi će kontrolisati kretanje stepper motora.
Usetup()funkcija, konfigurišemo ove pinove kao izlaze:
void setup() {
pinMode(Pin1, OUTPUT);
pinMode(Pin2, OUTPUT);
pinMode(Pin3, OUTPUT);
pinMode(Pin4, OUTPUT);
}
Ova postavka osigurava da Arduino može slati signale ULN2003 drajveru za kontrolu motora.pinModefunkcija postavlja svaki pin u MOD izlaza, omogućavajući im da šalju signale.
Na kraju, u glavnoj petlji, kreiramo switch case za kontrolu koraka motora na osnovu varijable._step:
switch(_step){
case 0:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, HIGH);
break;
// Additional cases follow
}
U ovom izvatku koristimodigitalWriteslati VISOKE ili NISKE signale na svaki pin na osnovu trenutne vrijednosti_step. Ovo kontrolira koje su namotaje energizirane, omogućavajući motoru da se okreće. Cijeli kod koji integrira ove isječke bit će učitan ispod članka.
Demonstracija / Šta očekivati
Kada je sve ispravno povezano i kod je učitan, stepper motor bi trebao rotirati kao odgovor na signale iz Arduina. Možete testirati motor tako što ćete promijeniti kašnjenje u petlji ili promijeniti korake da vidite kako reagira. Budite svjesni da ako motor nije ispravno napajan, možda se neće kretati ili bi mogao ponašati nepredvidivo.
Poglavlja
- Uvod - 0:00
- Objašnjenje hardvera - 1:30
- Uputstva za povezivanje - 3:15
- Primjeri koda i vodič - 5:00
- Demonstracija / Šta očekivati - 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);
}
Things you might need
-
Amazon
-
Amazon
-
AliExpressPurchase 5 pcs 28BYJ-48 stepper motors from AliExpresss.click.aliexpress.com
-
AliExpress
Resources & references
-
External
-
External
-
External
-
External
-
External
-
External
Files📁
No files available.