步进电机转动问题

[复制链接]
1770|3
 楼主| dfsa 发表于 2013-6-22 18:51 | 显示全部楼层 |阅读模式
单片机是5A32S2用的12M晶振的51单片机
驱动模块用的是http://item.taobao.com/item.htm?id=17341605784
驱动电压是12V
步进电机用的是二手街上胡乱买的42步进电机
现在就是想让他转起来啊!不知怎么写代码!
秋天落叶 发表于 2013-6-22 19:02 | 显示全部楼层
为什么不买个开发板,研究上面的例程?完全自己从零钻研太难了吧
hsbjb 发表于 2013-6-22 19:13 | 显示全部楼层
步进电机每个脉冲转一个步进角,脉冲的频率决定了它的转速
火箭球迷 发表于 2013-6-22 19:23 | 显示全部楼层
试试这个代码:
#include <reg52.H>
//定义关键字方便使用
#define uchar unsigned char   
#define uint  unsigned int   
#define ulong unsigned long
sbit PORTC=P1^0;
sbit DDRC=P1^2;
/*
sbit p10=P1^0;//第一组电机
sbit p11=P1^1;
sbit p12=P1^2;//第一组使能
sbit p13=P1^3;//第二组电机
sbit p14=P1^4;
sbit p15=P1^5;//第二组使能
*/
uchar step[]={0xf1,0xf5,0xf4,0xf6,0xf2,0xfa,0xf8,0xf9};//时序参数表
/*              延时函数                                            
*******************************************************************
**函数原型: void delay(void)                                             
**函数功能:延时函数                                                     
**输入参数:无                                                   
**输出参数:无
**备注说明:                                                   
*******************************************************************/
void delay(void)   
{
    unsigned char a,b,c;
    for(c=18;c>0;c--)
        for(b=19;b>0;b--)
            for(a=23;a>0;a--);
}
/*                 主函数                                         
*******************************************************************
**函数原型:main()                                             
**函数功能:                                                      
**输入参数:无                                                   
**输出参数:无
**备注说明:完成程序的主要功能                                                   
*******************************************************************/
main()
{
unsigned char c;
DDRC=0;
while(1)   //主循环
  {
    for(c=0;c<8;c++)
    {      
    PORTC=step[c];  //电机驱动
    delay();  //延时
    }
   
  }
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

282

主题

2404

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部