专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

机械手之旅(二)

作者:佚名   来源:本站原创   点击数:  更新时间:2010年05月15日   【字体:

8日:
 

因为芯片从购买到到货用了几天的时间,回来又用了一些时间来焊接,所以耽误了好久没写日志了。

真的后悔当初电工电子没有学好,原本要做5V到36V的升压电路,可是全忘记了,买了升压芯片,但到现在为止还弄不明白其中的一个电流的作用。恶补电子知识,但并没有我想像的那样容易,几乎要从头学起。所以暂时先放弃L297+L298的电路来控制步进电机。而是从L297单控开始。

采用L297独控的原因还在于当初焊接IC的时候并不知道IC的焊接顺序,怕IC被烙铁烧坏了,想验证一下IC的好坏。

L297独控就不需要外围电路,直接将各引脚和单片机I/O口、Vcc、GND连接就可以用程序来控制。程序也就控制enable,cw/ccw,half/full,reset,clock就行,没有太大难度,只是在最后联入MP28GA的时候只是震动,并没有转起来,后来参照时序图,将ABCD的顺序改为ACDB,有动作了,本以为成功,但用手测试了一下,发现扭矩很小。通过时序图和ULN2003的控制程序对比了一下,才发现顺序应该是ACBD,修改后电机工作正常,转动平稳。

下一步就是MC34063这个芯片了,JS说SO的和DIP在万用板上焊接差不多。结果拿到手了根本不是那么一回事,我还要想办法怎样把它放到万用板上。

 

 

步进电机接入顺序为4、7、6、9

11、12、15、19接5V,其中15脚决定了加载在步进电机上的电压。 

L297输入对应的单片机I/O口列表

I/O             PIN  state

P1.0 —— 10   enable

P1.2 —— 17   cw/ccw

P1.4 —— 18   clock

9日:

网络是个好东西,一直苦于的多轴联动,今天在网上找到了解决的方案。用中断发出不同频率的方波信号,实现了不同转速的多轴联动,并成功的用LED做了两轴的模拟。又在中断中加入了电机步数的判断以及频率变量,解决了电机定位和加速减速的问题。本来都想暂时放弃的功能,却无意中找到了答案。视频上次拍了好像播放不了,算了,附个程序吧。

 

#include<reg51.h> 

#include <alonekey.h>
sbit L1=P1^0; 

sbit L2=P1^1; 

sbit L3=P1^2;
unsigned char countor1;
unsigned char countor2;
char ci1, ci2,hz;

void main(void)
{
n1: ci1=0;
 ci2=0;
 hz=1;
   EA=1; 
 ET1=1;          
 TMOD=0x10;
 TH1=(65536-46083)/256; 
 TL1=(65536-46083)%256;
 TR1=1; 
 countor1=0; 
 countor2=0; 
     while(1)

     {
         if(TR1==0&ET1==0)
         {
             if(key1==0) goto n1;
         }
     }
 }

void time(void) interrupt 3 using 0

 {
     countor1++;
     countor2++; 
     if(countor1==hz&ci1!=20) 
          {
            L1=~L1;  
            countor1=0; 
            ci1++;
            hz++;

        }
    if(countor2==16&ci2!=20)

        {
            L2=~L2;
            countor2=0;
            ci2++;
        }
    if(ci1==20&ci2==20)
        {
            TR1=0;
            ET1=0;

        }
    TH1=(65536-46083)/256; 
    TL1=(65536-46083)%256;  

}

 下一篇地址:http://www.51hei.com/mcu/833.html

关闭窗口

相关文章