oled/LIS3DH显示屏
看到你提到 OLED/LIS3DH 显示屏组合,我理解你大概率是希望在项目中同时使用 OLED 显示屏和 LIS3DH 加速度计传感器,并将 LIS3DH 读取的数据(如倾斜角度、运动方向等)实时显示在 OLED 屏幕上。?
这两个器件是电子项目中非常常见的组合:
- LIS3DH: 一款由意法半导体 (STMicroelectronics) 生产的低成本、低功耗、三轴加速度计传感器(不是显示屏)。
- 它通过 I2C 或 SPI 接口输出 X, Y, Z 三个方向的加速度数据。
- 常用于检测倾斜、运动、振动、点击/双击等。
- OLED (Organic Light-Emitting Diode) 显示屏: 一种使用有机发光二极管的显示屏幕。
- 常见规格:128x64像素、128x32像素、0.96英寸或1.3英寸尺寸(最常见的是0.96英寸 128x64)。
- 优点是:自发光(不需要背光)、高对比度、宽视角、响应速度快、可显示清晰图案和文字。
- 接口通常是 I2C (省线) 或 SPI (速度快),接口选择会影响到代码和接线方式。
如何将两者结合使用?
-
硬件连接 (核心是共享 I2C 总线):
-
选择接口: 大多数情况下,为了方便,OLED 和 LIS3DH 都选择 I2C 接口模式。它们可以共享同一个 I2C 总线(即
SCL和SDA两根线)。 -
连线要点:
- 将 OLED 的
VCC连接到主控板(如 Arduino)的3.3V或5V(取决于OLED模块规格,多数5V兼容)。 - 将 OLED 的
GND连接到主控板的GND。 - 将 OLED 的
SCL连接到主控板的 I2CSCL引脚(如 Arduino Uno/Nano 的A5)。 - 将 OLED 的
SDA连接到主控板的 I2CSDA引脚(如 Arduino Uno/Nano 的A4)。 - 将 LIS3DH 的
VCC连接到3.3V⚠️非常重要! LIS3DH 通常工作在 2.16V - 3.6V 范围,连接到 5V 可能损坏!如果你的主控板只有 5V,需要使用电平转换器。 - 将 LIS3DH 的
GND连接到主控板的GND。 - 将 LIS3DH 的
SCL连接到主控板的SCL(与 OLED 共享)。 - 将 LIS3DH 的
SDA连接到主控板的SDA(与 OLED 共享)。 - LIS3DH 可能需要连接
CS引脚到高电平 (VCC) 以启用 I2C 模式(具体看模块说明)。 - (可选) LIS3DH 的中断引脚 (
INT1,INT2) 可以连接到主控板的数字输入引脚用于触发中断。
- 将 OLED 的
-
? 关键点:I2C 地址冲突检查!
- OLED I2C 地址常见为 0x3C (最普遍) 或 0x3D (当模块上有电阻配置时)。
- LIS3DH I2C 地址取决于
SA0/SDO引脚的电平:接地 (LOW) 时为 0x18,接电源 (HIGH) 时为 0x19。 - 必须确保 OLED 和 LIS3DH 的 I2C 地址不同(
0x3Cvs0x18或0x19)才能同时挂在总线上! 如果不相同,配置地址即可解决冲突问题。
-
-
软件 (Arduino 示例思路):
- 安装库:
- OLED 库: 安装
Adafruit SSD1306和Adafruit GFX Library(通过 Arduino IDE 库管理器搜索安装)。 - LIS3DH 库: 安装
Adafruit LIS3DH库 (通过 Arduino IDE 库管理器搜索安装)。
- OLED 库: 安装
-
代码流程:
#include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <Adafruit_LIS3DH.h> #include <Adafruit_Sensor.h> // 定义OLED尺寸 (常见128x64, 128x32) #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_ADDR 0x3C // OLED的I2C地址,通常0x3C // 创建OLED对象 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire); // 创建LIS3DH对象 Adafruit_LIS3DH lis = Adafruit_LIS3DH(); // 使用默认地址0x18 // 如果地址不同(0x19),需修改构造函数: Adafruit_LIS3DH lis = Adafruit_LIS3DH(0x19); void setup() { Serial.begin(9600); // 初始化OLED if(!display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR)) { Serial.println(F("SSD1306 allocation failed")); for(;;); // 死循环 } display.display(); // 显示Adafruit Logo delay(2000); // 暂停2秒 display.clearDisplay(); // 清除缓冲区 display.setTextSize(1); display.setTextColor(SSD1306_WHITE); display.setCursor(0,0); // 初始化LIS3DH if (! lis.begin(0x18)) { // 根据实际连接的SA0/SDO引脚调整地址参数 (0x18 或 0x19) Serial.println("LIS3DH not found"); display.println("LIS3DH not found!"); display.display(); while (1); } lis.setRange(LIS3DH_RANGE_4_G); // 设置量程(可选: 2_G, 4_G, 8_G, 16_G) Serial.println("LIS3DH and OLED found!"); display.println("LIS3DH OK!"); display.display(); delay(1000); display.clearDisplay(); } void loop() { // 清除显示缓冲区 display.clearDisplay(); display.setCursor(0,0); // 读取LIS3DH数据 (G为单位) sensors_event_t event; lis.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(" m/s^2"); // 在OLED上显示标题 display.println("Accel (m/s^2):"); // 在OLED上格式化显示X, Y, Z数据 display.print("X: "); display.println(event.acceleration.x, 2); // 保留2位小数 display.print("Y: "); display.println(event.acceleration.y, 2); display.print("Z: "); display.println(event.acceleration.z, 2); // 你也可以显示其他信息,比如角度或状态 // float angleX = atan2(event.acceleration.y, event.acceleration.z) * RAD_TO_DEG; // display.print("Angle X: "); display.println(angleX, 1); // 将缓冲区内容发送到OLED显示 display.display(); delay(200); // 稍作延时,更新速率约为5Hz }
- 安装库:
常见问题 & 解决:
- ⚡LIS3DH 没反应/发热: 最大的可能!LIS3DH 只接受 3.3V 供电! 如果错接到 5V,它可能会损坏或行为异常。务必确认 LIS3DH 连接到 3.3V 电源。
- ?️ OLED 或 LIS3DH 找不到:
- 接线错误: 仔细检查
VCC,GND,SCL,SDA是否接对。 - I2C 地址冲突: 用
I2C Scanner示例程序扫描 I2C 总线,确认两个设备的地址是否不同且能被检测到。 - 库未安装或版本不对: 确保安装了正确版本的库。
- OLED/LIS3DH 模块故障: 单独测试模块。
- 接线错误: 仔细检查
- OLED 显示乱码: 检查
SCREEN_WIDTH和SCREEN_HEIGHT定义是否与实际屏幕匹配。确认OLED_ADDR是否正确。
总结:
OLED 和 LIS3DH 是非常适合搭配的硬件 - OLED 清晰显示数据,LIS3DH 提供实时的动态感知。使用中关键是 I2C 地址不能冲突,以及 LIS3DH 务必使用 3.3V 供电。库的使用让代码编写相对简单。
如果你需要关于具体接线图(哪个模块需要连到哪个开发板的哪个引脚?)、更高级的功能实现(如检测点击、手势或绘制图形?),或者遇到了特定错误,请告诉我你使用的开发板型号、OLED尺寸和遇到的问题细节,我很乐意继续深入探讨!?
LIS3DH的应用笔记
本文档介绍了以 LGA 封装提供的低压 3 轴数字量输出线性 MEMS 加速度计。LIS3DH 是属于 “nano” 系列的超低功耗高性能 3
LIS3DH相关资料分享
LIS3DH 是属于 “nano” 系列的超低功耗高性能 3 轴线性加速度计,具有数字 I2C、 SPI 串行接口标准输出。器件具有超低功耗工作模式,可实现高级节能、智能睡眠唤醒以及恢复睡眠功能。
LIS3DH地址更改配置后的问题求解
我正在使用表现出奇怪行为的 LIS3DH 分线板。我的 I2C master 是一块 STM32L496 板,已经用其他 I2C 芯片测试过。 启动I2C 初始化至 400 KHz通过
LIS3DH高性能3轴线性加速度计应用笔记
本文档介绍了以 LGA 封装提供的低压 3 轴数字量输出线性 MEMS 加速度计。 LIS3DH 是属于 “nano” 系列的超低功耗高性能 3
资料下载
乐侨珂
2023-07-31 09:44:39
stm32 硬件IIC使用方法说明与示例---LIS3DH的IIC通信
例子很多。这里我需要使用LIS3DH三轴加速度传感器,获取三个方向的加速度用于碰撞检测。这个是LIS3DH数据刷新速率的配置寄存器:出于某些原因,我需要达到500hz以上的数据刷新速率,所以ODR要配置成0b1000
资料下载
mintsy
2021-12-09 12:21:10
LIS3DH INT1_THS设置问题
我想要做一个LIS3DH角度报警的程序 目前中断 角度值都可以实现,但是关于设置报警的角度时遇到了问题,如何设置INT1_THS寄存器都只会让角度在80-90之间进行报警,无法在自己想要的角度区间
请问LIS3DH是否有FIFO空中断?
LIS3DH是否有FIFO空中断? #motion-sensor #accelerometer#lis3dh #fifo#lis3dh以上来自于
在与EEPROM相同的SPI总线上使用LIS3DH,是否可能?
我打算在与SPI相同的SPI总线上使用LIS3DH。 但在数据表中,它说LIS3DH CS引脚选择SPI或I2C。 当LIS3DH CS引脚为
LIS3DH INT2配置和功能是否与INT1不同?
嗨, 对于LIS3DH,数据表提到了两个用户可编程中断INT1和INT2。虽然为INT1列出了配置,阈值,持续时间等(INT1_CFG,INT1_SRC,INT1_THS
LIS3DH功耗太高
我们使用10Hz的LIS3DH,具有FIFO,低功耗模式,I2C用于通信。我们测量当前的电流: - 3.6V电源,160uA - 3.0V电源,100uA - 2.3V电源60uA 数据表声称
LIS3DH高通滤波器不工作
在工作中我使用LIS3DH加速度计来检测身体运动。它配置为+/- 2 gs,每秒50个样本,带有流式FIFO。水印可以很好地确定FIFO何时需要清空。 该规范说明所有三个XY和Z轴都可以
LIS3DH Z输出噪音很大
我正在尝试使用LIS3DH传感器测量机器的振动。我将LIS3DH设置为低功耗模式和5.376 kHz采样频率,输出8位输出。我使用spi从传感器获取数据。我使用数据表中给出的灵敏度值将此原始输出更改
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- dtmb信号覆盖城市查询
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机