最近好长一段时刻没有来51hei单片机网了,挨近考试的日子越来越近,开端把时刻转到考试的预备上了,这两天回过头来想想,应该有快半个月对单片机的学习没有什么发展了,不过我一向深信,单片机学习的路上,只需你肯坚持,只需你肯吃苦、肯支付,再难的关也不是问题,当然,最近也深深地体会到,学习单片机如果有一个好的教师作为辅导,那学起来就不必那么费力了,不过也没有联系,许多东西,条件欠好的时分,就需要自己去改动,去想想其它的法子。
这两天开端研讨单片机与步进电机的操控问题,感觉真的很好玩,步进电机在工业的许多当地都有很大的运用,比方流水线的工作,智能小车,体系定位都有很大的用途。也是一个中心的技能。步进电机的操控主要是由单片机IO口凹凸电平的操控以及输出脉冲来操控其转速,到达了一种数模转化的作用。让单片机以并行二进制数转化成并行脉冲序列,并完成方向操控。只需是脉冲在步进电机答应的规模之内,每个脉冲将使步进电机滚动一个固定的步距视点,依据步距角的巨细及实践走的步数,只需知道初始方位,便能够依据核算知道其终究方位了。
步进电机滚动时的驱动的电流比较大,所以在运用单片机操控的时分,要在中心加一个扩大电路,或许加上一些常用的扩大电流的芯片,比方人们很经常用的一个芯片ULM2003.只要这样才能够使步进电机滚动,否则会由于电流太小而完成不了作用。
程序如下:
#include
#define uchar unsigned char
#define uint unsigned int
uchar num[]={0x01,0x02,0x04,0x08};
void delay(uint z)
{
uint a;
for(a=0;a
}
void main()
{
uchar i;
uint j;
for(j=0;j<2045;j++)
{
{ P1=num[i];
delay(1200);
i++;
if(i==4)
i=0; }
}
while(1);
}
其间,z操控转速,j操控转的圈数,由核算和调试得出当j=2045时,步进电机走的圈数为1圈,这样,咱们要步进电机走多少圈时,能够在里边嵌套一个程序,到达咱们要电机转多少圈的意图。关于电机的参数翻开http://www.51hei.com/mcu/73.html这个链接来检查.里边写得十分具体.