找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3928|回复: 1
打印 上一主题 下一主题
收起左侧

GY-53-L1X激光测距Arduino源码

[复制链接]
跳转到指定楼层
楼主
ID:420753 发表于 2018-11-4 21:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
激光测距源码,跟大家分享一下
  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);    //初始化,连续输出模式
  22.   //mySerial.write(0XEA);    //初始化,连续输出模式
  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)                //接收到数据
  33.     {   
  34.        counter=0;                 //重新赋值,准备下一帧数据的接收
  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)                //接收到数据
  69.     {   
  70.        counter=0;                 //重新赋值,准备下一帧数据的接收
  71.        sign=1;
  72.     }      
  73.   }
  74. }*/
复制代码


全部资料51hei下载地址:
arduino.zip (1.83 KB, 下载次数: 18)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:25481 发表于 2018-11-13 08:02 | 只看该作者
这个模块输出的距离单位是厘米还是毫米?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表