【花雕学编程】Arduino动手做(233)---使用ESP32-S3 UNO(N16R8)驱动ADXL345三轴模块

在这里插入图片描述

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十三:ESP32-S3 UNO开发板 双核16M+8M+Wi-Fi+蓝牙5.0+36个GPIO

偶然发现了这块ESP32-S3 UNO(N16R8)开发板,与Arduino UNO的外观设计规格是一样的。

在这里插入图片描述
ESP32-S3 UNO 开发板是基于 ESP32-S3-WROOM-1-N16R8 微控制器的扩展板,基于 Arduino 开发板架构。凭借 2.4GHz Wi-Fi 和集成蓝牙 5.0 等高级功能,它为开发各种项目提供了一个强大的平台。ESP32-S3 UNO 配备 16MB 闪存和 8MB RAM,特别适用于物联网 (IoT)、机器人和其他工程项目的复杂应用。该开发板支持 Python 和 C 等流行的编程语言,可以在 Arduino IDE 开发环境中轻松编程和使用。该板的高级功能,包括对多种通信协议的支持和高处理能力,使其成为专业工程师和开发人员的理想工具。

在这里插入图片描述
在这里插入图片描述
ADXL345是一款由Analog Devices公司推出的三轴数字加速度计,具有高分辨率和低功耗的特点,非常适合移动设备和其他需要精确加速度测量的应用。以下是对ADXL345三轴模块的详细介绍:

1、主要特点
高分辨率:ADXL345能够提供高达13位的分辨率,能够测量高达±16g的加速度1。
低功耗:在测量模式下,功耗低至23 μA,在待机模式下功耗仅为0.1 μA1。
多种测量范围:用户可以选择±2g、±4g、±8g或±16g的测量范围,适应不同的应用需求1。
数字接口:支持SPI(3线或4线)和I2C数字接口,方便与各种微控制器进行通信1。
内置功能:具有活动/非活动检测、单击/双击检测、自由落体检测等多种功能,可以独立映射到两个中断输出引脚1。

2、应用场景
移动设备:用于检测设备的倾斜、运动和冲击。
医疗仪器:用于监测患者的运动状态。
游戏和定点设备:用于检测用户的动作和姿态。
工业仪器仪表:用于监测机器的振动和运动状态。
个人导航设备:用于检测设备的方向和运动。

3、引脚功能
ADXL345模块通常有以下引脚:
VCC:电源引脚,连接到2.0V至3.6V的电源。
GND:地引脚。
SDA/SDI/SDIO:数据输入/输出引脚,用于I2C或SPI通信。
SCL/SCLK:时钟引脚,用于I2C或SPI通信。
CS:片选引脚,用于SPI通信。
INT1/INT2:中断引脚,用于输出检测到的事件。

4、使用步骤
连接电源和地:将VCC引脚连接到电源,GND引脚连接到地。
选择通信接口:根据需要选择I2C或SPI接口,并连接相应的引脚。
初始化传感器:在代码中初始化ADXL345传感器,设置测量范围和其他参数。
读取数据:通过I2C或SPI接口读取加速度数据,并进行处理。
ADXL345是一款功能强大且易于使用的三轴加速度计,适用于各种需要精确加速度测量的应用。

在这里插入图片描述
在这里插入图片描述
搜索安装:Adafruit BusIO,Adafruit_Sensor和Adafruit_ADXL345_U库
链接:https://github.com/adafruit/Adafruit_Sensor

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
要使用ESP32-S3 UNO(N16R8)驱动ADXL345三轴加速度模块,可以通过I2C或SPI接口进行连接和通信。

I2C接口连接
VCC:连接到ESP32的3.3V引脚。
GND:连接到ESP32的GND引脚。
SDA:连接到ESP32的SDA引脚(通常为GPIO21)。
SCL:连接到ESP32的SCL引脚(通常为GPIO22)。

SPI接口连接
VCC:连接到ESP32的3.3V引脚。
GND:连接到ESP32的GND引脚。
SDA/SDI/SDIO:连接到ESP32的MOSI引脚(通常为GPIO23)。
SCL/SCLK:连接到ESP32的SCLK引脚(通常为GPIO18)。
CS:连接到ESP32的CS引脚(可以选择任意可用GPIO,例如GPIO5)。
MISO:连接到ESP32的MISO引脚(通常为GPIO19)。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十三:ESP32-S3 UNO开发板 双核16M+8M+Wi-Fi+蓝牙5.0+45个GPIO
{花雕动手做}项目之五:使用ESP32-S3 UNO(N16R8)驱动ADXL345三轴模块

实验开源代码

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百三十三:ESP32-S3 UNO开发板 双核16M+8M+Wi-Fi+蓝牙5.0+45个GPIO
  {花雕动手做}项目之五:使用ESP32-S3 UNO(N16R8)驱动ADXL345三轴模块
*/

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>

// 创建ADXL345对象
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);

void setup() {
  Serial.begin(115200);
  
  // 初始化I2C总线,设置SDA为GPIO4,SCL为GPIO5
  Wire.begin(4, 5);
  
  // 初始化传感器
  if (!accel.begin()) {
    Serial.println("无法找到ADXL345传感器");
    while (1);
  }
  Serial.println("ADXL345传感器初始化成功");
  // 设置测量范围
  accel.setRange(ADXL345_RANGE_16_G);
}

void loop() {
  sensors_event_t event;
  accel.getEvent(&event);
  // 打印加速度数据
  Serial.print("X: "); Serial.print(event.acceleration.x); Serial.print("  ");
  Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print("  ");
  Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.println("  ");
  delay(500);
}

代码解读
1、I2C引脚配置:使用Wire.begin(4, 5)将I2C的SDA引脚配置为GPIO4,SCL引脚配置为GPIO5。
2、库导入:导入必要的库,包括Wire.h(用于I2C通信)和Adafruit_ADXL345_U.h。
3、创建对象:创建一个ADXL345对象,指定一个唯一的ID(例如12345)。
4、初始化传感器:在setup函数中,调用accel.begin()初始化传感器。如果初始化失败,程序将停在一个无限循环中。
5、设置测量范围:使用accel.setRange(ADXL345_RANGE_16_G)设置传感器的测量范围为±16g。
6、读取数据:在loop函数中,调用accel.getEvent(&event)读取加速度数据,并通过串口打印出来。
通过这些步骤,你可以成功配置ESP32-S3 UNO(N16R8)的I2C引脚为GPIO4和GPIO5,并驱动ADXL345传感器。

实验串口返回情况

在这里插入图片描述

实验串口绘图器返回情况

在这里插入图片描述
在这里插入图片描述

实验场景图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驴友花雕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值