我们的开发要用到步进电机,因此选择了性价比较高的28BYJ48步进电机,并对其进行了学习和测试,下面介绍下28BYJ48步进电机和测试程序:
28BYJ48步进电机介绍
1、本次设计使用的是28BYJ48步进电机。以ULN2003APG作为驱动。步进电机必须加驱动才可以运转,驱动信号必须为脉冲信号,没有脉冲的时候,步进电机静止,如果加入适当的脉冲信号,就会以一定的角度(称为步角)转动。转动的速度和脉冲的频率成正比。
2、28BYJ48步进电机是5V 驱动的4相5线的步进电机,而且是减速进电机,减速比为1:64 ,步进角为5.625/64度。如果需要转动1圈,那么需要360/5.625*64=4096个脉冲信号。
3、改变脉冲的顺序,可以方便的改变转动的方向。
4、该步进电机的耗电流为200mA左右,驱动端口为P0.0(A),P0.1(B),P0.2(C),P0.3(C)。正转次序:AB组--BC组--CD组--DA组(即一个脉冲,正转5.625度);反转次序:AB组--AD组--CD组--CB组(即一个脉冲,正转 5.625 度),如表1,表2所示:
5、电机主要参赛如下图所示:
测试程序
附上一个简单的28BYJ48步进电机c语言测试程序 :
/*
步进电机测试程序
*/
#include
#define unit unsigned int
sbit set1=P0^0; //定义四线步进电机4个IO口
sbit set2=P0^1;
sbit set3=P0^2;
sbit set4=P0^3;
void Delay(unit t) //延时函数
{
while(--t);
}
void main(void)
{
for(;;)
{
set1=set2=0; //相1 : 1100
set3=set4=1;
Delay(8000);
set3=set2=0; //相2 : 1001
set1=set4=1;
Delay(8000);
set1=set2=1; //相3 : 0011
set3=set4=0;
Delay(8000);
set3=set2=1; //相4 : 0110
set1=set4=0;
Delay(8000); //如此循环即可实现转动,如果需要反方向转动,则必须是相4-相1时序
}
}
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |