简易光源跟踪系统设计
admin 于 2013年06月10日 发表在 嵌入式开发笔记

本作品设计主要由控制器,光电采集模块和电机控制等几个部分构成。

设计采用一个光电三极管3DU33、两个普通步进电机和LM393比较器为框架,来搭建一个简易光源跟踪系统。

整个系统是以80C52单片机为控制核心,光束打到光电检测器件(光电三极管3DU33),会产生相应的电压值,依据电压随光强变化而改变的原理,通过单片机判断电压值,从而控制电机相应动作。

实物照片:

源码:点击下载附件

#include"reg52.h"

sbit F1 = P1^0;
sbit F2 = P1^1;
sbit F3 = P1^2;
sbit F4 = P1^3;
sbit K1 = P2^0;
sbit K2 = P2^1;
sbit K3 = P2^2;
sbit K4 = P2^3;

unsigned char code FFW[8]= {0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6}; //反转
unsigned char code FFZ[8]= {0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe}; //正转

void delay(unsigned int t);

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(K1==1) P1 = FFZ[i]&0x1f;  //取数据
            if(K2==1) P1 = FFW[i]&0x1f;
            if(K3==1) P0 = FFZ[i]&0x1f;  //取数据
            if(K4==1) P0 = FFW[i]&0x1f;
            delay(12);                   //调节转速
        }
    }
}

/******************************************************
*
*               延时程序
*
********************************************************/

void delay(unsigned int t)
{
    unsigned int k;
    while(t--)
    {
        for(k=0; k<100; k++) { }
    }
}

main()
{
    while(1)
    {
        motor_ffw();
    }
}
注意:本站所有文章除特别说明外,均为原创,转载请务必以超链接方式并注明作者出处。 标签:LM393芯片使用,电路开发,MCU探讨