这个简单,让我来教楼主怎么玩首先我说下思路:我们采用P,来采集ADC,,数据,用P,控制步进电机动作,利用T,时间中断来采集P,的ADC,据并做出比较后设置步进电机启动标志位start=,并设置他的运行频率,当然,楼主没说怎么比较,我这就只是写了个简单的例子,一通百通。如何用单片机控制步进电机步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,通俗地说:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的。
那我们让电机正转一圈,反转半圈,在正传,,反转一圈,试试。includetypedefunsignedcharuint,typedefunsignedintuint,typedefunsignedlonguint,defineP_DIR,defineN_DIR,codeuint,FFW[={F,F,F,F,F,Fc,F,F。这个问题也太弱了吧,相信你是不会单片机的。让它不动就只要让数据口都接低电平就好了。
单片机通过驱动器控制步进电机的运转,只要记住两点就OK:脉冲的频率决定步进电机的转速;方向控制引脚决定步进电机的运转方向.如果你的步进电机不能反转,首先检查硬件电路,单片机是否可靠控制步进电机驱动器的方向引脚Dir,其次是单片机编程是否正确.如果你使用MaxDuino编程,就简单了很多了:MOTOR。delay();P,,,delay();这个delay()的时间长短是控制转速的,有一定范围的,在一定范围内,越小越快,超过了的话,电机识别不了脉冲就不转了。includedefineucharunsignedchardefineuintunsignedintdefineMotorDataP。
用C语言较简单,用汇编比较复杂我只告诉你思路首先,弄清步进电机的步距角,即每一个脉冲步进电机转过的角度,常见的有,度,,,等,反正,是它的整数倍,如果弄不准的话,可以编个程序,让其慢速转,或,,看其实际转了多少圏。错误有不少的,比如独立按键检测和电机控制之间有冲突。步进电机环形分配不对。可以这样改一下:STOPBITP,EVBITP,ORBITP,RG,LJMPMAINORG,MAIN:JBSTOP,MAIN,JNBSTOP,$LCALLSTOP_SSJMPMAINMAIN,JBFOR,MAIN,JNBFOR。
暂无评论内容