http://www.cn-im.cn

  • 当前位置:首页 > 视界 > 知识百科 > 步进电机驱动器 >
  • 步进电机驱动电路制作图解,一步步的清晰描述

    导语:小编这几天没事干昨天晚上看到了步进电机,然后就研究了半晚上原理,现在就拿出来分享大家。
     

            今天在我的那个单片机试验箱里翻到啦一个35mm的步进电机, 然后在配套资料里面找到了驱动电路的电路图。如图

     

    步进电机驱动电路制作图解
     

    步进电机驱动电路制作图解
     

            下面我给大家讲讲原理 (仅供参考) :首先j18接口是加到单片机io口上的 j19接到步进电机 j19的1234分别为步进电机的a,a1,b,b1

            首先 8550是低电平导通,如果j18的1的电平为0,那么三极管v8导通,v8导通之后j19的1脚的电平为1,同时电流又通过R49让三极管v15导通 由电路图可知 ,j19的2脚接到了v15的集电极,且j19的2脚和1脚是一组线圈,3和4脚是一组线圈,现在1脚电平为1,电流流经一组线圈 从2脚出来通过三极管v15 流向负极。也就是 三极管v8和v15是一组,v7和v16是一组,v10和v17是一组,v9和v18是一组, 这样两个三极管共同承担电流 可以使电路更稳定这就是工作原理 ,其他的几组三极管同理,至于r47和r51是干啥用的,我也不知道,谁知道的话就说出来,我会感谢你们滴, 我讲的可能不怎么好,你们可以喷至于步进电机的原理 百度一大堆,我就不介绍了。

            下面就是制作过程;需要的东西就是这些 三极管8550和8050 ,电阻(没找到1k电阻除了r47和r51用1.3k,其别的用820欧,排针,还有洞洞板,一把烙铁。
     

    步进电机驱动电路制作图解


     

            然后按照电路图在洞洞板上安装零件
     


     

            反面
     


     

            布线~~~~~
     


     

            地方不够的把焊盘削成两半 然后焊金属丝
     


     

            有的地方没法布线 就用跳线像这样:
     


     

            制作成品
     


     

            反面
     


     

            用到的电机是两相四线步进电机
     


     

            如图
     


            以上只是我自己的经验, 如果有什么错误,请在楼下指出错误

            程序如下 (程序里的Abc接到一个灯上,判断程序是否运行用的)

            //此程序是 两线四相步进电机 驱动程序

            #include

            //***定义*******************************

            sbit A0=P1^7;

            sbit A1=P1^6;

            sbit B0=P1^5;

            sbit B1=P1^4;

            sbit Abc=P1^0;

            //***脉冲宽度***************************

            mckd() //3ms@12MHz

            {

            unsigned int i=375;

            while(--i);

            }

            void delay(int x)

            { int i,j;

            for(i=0;i

            for(j=1;j《=600;j++);

            }

            //***转速控制***************************

            zhuansu()

            {

            unsigned char s=2; //改变s的值可改变速度,值越大速度越慢

            while(--s) mckd();

            }

            //**********************************

            main()

            {

            while(1)

            { Abc=0;

            delay(10);

            A0=0; zhuansu(); A0=1; //A0

            B0=0; zhuansu(); B0=1; //B0

            A1=0; zhuansu(); A1=1; //A1

            B1=0; zhuansu(); B1=1; //B1

            Abc=1;

            delay(10);

            }

            }

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。