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

QQ登錄

只需一步,快速開(kāi)始

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

GY-53-L1X激光測(cè)距Arduino源碼

[復(fù)制鏈接]
ID:420753 發(fā)表于 2018-11-4 21:33 | 顯示全部樓層 |閱讀模式
激光測(cè)距源碼,跟大家分享一下
  1. /////////////////////
  2. /*
  3. GY53----MINI
  4. VCC----VCC
  5. GND----GND
  6. 1:GY53L1_TX---10
  7. 2:GY53L1_RX---11
  8. */
  9. #include <SoftwareSerial.h>
  10. SoftwareSerial mySerial(10, 11); // RX, TX

  11. //////////////////
  12. unsigned char re_Buf[11],counter=0;
  13. unsigned char sign=0;
  14. byte data_Buf[3]={0};
  15. void setup() {
  16.    Serial.begin(9600);  
  17.    mySerial.begin(9600);
  18.    mySerial.listen();  
  19.   delay(1);   
  20. // mySerial.write(0XA5);
  21. // mySerial.write(0X45);    //初始化,連續(xù)輸出模式
  22.   //mySerial.write(0XEA);    //初始化,連續(xù)輸出模式
  23. }

  24. void loop() {
  25.   unsigned char i=0,sum=0;
  26.    unsigned char RangeStatus=0,Time=0,Mode=0;
  27.   uint16_t distance=0;
  28.    while (mySerial.available()) {   
  29.     re_Buf[counter]=(unsigned char)mySerial.read();
  30.     if(counter==0&&re_Buf[0]!=0x5A) return;      // 檢查幀頭         
  31.     counter++;      
  32.     if(counter==8)                //接收到數(shù)據(jù)
  33.     {   
  34.        counter=0;                 //重新賦值,準(zhǔn)備下一幀數(shù)據(jù)的接收
  35.        sign=1;
  36.     }      
  37.   }
  38.   if(sign)
  39.   {   
  40.      sign=0;
  41.      for(i=0;i<7;i++)
  42.       sum+=re_Buf[i];
  43.      if(sum==re_Buf[i] )        //檢查幀頭,幀尾
  44.      {                 
  45.           data_Buf[0]=re_Buf[4];
  46.           data_Buf[1]=re_Buf[5];
  47.           data_Buf[2]=re_Buf[6];
  48.           distance=data_Buf[0]<<8|data_Buf[1];
  49.           RangeStatus=(data_Buf[2]>>4)&0x0f;
  50.           Time=(data_Buf[2]>>2)&0x03;
  51.           Mode=data_Buf[2]&0x03;
  52.            Serial.print("distance: ");
  53.            Serial.print( distance);
  54.            Serial.print(" mm,RangeStatus: ");
  55.            Serial.print( RangeStatus);  
  56.            Serial.print(" ,Time: ");
  57.            Serial.print( Time);   
  58.            Serial.print(",Mode: ");
  59.            Serial.println( Mode);      
  60.    }
  61.   }

  62. }
  63. /*void serialEvent() {
  64.   while (Serial.available()) {   
  65.     re_Buf[counter]=(unsigned char)Serial.read();
  66.     if(counter==0&&re_Buf[0]!=0x5A) return;      // 檢查幀頭         
  67.     counter++;      
  68.     if(counter==8)                //接收到數(shù)據(jù)
  69.     {   
  70.        counter=0;                 //重新賦值,準(zhǔn)備下一幀數(shù)據(jù)的接收
  71.        sign=1;
  72.     }      
  73.   }
  74. }*/
復(fù)制代碼


全部資料51hei下載地址:
arduino.zip (1.83 KB, 下載次數(shù): 18)

回復(fù)

使用道具 舉報(bào)

ID:25481 發(fā)表于 2018-11-13 08:02 | 顯示全部樓層
這個(gè)模塊輸出的距離單位是厘米還是毫米?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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