#硬件准备
Adafruit ESP32-S3 TFT Feather 作为主控,刷入支持Ciruitpyhton固件
ST的G-Sensor(加速度传感器)LIS3DH,选择了Grove的扩展小板
Seeed Studio Grove 3轴数字加速度计(LIS3DHTR)基于LIS3DHTR芯片,具有多个量程和接口选择。这个三轴加速度计支持I (2)C、SPI和ADC GPIO接口。这允许在连接开发板时进行选择。这个加速计还可以监测周围的温度。

传感器和ESP32-S3的接口选择了I2C,采用杜邦线将其链接即可。
#软件程序
- 简单测试LIS3DH的驱动和功能,在adafruit-circuitpython-bundle-8.x-mpy-20230815文件包内即可找到对应的代码。
##库
- 需要将LIS3DH的库文件(adafruit_lis3dh.mpy),拷入lib文件夹
##示例程序
- 在example文件夹下有例程:lis3dh_adc.py、lis3dh_tap.py、lis3dh_simpletest.py、lis3dh_spinner.py、lis3dh_spinner_advanced.py,其中ADC例程是获取传感器模拟raw data/mv电压值,lis3dh_simpletest.py获取得到换算后的加速度值(即adc值/adc分辨率*量程)、lis3dh_tap.py例程则结合传感器的中断输出进行TAP单击/双击检测,另外两个是稍微复杂的指尖陀螺应用(加速度传感器+幻彩灯)
##测试代码
- 采用simpletest即可进行功能测试
import time
import board
import busio
import adafruit_lis3dh
if hasattr(board, "ACCELEROMETER_SCL"):
i2c = busio.I2C(board.ACCELEROMETER_SCL, board.ACCELEROMETER_SDA)
lis3dh = adafruit_lis3dh.LIS3DH_I2C(i2c, address=0x19)
else:
i2c = board.I2C()
lis3dh = adafruit_lis3dh.LIS3DH_I2C(i2c)
lis3dh.range = adafruit_lis3dh.RANGE_2_G
while True:
x, y, z = [
value / adafruit_lis3dh.STANDARD_GRAVITY for value in lis3dh.acceleration
]
print("x = %0.3f G, y = %0.3f G, z = %0.3f G" % (x, y, z))
time.sleep(0.1)
#调试
- 可以旋转变动各轴的位置,检查xyz的输出加速度值,从而判断传感器是否工作正常,传感器硬件是否正常,软件驱动是否配置正常。