找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10323|回复: 13
收起左侧

求助!步进电机与单片机相连不转只有微弱震动为什么?

  [复制链接]
ID:104032 发表于 2016-7-4 17:16 | 显示全部楼层 |阅读模式
大家好,我是一名正在学习51单片机的小白。在做步进电机实验的时候遇到了问题。步进电机与单片机相连不转只有微弱震动为什么?还是我的程序有错误?请大家帮忙指正!多谢! 357584970954997144.jpg
#include "reg52.h"

void delay(unsigned int t);

//Motor
sbit F1 = P1^0;
sbit F2 = P1^1;
sbit F3 = P1^2;
sbit F4 = P1^3;

unsigned char code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}; //反转
unsigned char code FFZ[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1}; //正转
unsigned int  K;


/**********************************************************************
*                                                                                                                                          *
*                       步进电机驱动                                                                  *
*                                                                                                                                          *
***********************************************************************/
void  motor_ffw()
{
   unsigned char i;
   unsigned int  j;
          for (j=0; j<12; j++)         //转1*n圈
    {

      for (i=0; i<8; i++)       //一个周期转30度
        {
          if(K==1) P1 = FFW&0x1f;  //取数据
                  if(K==2) P1 = FFZ&0x1f;
          delay(100);                   //调节转速
        }
     }
}

/******************************************************
*
*                     延时程序
*
********************************************************/
void delay(unsigned int t)
{                           
   unsigned int k;
   while(t--)
   {
     for(k=0; k<80; k++)
     { }
   }
}


main()
{
    while(1)
        {
                 K=1;
                 motor_ffw();
                 K=2;
                 motor_ffw();

         }
}


回复

使用道具 举报

ID:130370 发表于 2016-7-13 22:18 | 显示全部楼层
电压带不动,电源单独接一路,控制走一路,我刚开始学舵机的时候就是这问题
回复

使用道具 举报

ID:113415 发表于 2016-7-14 06:28 | 显示全部楼层
原因,楼上说的是一种,还有可能是设定速度太快,尤其是起步阶段,不能快。接线错误当然也不行。
回复

使用道具 举报

ID:105206 发表于 2016-7-14 08:34 | 显示全部楼层
12v电压未接,12V与5V地线必须相通.
回复

使用道具 举报

ID:130387 发表于 2016-7-14 08:45 | 显示全部楼层
频率过高或者过低都有可能引起震动
回复

使用道具 举报

ID:130401 发表于 2016-7-14 09:40 | 显示全部楼层
本帖最后由 撸大师 于 2016-7-14 09:41 编辑

尝试下增加延时时间.
你延时程序里面为什么非要定义成k,很容易弄错的感觉
回复

使用道具 举报

ID:111634 发表于 2016-7-14 09:41 | 显示全部楼层
本帖最后由 zl2168 于 2016-7-14 09:42 编辑

实例98  驱动四相步进电机


Proteus仿真一下,确认有效。
实例98 四相步进电机.rar (35.83 KB, 下载次数: 69)
回复

使用道具 举报

ID:111634 发表于 2016-7-14 09:42 | 显示全部楼层
实例99  驱动二相步进电机


Proteus仿真一下,确认有效。
实例99 二相步进电机.rar (36.2 KB, 下载次数: 32)
回复

使用道具 举报

ID:111634 发表于 2016-7-14 09:44 | 显示全部楼层
本帖最后由 zl2168 于 2016-7-14 09:45 编辑

实例100  直流电机正反转及PWM调速


Proteus仿真一下,确认有效。
实例100 直流电机正反转及调速.rar (44.12 KB, 下载次数: 26)
回复

使用道具 举报

ID:66032 发表于 2016-7-23 08:40 | 显示全部楼层
需要说明一下的是我们所有的单片机开发板的步进电机实验只是告诉你有这个功能而已, 通常是4拍和8拍,角度是1.8度, 扭矩也小相电流不连贯, 都是突变, 因此免不了有震动。 但是实际生产用途细分驱动器将是一个必须品,通常细分有2,4,8,16,32,62,128,256,512. 主要作用是提高步进电机的精确率。改善相电流的连续性,同时频率和扭矩都有极大地提高, 我们公司也在细分驱动这方面做了很多的生产改进。所有说商业的东西和值钱的东西是不会轻易放在网上传播的。
回复

使用道具 举报

ID:122633 发表于 2016-7-23 09:03 | 显示全部楼层
单片机电压太小带不动
回复

使用道具 举报

ID:134697 发表于 2016-7-23 10:11 | 显示全部楼层
电压可能低了,或运行快丢步。
回复

使用道具 举报

ID:134192 发表于 2016-7-23 11:16 | 显示全部楼层
有微弱震动说明电路是正确的,但是不转,是因为你的转速问题,delay(100),改小一点,比如delay(5)或者delay(2),试试,
回复

使用道具 举报

ID:136110 发表于 2016-8-6 19:27 | 显示全部楼层
先从慢速一点点试,找到速度极限
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表