首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >VL53L0X激光测距传感器.ESP32使用篇

VL53L0X激光测距传感器.ESP32使用篇

作者头像
云深无际
发布于 2020-12-15 10:02:50
发布于 2020-12-15 10:02:50
3.3K00
代码可运行
举报
文章被收录于专栏:云深之无迹云深之无迹
运行总次数:0
代码可运行

昨天对传感器的使用,还缺一个ESP32.这里补一下

首先把网站贴上

然后安装

注意这里的串口的打印波特率,错了会乱码

注意选对串口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://github.com/espressif/arduino-esp32
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
项目使用了 221281 字节,占用了 (16%) 程序存储空间。最大为 1310720 字节。
全局变量使用了16092字节,(4%)的动态内存,余留311588字节局部变量。最大为327680字节。
esptool.py v2.6
Serial port COM4
Connecting.....
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: f0:08:d1:d1:7d:c4
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 8192 bytes to 47...
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 5461.4 kbit/s)...
Hash of data verified.
Compressed 15856 bytes to 10276...
Wrote 15856 bytes (10276 compressed) at 0x00001000 in 0.1 seconds (effective 991.0 kbit/s)...
Hash of data verified.
Compressed 221392 bytes to 114130...
Wrote 221392 bytes (114130 compressed) at 0x00010000 in 1.7 seconds (effective 1065.0 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 128...
Wrote 3072 bytes (128 compressed) at 0x00008000 in 0.0 seconds (effective 1638.4 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <Wire.h>

void setup() {
  Wire.begin();
  Serial.begin(115200);
  Serial.println("\nI2C Scanner");
}
 
void loop() {
  byte error, address;
  int nDevices;
  Serial.println("Scanning...");
  nDevices = 0;
  for(address = 1; address < 127; address++ ) {
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
    if (error == 0) {
      Serial.print("I2C device found at address 0x");
      if (address<16) {
        Serial.print("0");
      }
      Serial.println(address,HEX);
      nDevices++;
    }
    else if (error==4) {
      Serial.print("Unknow error at address 0x");
      if (address<16) {
        Serial.print("0");
      }
      Serial.println(address,HEX);
    }    
  }
  if (nDevices == 0) {
    Serial.println("No I2C devices found\n");
  }
  else {
    Serial.println("done\n");
  }
  delay(5000);          
}

将ESP32与Arduino IDE搭配使用时,默认的I2C引脚为 GPIO 22 (SCL)和 GPIO 21 (SDA)

懂?

以上的程序是对打印i2C所在的地址

拔了i2c的器件,就没有了.插上就又可以打印出来.程序我就不分析了.以后分析

ESP32使用不同的I2C引脚(更改默认I2C引脚)

使用ESP32,你几乎可以将任何引脚设置为具有I2C功能,你只需要在代码中进行设置即可。

当将ESP32与Arduino IDE搭配使用时,请使用 wire库以使用I2C与设备通信。使用此库,你可以按以下方式初始化I2C:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Wire.begin(I2C_SDA, I2C_SCL);

因此,你只需要在驱动器上设置所需的SDA和SCL GPIO即可。 I2C_SDA 和 I2C_SCL 变量。具体驱动这个的方法看我下面的文章

VL53L0X激光测距传感器.Arduino使用篇

这个地方,你需要将引脚地址指定

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
项目使用了 223345 字节,占用了 (17%) 程序存储空间。最大为 1310720 字节。
全局变量使用了16132字节,(4%)的动态内存,余留311548字节局部变量。最大为327680字节。
esptool.py v2.6
Serial port COM4
Connecting........_
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: f0:08:d1:d1:7d:c4
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 8192 bytes to 47...
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 5957.9 kbit/s)...
Hash of data verified.
Compressed 15856 bytes to 10276...
Wrote 15856 bytes (10276 compressed) at 0x00001000 in 0.1 seconds (effective 998.8 kbit/s)...
Hash of data verified.
Compressed 223456 bytes to 115392...
Wrote 223456 bytes (115392 compressed) at 0x00010000 in 1.7 seconds (effective 1049.7 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 128...
Wrote 3072 bytes (128 compressed) at 0x00008000 in 0.0 seconds (effective 2234.2 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*!
 * @file DFRobot_VL53L0X.ino
 * @brief DFRobot's Laser rangefinder library
 * @n The example shows the usage of VL53L0X in a simple way.

 * @copyright  [DFRobot](http://www.dfrobot.com), 2016
 * @copyright  GNU Lesser General Public License
 
 * @author [LiXin]
 * @version  V1.0
 * @date  2017-8-21
 * @https://github.com/DFRobot/DFRobot_VL53L0X
 timer*/
#include "Arduino.h"
#include "Wire.h"
#include "DFRobot_VL53L0X.h"

/*****************Keywords instruction*****************/
//Continuous--->Continuous measurement model
//Single------->Single measurement mode
//High--------->Accuracy of 0.25 mm
//Low---------->Accuracy of 1 mm
/*****************Function instruction*****************/
//setMode(ModeState mode, PrecisionState precision)
  //*This function is used to set the VL53L0X mode
  //*mode: Set measurement mode       Continuous or Single
  //*precision: Set the precision     High or Low
//void start()
  //*This function is used to enabled VL53L0X
//float getDistance()
  //*This function is used to get the distance
//uint16_t getAmbientCount()
  //*This function is used to get the ambient count
//uint16_t getSignalCount()
  //*This function is used to get the signal count
//uint8_t getStatus();
  //*This function is used to get the status
//void stop()
  //*This function is used to stop measuring

DFRobotVL53L0X sensor;


void setup() {
  //initialize serial communication at 9600 bits per second:
  Serial.begin(115200);
  //join i2c bus (address optional for master)
//  Wire.begin();
  Wire.begin(21, 22);
  //Set I2C sub-device address
  sensor.begin(0x50);
  //Set to Back-to-back mode and high precision mode
  sensor.setMode(Continuous,High);
  //Laser rangefinder begins to work
  sensor.start();
}

void loop() 
{
  //Get the distance
  Serial.print("Distance: ");Serial.println(sensor.getDistance());
  //The delay is added to demonstrate the effect, and if you do not add the delay,
  //it will not affect the measurement accuracy
  delay(500);
}

改正了引脚就好了

这个是默认的I2C的引脚,看连接

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://github.com/SmartArduino/SZDOITWiKi/wiki/Programming-with-Lua

放大的引脚位置

然后进行更改引脚

成功使用

这个地方没有看懂

注意看宏定义,两个引脚

这个地方是我把TT拿出来了,改了引脚.上传倒是成功了.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
项目使用了 223345 字节,占用了 (17%) 程序存储空间。最大为 1310720 字节。
全局变量使用了16132字节,(4%)的动态内存,余留311548字节局部变量。最大为327680字节。
esptool.py v2.6
Serial port COM5
Connecting........_
Chip is ESP32D2WDQ5 (revision 1)
Features: WiFi, BT, Dual Core, Embedded Flash, VRef calibration in efuse, Coding Scheme None
MAC: b4:e6:2d:80:e8:45
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 2MB
Compressed 8192 bytes to 47...
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 10922.6 kbit/s)...
Hash of data verified.
Flash params set to 0x021f
Compressed 15856 bytes to 10276...
Wrote 15856 bytes (10276 compressed) at 0x00001000 in 0.1 seconds (effective 1048.3 kbit/s)...
Hash of data verified.
Compressed 223456 bytes to 115390...
Wrote 223456 bytes (115390 compressed) at 0x00010000 in 1.6 seconds (effective 1128.6 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 128...
Wrote 3072 bytes (128 compressed) at 0x00008000 in 0.0 seconds (effective 3510.9 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

但是输出的是乱码...

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
VL53L0X激光测距传感器.Arduino使用篇
这里因为DF家的demo是Arduino的,我这里就先用Arduino做演示~后面用手头别的开发板来演示.
云深无际
2020/12/15
4.5K0
VL53L0X激光测距传感器.Arduino使用篇
激光测距芯片VL53L0X的使用与代码
采用940nm垂直腔面发射激光器(Vertical-Cavity Surface-Emitting Laser,简称VCSEL)发射出激光,激光碰到障碍物后反射回来被VL53L0X接收到,测量激光在空气中的传播时间,进而得到距离。VCSEL相关知识
全栈程序员站长
2022/09/05
2.3K0
激光测距芯片VL53L0X的使用与代码
VL53L0X+stm32激光测距
最近学习stm32单片机,用VL53L0X这个传感器进行开发,花了不少时间和精力,写这个博客一个是为了记录自己的学习过程另外一个是感谢网上各位网友的帮助。我一直秉持分享的精神同时取之大众馈之大众。谨用这篇博客感谢各位的帮助。
全栈程序员站长
2022/08/22
1.3K0
VL53L0X激光测距传感器.Mind+使用篇
const char *c_str(); c_str()函数返回一个指向正规C字符串的指针常量, 内容与本string串相同. 这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。
云深无际
2020/12/15
1.6K0
VL53L0X激光测距传感器.Mind+使用篇
Arduino 和LCD1602液晶屏 I2C接口实验「建议收藏」
为什么使用I2C接口?因为省IO口啊,只需要4条线,可以看看之前发的实验,接线多复杂呀,对吧。
全栈程序员站长
2022/07/29
3.4K0
Arduino 和LCD1602液晶屏 I2C接口实验「建议收藏」
ESP32-I2C-Arduino
I2C (Inter-Integrated Circuit) 总线用于使 ESP32 和多个外部设备进行通信。多个外部设备可以共用一个 I 2C 总 线。
云深无际
2020/12/15
3K0
ESP32-I2C-Arduino
VL53L0X激光测距传感器.介绍篇
VL53L0X集成了一个领先的SPAD阵列(单光子雪崩二极管),并内嵌ST的第二代FlightSense™专利技术。 VL53L0X的940nm VCSEL发射器(垂直腔面发射激光器)完全不为人眼所见,加上内置的物理红外滤光片,使其测距距离更长,对环境光的免疫性更强,对盖片的光学串扰具有更好的稳定性。
云深无际
2020/12/15
3.8K3
VL53L0X激光测距传感器.介绍篇
ESP8266无人机-初始化过程
在最后是,偷偷的为你隐式的添加arduino的方法,比如你换各板子为什么就能引脚就可以变换了呢?就是这个pins的作用。
云深无际
2022/03/17
9370
ESP8266无人机-初始化过程
ESP32与MQTT:物联网通信的完美搭档
ESP32 是由 Espressif 开发的一系列低成本低功耗系统级芯片(SoC)微控制器,包括 Wi-Fi 和蓝牙无线功能以及双核处理器。如果你熟悉 ESP8266,那么 ESP32 就是它的继任者,拥有许多新功能。
Hello工控
2025/06/08
7130
ESP32与MQTT:物联网通信的完美搭档
基于arduino的lcd1602显示_LCD1602接口类型
准备元件: 1.Arduino主板(UNO)//Arduino主板(Mega)崭新出厂 2.LCD1602A液晶显示屏 3.LCD1602A的驱动—PCF8574驱动板
全栈程序员站长
2022/11/09
1.9K0
基于arduino的lcd1602显示_LCD1602接口类型
【教程】ESP32-CAM使用I2C驱动0.91寸OLED
1. 打开 Arduino IDE,然后转到 Sketch > Include Library > Manage Libraries。
小锋学长生活大爆炸
2024/02/23
1.1K0
【教程】ESP32-CAM使用I2C驱动0.91寸OLED
DS18B20温度传感器的特性、原理、驱动(华大半导体HC32L136、ESP32驱动)
新冠疫情、元器件涨价,同一家店铺之前买的DS18B20模组体积有大拇指这么大,最近买体积只有大拇指指甲盖这么大,以前无论买多少都有6元运费,今年哪怕买一块都是包邮,今年生意难做了,祈祷国泰民安、国强民富!
不脱发的程序猿
2021/01/20
3.5K0
AS5600 数据手册——12位可编程非接触式电位计
前几天拆了一个云台,研究了一下具体的实现,是使用的编码传感器。但是资料比较少,我这里收集了一下,需要的可以找我拿一下。
云深无际
2021/11/12
7.2K0
AS5600 数据手册——12位可编程非接触式电位计
Arduino驱动MPX5700AP气压传感器(压力传感器)
MPX5700AP测量范围15~700kPa,支持I2C数字输出,可以根据已知气压值进行标定,可以快速、准确的测量管路或其他环境中的气压值。适用于管路气压检测,自然科学实验等场景。
不脱发的程序猿
2023/12/11
7110
Arduino驱动MPX5700AP气压传感器(压力传感器)
【教程】ESP32-CAM使用WiFi和MQTT
小锋学长生活大爆炸
2024/02/23
8640
【教程】ESP32-CAM使用WiFi和MQTT
ESP8266直连1602实现桌面时钟
用ESP8266 node MCU开发板和1602A的LCD屏,参考网上教程做了个桌面时钟。没有什么技术含量,主要是为了积累通过MCU驱动屏幕显示的经验,方便以后做功能更多更具实用性的东西。
角落工程师
2022/06/11
2.2K0
esp32与ros2的开关灯
单片机开关灯是必须的,如何告知ros2,这里用主题方式实现。需要先阅读: esp32与ros2的欢乐启程 https://blog.csdn.net/ZhangRelay/article/detail
zhangrelay
2021/12/02
3780
esp32与ros2的开关灯
翻译:使用红外传感器与Arduino进行简单动作与手势检测
译注:昨天看 Adruino 的 Twitter 推了这篇项目,第一眼就觉得非常有趣,翻译给大家看看。文中的红外传感器比较高级,和淘宝上5块钱的那种只能输出0和1的不一样, TPA81 是可以输出温度的,还是8个连续点。 MLX90614 可以输出一点的温度,还卖将近三十,可以想象 TPA81 的价格……而且淘宝上并没有卖 TPA81 的,可见国内还没有仿的。文章也给出了另一个解决方案,使用8个 HC-SR505 来替代,这就便宜了很多。我想了一下,如果要只是实现像文章那样的增减手势,3个 HC-SR505 即可,只不过检测没那么精准罢了。只可惜手头没有3个 HC-SR505 ,没法尝试了哈哈😂。关于最后一个巨长的代码示例,大部分都是 OLED 的字符定义,挑着看即可。
张高兴
2025/05/21
1230
翻译:使用红外传感器与Arduino进行简单动作与手势检测
制作一个Tello无人机的WiFi无线遥控器(ESP8266+Shield).源码分析上
这里是我们主要要加载的三个库,分别是软串口的库,wifi对于esp8266的支持库,还有游戏手柄的硬件支持库,GitHub上面下载就好了
云深无际
2020/12/17
2.3K0
制作一个Tello无人机的WiFi无线遥控器(ESP8266+Shield).源码分析上
基于MacOS搭建ESP8266 NodeMCU CP2102开发环境
常见的ESP8266 NodeMCU开发板有 ESP8266 NodeMCU CP2102 和 ESP8266 NodeMCU CH340 ,CP2102 和 CH340是驱动类型,就是负责和电脑传输数据的模块,这里用的板子是ESP8266 NodeMCU CP2102,所以需要安装 CP2102 驱动。
DannyHoo
2022/05/09
2.4K0
基于MacOS搭建ESP8266 NodeMCU CP2102开发环境
相关推荐
VL53L0X激光测距传感器.Arduino使用篇
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档