این موتور از نوع استپ موتور تک قطبی با ولتاژ 5 ولت و 4 فاز و دارای سوکت مخابراتی 5 سیمه می باشد.
مقاومت کویلهای آن حدود 8 اهم بوده و جریان مصرفی 350 تا 600 میلی آمپر است.
در محور خروجی اندازه هر پله 7/2 درجه معادل 1/50 دایره می باشد.
این موتور به خوبی با درایور ULN2003 کار می کند و با سوکت به آن متصل می شود.
کاربردهای این موتور در پرینتر ها می باشد.
/*
* BYJ48 Stepper motor with the ULN breakout board
* Connect :
* IN1 - D8
* IN2 - D9
* IN3 - D10
* IN4 - D11
* VCC - 5V
* Gnd - gnd
*
* e-radionica.com
*/
#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
int koraci = 0;
boolean smjer = true;
unsigned long vrijemeZadnje = 0; // we will note the time
unsigned long vrijemeTrenutno = 0; // needed to
unsigned long vrijeme = 0; // execute the given angle
int koraciPreostalo = 4095; //this stepper has 4095 steps in total
void setup()
{
Serial.begin(115200);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop()
{
while(koraciPreostalo > 0) // steps remaining until the full circle
{
vrijemeTrenutno = micros(); //write down the current time in microseconds
if(vrijemeTrenutno - vrijemeZadnje >= 1000)
{
stepper(1); //call the stepper function (check void stepper below)
vrijeme = vrijeme + micros() - vrijemeZadnje;
vrijemeZadnje = micros();
koraciPreostalo--;
}
}
Serial.println(vrijeme);
Serial.println("Wait..!");
delay(2000);
smjer = !smjer; // opposite direction
koraciPreostalo = 4095; // reset the number of steps
}
void stepper(int brojKoraka)
{
for (int x=0; x < brojKoraka; x++) { switch(koraci) { case 0: digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); break; case 1: digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, HIGH); break; case 2: digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); break; case 3: digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); break; case 4: digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); break; case 5: digitalWrite(IN1, HIGH); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); break; case 6: digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); break; case 7: digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); break; default: digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); break; } postaviSmjer(); } } void postaviSmjer() { if(smjer==1){ koraci++; } if(smjer==0){ koraci--; } if(koraci>7){ koraci=0; }
if(koraci<0){ koraci=7; }
}
درایور موتور ULN2003 به شما این امکان می دهد تا از طریق میکروکنترلر مانند Arduino Uno به راحتی استپر موتورهای کوچکی مانند 28BYJ-48 را کنترل کنید. یک سوکت 5 سیم برای راحت تر شدن اتصال کابل استپر موتور به درایور و جلوگیری از اتصال معکوس بر روی برد تعبیه شده است.
چهار LED برای نشان دادن اینکه کدام سیم پیچ در حال حاضر تغذیه می شود.
همانند شکل زیر تغذیه و جامپرهای سیگنال را به آردواینو متصل کرده و کد مربوطه را بارگزاری نمایید تا موتور شروع به کار کند
در کنار پینهای تغذیه جامپری برای روشن شدن موتور قرار دارد که با برداشتن آن موتور متوقف میشود.
در حقیقت این جامپر تغذیه موتور را به V IN متصل میکند. اگر میخواهید موتورهای 12 ولت را به درایور متصل کنید باید این جامپر را بردارید و پین را به تغذیه جداگانه ای که برای موتور آماده کرده اید متصل کنید.
با این کار تغذیه میکرو کنترولر از تغذیه موتور جداشده و به میکرو کنترولر آسیبی نخواهد رسید