立即注冊 登錄
返回首頁

uid:194936的個人空間

日志

51單片機的避障小車

已有 3819 次閱讀2017-4-30 11:02 | 數(shù)碼管顯示, 超聲波避障, 小車

超聲波模塊選用的是HC-SR04。首先,利用單片機發(fā)出一個的高電平信號,其次,超聲波發(fā)射器會向某一方向發(fā)射超聲波,在發(fā)射時刻的同時開始計時,超聲波在空氣中傳播,途中遇到障礙物就立即返回來,超聲波接收器收到反射波立即停止計時,超聲波在空氣中的傳播速度為340m/s,根據(jù)計時器記錄的時間t可以算出距障礙物的距離=t*340/2。程序:

void pingyi(void)

{   

 ControlCar(4);  

 delay_nms (400);   

 ControlCar(1);  

 delay_nms (300);

 ControlCar(3);

 delay_nms (400);   

 ControlCar(1);   

 delay_nms (410);

 ControlCar(3);  

 delay_nms (400);

 ControlCar(1);  

 delay_nms (300);

 ControlCar(4);  //右轉100ms

 delay_nms (350);   

 ControlCar(1);  

 delay_nms (300);

}

void Display(void)        //數(shù)碼管顯示函數(shù)

{  unsigned char b;

        for(b=193456789;b>0;b--)

{

       

           sw1=0;                  

            P0=Disp_Tab[disbuff[0]];

delay_nus(20);

        sw1=1;

 

        sw2=0;                 

        P0=Disp_Tab[disbuff[1]];

        delay_nus(20);

          sw2=1;

        sw3=0;                

        P0=Disp_Tab[disbuff[2]];

            delay_nus(20);

        sw3=1;

 

        sw4=0;                 

        P0=Disp_Tab[disbuff[3]];

        delay_nus(20);

        sw4=1;

   }

   }

void Conut(void)

{

  time=TH0*256+TL0;  /*此時time的時間單位決定于晶振的速度,外接晶振

                                11.0592MHZ,time的值為0.54us*time,單位為微秒,

                               那么1us聲波能走多遠的距離呢? 

                                1s=1000ms=1000000us 340/1000000=0.00034=0.34

                                毫米  也就是1us能走0.34毫米 */

  TH0=0;

  TL0=0;

  S=(time*1.7)/10;           

    if(S>4500)

 {

 ControlCar(1);

 disbuff[0]=10;  //顯示距離的千位

 disbuff[1]=10;  //百位

 disbuff[2]=10;  //十位

 disbuff[3]=10;  //個位

 Display();

 }

 if(300<S<4500)

 {

        ControlCar(1);

    disbuff[0]=S/1000;         

    disbuff[1]=S%1000/100;     

    disbuff[2]=S%1000%100/10;   

    disbuff[3]=S%1000%10 %10;   

  Display();

 }

   if(S<=500)             

{

    SB1=0;

delay_nms(200);

SB1=1;

    pingyi();

    disbuff[0]=S/1000;         //距離的千位

    disbuff[1]=S%1000/100;     //百位

    disbuff[2]=S%1000%100/10;   //十位

    disbuff[3]=S%1000%10 %10;   //個位

  Display();

 }

}


路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

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

返回頂部