Raadi Koodka

Isticmaalka 28BYJ-48 Mashiinka Tallaabada leh Darawalka ULN2003 iyo Arduino

Isticmaalka 28BYJ-48 Mashiinka Tallaabada leh Darawalka ULN2003 iyo Arduino

Casharakan, waxaan ku baran doonaa sida loo xakameeyo matoorka 28BYJ-48 adigoo isticmaalaya darawalka ULN2003 oo leh Arduino. Qalabkan wuxuu u oggolaanayaa xakameyn sax ah oo ku saabsan booska iyo xawaaraha matoorka. Dhamaadka mashruucan, waxaad awoodi doontaa inaad rogtid matoorka labada jiho iyo inaad si hufan u xakameyso tillaabooyinkiisa.

Waxaan isticmaali doonaa matoorka 28BYJ-48, oo ah doorasho caan ah oo loogu talagalay mashaariicda robotics iyo otomaatiga sababo la xiriira qiimaha hooseeya iyo fududeyntiisa. Barta darawalka ULN2003 waxay isku xirtaa matoorka stepper-ka iyo Arduino, taasoo noo oggolaaneysa inaan dirno calaamadaha tallaabooyinka ee xakameeya dhaqdhaqaaqa matoorka. Casharkan wuxuu ku hagi doonaa fiilooyinka lagama maarmaanka ah iyo koodhka si aad matoorkaaga u wareejiso.

Fadlan tixraac fiidiyowga la xiriira casharkan (fiidiyowga 0:45).

Qalabka la Sharxay

Qaybaha muhiimka ah ee mashruucan waxaa ka mid ah matoorka 28BYJ-48 iyo guddiga darawalka ULN2003. Matoorka stepper-ka wuxuu ka kooban yahay dhowr xadhig oo la korin karo si loo abuuro wareeg gaar ah. Darawalka ULN2003 wuxuu u shaqeeyaa sidii badhanka, isagoo u oggolaanaya Arduino inuu xakameeyo awoodda la siiyo xadhig kasta.

Darlington transistor array-ka ULN2003 wuxuu isticmaalaa si uu u maareeyo koronto sare oo ay u baahan tahay matoorka stepper-ka. Markii pin ka mid ah Arduino uu soo saaro calaamadda HIGH, waxay u oggolaaneysaa in koronto ay u socoto xadhigga ku habboon matoorka, taasoo keentay inuu dhaqaaqo. Tani waxay suurtogal ka dhigeysaa in si sax ah loo xakameeyo xagalka wareegga iyo xawaaraha matoorka.

Faahfaahinta Warqadda

SoosaarULN2003
Lambarka qaybtaULN2003
Voltage-ka loogiga/IO5 V
Koronto sahayada5-30 V (ugu weyn)
Hawada hadda (kanaal kasta)500 mA ugu badnaan
Culayska ugu sarreeya (kanaal kasta)2 A max
Hagaha soo noqnoqoshada PWMN/A
Xadka loogaga baahan yahay in la geliyo0.8 V (hoose), 2.4 V (sare)
Hoos u dhaca koronto / RDS(on)/ buuxin1.5 V ugu weyn
Xadidaheeda kulaylka70 °C ugu weyn
BaakidhkaDIP-16
Xusuusin / noocyoCaadi ahaan waxaa loo isticmaalaa matoorada stepper-ka 5V.

  • Hubi in darawalka uu maamuli karo shuruudaha hadda ee matoorkaaga.
  • Isticmaal heat sinks haddii loo baahdo si aad u maareyso xadka kulaylka.
  • Hubi in dhammaan isku xidhku ay ammaan yihiin si looga fogaado gelinta duulaya.
  • Tijaabi mishiinka adigoo ordaya taxane tallaabooyin fudud ka hor inta aanad ku dhex darin mashaariicda waaweyn.
  • Hubi inaad koronto ku siiso matoorka iyadoo la adeegsanayo danab ku filan.

Tilmaamaha Xadhigga

Stepper 28BYJ-48 wiring battery
Stepper 28BYJ-48 wiring

Si aad u xidhid 28BYJ-48 matoorka tallaabooyinka ah ULN2003 darawalka iyo Arduino, raac tillaabooyinkan:

Marka hore, ku xidh mootorka darawalka ULN2003. Mooterku wuxuu leeyahay afar xadhig, caadi ahaan midabkoodu waa oranji, huruud, casaan, iyo buluug. Ku xidh xadhigyadaas pins-ka wax soo saarka ee ku habboon darawalka ULN2003. Xidhiidhada waa sida soo socota:

  • Orangexadhig uOUT1
  • Yellowxadhig u dirOUT2
  • Pinkxadhig u dirOUT3
  • Bluexadhig uOUT4

