亘古的月亮 发表于 2012-9-9 15:55:34

ad的应用:趋光小车的问题想请教大家

小弟最近在做个mege16的趋光小车...想用avr上面的自带ad采集光敏电阻两端的电势差...然后通过比较两路ad读取数据的大小判断出光强....再通过293控制直流电机向光强的地方跑....
感光模块大致是这样的:光敏电阻一段连在vcc上一段连5k欧的电阻....ad就接在光敏电阻和电阻之间....
我一共用了2个感光模块...分别接在avr的PA0和PA1口...
电机接在PD口...运行了程序以后PD0输出高电平PD1输出低电平,其余PD口均为低...
趋光模块试过了没有问题...电机驱动和电机试过了没有问题...因为买的最小系统板...所以没有数码管来让我显示到底ad有没有采集到数据....
可不可以请大家看下问题大概出在哪里...谢谢...
下面是程序:
#include<iom16v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int
uchar flag;
void delay(uint z)
{uint x;
    for(;z!=0;z--)
          {
          for(x=0;x<1000;x++);
          }
}
uint light()
{   uint addata;
        //********************读取每一个ad数值并返回******************
       
        if(flag==0)
        {ADMUX=0X20;
        ADCSR=0XE3;
        while(!(ADCSRA&BIT(ADIF)))
        addata=ADCL;
        addata=addata+ADCH*256;
        return addata;
    }
        //**************************************************
        if(flag==1)
        {ADMUX=0X21;
        ADCSR=0XE3;
        while(!(ADCSRA&BIT(ADIF)))
        addata=ADCL;
        addata=addata+ADCH*256;
        return addata;
        }
}
        //***************************************************
void main()
{ uint a;
   uint b;
   DDRD=0XFF;
   PORTD=0X00;
   DDRA=0X00;
   PORTA=0X00;
   while(1)
   {
        a=light1();
        b=light2();
        if(a>b)
        {
       PORTD=0X0A;
       delay(100);
        }
        if(a<b)
        {
       PORTD=0X02;
       delay(100);
        }
   }
}

亘古的月亮 发表于 2012-9-9 16:58:48

啊啊啊....大家帮帮忙吧....我真的很想做这个车....这是我第一次用avr做东西....可能有些问题有点BC....还请大家多指教....

airbox 发表于 2012-9-9 17:32:40

没有数码管也可以用串口,用电脑来显示

亘古的月亮 发表于 2012-9-9 17:38:39

airbox 发表于 2012-9-9 17:32 static/image/common/back.gif
没有数码管也可以用串口,用电脑来显示

额....但是也没有串口线啊.....

亘古的月亮 发表于 2012-9-9 18:10:01

没人看吗......求助......

lcw_swust 发表于 2012-9-10 09:57:51

楼主说:“趋光模块试过了没有问题...电机驱动和电机试过了没有问题...”
然后又说:“请大家看下问题大概出在哪里”
是想让大家猜吗?
ight1()和ight2()函数在哪?
ADC改变通道后要多测一次,以第二次的结果为准。

亘古的月亮 发表于 2012-9-15 12:36:08

lcw_swust 发表于 2012-9-10 09:57 static/image/common/back.gif
楼主说:“趋光模块试过了没有问题...电机驱动和电机试过了没有问题...”
然后又说:“请大家看下问题大概 ...

额.....前几天没注意到现在才回不好意思哈....
因为我觉得很可能问题出在程序上所以这么说嘛.....我试下看测两次的方法....
页: [1]
查看完整版本: ad的应用:趋光小车的问题想请教大家