找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2595|回復(fù): 3
收起左側(cè)

求助 兩個(gè)紅外的智能小車的源代碼

[復(fù)制鏈接]
ID:246031 發(fā)表于 2017-11-10 12:27 | 顯示全部樓層 |閱讀模式
本人大一,參加了學(xué)校的智能小車賽, 但是對(duì)于編程還是不太會(huì),求助各位大佬。 可以不避障

回復(fù)

使用道具 舉報(bào)

ID:248052 發(fā)表于 2017-11-10 13:47 | 顯示全部樓層
說(shuō)一下大概思路
回復(fù)

使用道具 舉報(bào)

ID:248048 發(fā)表于 2017-11-10 14:01 | 顯示全部樓層
#include "nRF24L01.h"
       
uchar TX_ADDRESS[TX_ADR_WIDTH]={0xFF,0xFF,0xFF,0xFF,0xFF}; //發(fā)送地址
uchar RX_ADDRESS[RX_ADR_WIDTH]={0xFF,0xFF,0xFF,0xFF,0xFF}; //接收地址

uchar   rate = 0x0F;    //2Mbs, 0dB  低噪聲增益開啟
//--定義一個(gè)全局變量--//
unsigned char timer1;

void Time1Config();


sbit        L1                  =P3^4;                                          //驅(qū)動(dòng)模塊in1,2,3.4
sbit        L2                  =P3^5;
sbit        R1                  =P3^6;
sbit        R2                  =P3^7;
sbit    m1       =P2^1;
sbit    m2       =P2^0;
sbit    h1       =P2^2;
sbit PWM1=P3^4;
sbit PWM2=P3^5;
sbit PWM3=P3^6;
sbit PWM4=P3^7;       
uchar rece_buf[32];                                                        //接收寄存器
//int num,S=0,time=0,timer=0;                                                        //a0=37:最大角度,脈寬1.899ms

void delay(uint t)
{
        uint a,b;
        for(a=0;a<t;a++)
                for (b=0;b<110;b++);
}//          尋跡
void Time1(void) interrupt 3    //3 為定時(shí)器1的中斷號(hào)  1 定時(shí)器0的中斷號(hào) 0 外部中斷1 2 外部中斷2  4 串口中斷
{   
        TH1 = 0xFE;  //重新賦初值
        TL1 = 0x0C;
        timer1++;   
}

          void Time1Config()
{
        TMOD|= 0x10;   //設(shè)置定時(shí)計(jì)數(shù)器工作方式1為定時(shí)器

        //--定時(shí)器賦初始值,12MHZ下定時(shí)0.5ms--//  
        TH1 = 0xFE;
        TL1 = 0x0C;

       
        ET1 = 1;          //開啟定時(shí)器1中斷
        EA = 1;
        TR1 = 1;         //開啟定時(shí)器       
}
void main()
{  
int i,t;

//尋跡
Time1Config();
        while(1)
        {
                if(h1==1)
                {
                                 if(timer1>60)  //PWM周期為100*0.5ms
                {
                        timer1=0;
                }
                if(timer1 <60)        //改變30這個(gè)值可以改變直流電機(jī)的速度
                {
                        PWM1=0;
                        PWM2=1;
                        PWM3=0;
                        PWM4=1;
                        delay(100);
                        }
                        else
                {
                        PWM1=0;
                        PWM2=0;
                        PWM3=0;
                        PWM4=0;

                }
                }


         else        if(m1==0&&m2==0)                           //第1位以后是收到的命令數(shù)據(jù),rece_buf[0]是數(shù)據(jù)位數(shù)長(zhǎng)度
                                {

                                                if(timer1>100)  //PWM周期為100*0.5ms
                {
                        timer1=0;
                }
                if(timer1 <15)        //改變30這個(gè)值可以改變直流電機(jī)的速度
                {
                        PWM1=1;
                        PWM2=0;
                        PWM3=0;
                        PWM4=1;
                }
                           else
                {
                        PWM1=0;
                        PWM2=0;
                        PWM3=0;
                        PWM4=0;

                }

                                }
                                else if(m1==1&&m2==1)                         //第1位以后是收到的命令數(shù)據(jù),rece_buf[0]是數(shù)據(jù)位數(shù)長(zhǎng)度
                                {
                                                                   if(timer1>100)  //PWM周期為100*0.5ms
                {
                        timer1=0;
                }
                if(timer1 <15)        //改變30這個(gè)值可以改變直流電機(jī)的速度
                {
                        PWM1=0;
                        PWM2=1;
                        PWM3=1;
                        PWM4=0;


                                }
                                           else
                {
                        PWM1=0;
                        PWM2=0;
                        PWM3=0;
                        PWM4=0;

                }
                                 }
                else if(m1==1&&m2==0)                         //第1位以后是收到的命令數(shù)據(jù),rece_buf[0]是數(shù)據(jù)位數(shù)長(zhǎng)度
                {
                           L1        =0;
                        L2        =1;
                        R1        =1;
                        R2        =0;
                        delay(10);

                        if(timer1>60)  //PWM周期為100*0.5ms
                {
                        timer1=0;
                }
                if(timer1 <60)        //改變30這個(gè)值可以改變直流電機(jī)的速度
                {
                        PWM1=1;
                        PWM2=0;
                        PWM3=1;
                        PWM4=0;        }
                else
                {
                        PWM1=0;
                        PWM2=0;
                        PWM3=0;
                        PWM4=0;

                }

                                }       
                        else if(m1==0&&m2==1)                         //第1位以后是收到的命令數(shù)據(jù),rece_buf[0]是數(shù)據(jù)位數(shù)長(zhǎng)度
                        {
                    L1        =0;
                        L2        =1;
                        R1        =1;
                        R2        =0;
                        delay(10);

                                if(timer1>60)  //PWM周期為100*0.5ms
                {
                        timer1=0;
                }
                if(timer1 <60)        //改變30這個(gè)值可以改變直流電機(jī)的速度
                {
                        PWM1=0;
                        PWM2=1;
                        PWM3=0;
                        PWM4=1;
                        }
                        else
                {
                        PWM1=0;
                        PWM2=0;
                        PWM3=0;
                        PWM4=0;

                }
        }
                        delay(20);
        }
                  
回復(fù)

使用道具 舉報(bào)

ID:196928 發(fā)表于 2017-11-10 19:17 | 顯示全部樓層
3.例程代碼.rar (5.31 KB, 下載次數(shù): 3)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表