Marka xigta, ku xidh darawalka ULN2003 Arduino. Pins-ka gelinta ee darawalka waxay u dhigantaa afar pins dijitaal ah oo ku yaal Arduino. Tusaale ahaan:

  • IN1inPin 10
  • IN2inPin 11
  • IN3toPin 12
  • IN4inPin 13

Ugu dambeyntii, isku xidh pins-ka awoodda iyo dhulka ee darawalka ULN2003 si Arduino. Isku xidhVCCku xir 5V ka soo baxa Arduino iyoGNDku xir xadhigga dhulka Arduino. Hubi in dhammaan xiriiradu ay ammaan yihiin ka hor inta aan la shidin nidaamka.

Tusaalooyinka Koodhka & Socodka

Qaybta dejinta ee koodhka Arduino, waxaan qeexeynaa pins-ka ku xiran darawalka ULN2003:

int Pin1 = 10; 
int Pin2 = 11; 
int Pin3 = 12; 
int Pin4 = 13; 

Halkan, waxaan ku dhawaaqeynaa afar isbeddel oo integer ah:Pin1,Pin2,Pin3, iyoPin4, kuwaas oo la jaanqaadaya pins-ka dijitaalka ah ee Arduino. Pins-kan waxay xakameyn doonaan dhaqdhaqaaqa matoorka stepper-ka.

In thesetup()hawlgal, waxaan u qaabeyneynaa pins-kan sidii wax soo saaro:

void setup() { 
 pinMode(Pin1, OUTPUT);  
 pinMode(Pin2, OUTPUT);  
 pinMode(Pin3, OUTPUT);  
 pinMode(Pin4, OUTPUT);  
} 

Dejintaani waxay xaqiijineysaa in Arduino uu u diri karo calaamado darawalka ULN2003 si uu u xakameeyo mishiinka.pinModehawlaha waxay dejinayaan pin kasta qaabka SOO SAARID, taasoo u oggolaanaysa inay diraan calaamado.

Ugu dambeyntii, wareegga ugu weyn, waxaan abuurnaa kiis beddel ah si aan u xakameyno talaabooyinka matoorka iyadoo lagu saleynayo isbeddelka._step:

switch(_step){ 
   case 0: 
     digitalWrite(Pin1, LOW);  
     digitalWrite(Pin2, LOW); 
     digitalWrite(Pin3, LOW); 
     digitalWrite(Pin4, HIGH); 
   break;  
   // Additional cases follow
}

Qaybtaan, waxaanu isticmaalnaadigitalWritein si to send HIGH ama LOW calaamado kasta pin iyadoo lagu saleynayo hadda_stepTani waxay xakameysaa kuwa xargaha ah ee korontada la siiyo, taasoo u oggolaaneysa mishiinka inuu rogo. Koodhka dhameystiran ee isku dhafaaya qaybahaan ayaa lagu shubi doonaa hoosta maqaalka.

Muuqaal / Maxaa La Filan karaa

Marka wax walba si sax ah loo xiro oo koodhka la soo geliyo, matoorka stepper-ka waa inuu wareegaa si uu uga jawaabo calaamadaha ka imaanaya Arduino. Waxaad tijaabin kartaa matoorka adigoo wax ka beddelaya dib u dhaca ku jira loop-ka ama beddelaya tillaabooyinka si aad u aragto sida uu u dhaqmo. Ogoow in haddii matoorka si sax ah aan loo korontoon, uusan dhaqaaqi karin ama uu si aan caadi ahayn u dhaqmi karo.

Cutubka

  • Hordhac - 0:00
  • Qalabka La Sharxay - 1:30
  • Tilmaamaha Xadhigga - 3:15
  • Tusaalooyinka Koodhka & Socodka - 5:00
  • Muuqaal / Waxa La Filan Karo - 7:45

Sawirro

Stepper 28BYJ-48 wiring battery
Stepper 28BYJ-48 wiring battery
Stepper 28BYJ-48 poles
Stepper 28BYJ-48 poles
Stepper 28BYJ-48 waveform actual
Stepper 28BYJ-48 waveform actual
Stepper 28BYJ-48 waveform inverted
Stepper 28BYJ-48 waveform inverted
Stepper 28BYJ-48 wiring
Stepper 28BYJ-48 wiring
6-The source code for stepper motor 28BYJ-48 with ULN2003 for Arduino
Luqadda: C++
// 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); 

}

Faylasha📁

Fayl la'aan.