Example Code for Raspberry Pi - GPIO HAT I2C Validation

Last revision 2025/12/19

This example uses the acceleration sensor for demonstration.Displays the acceleration values of the x, y and z axes.

Hardware Preparation

Software Preparation

Wiring Diagram

Shield Pin name Sensor Pin name
Raspberry Pi 4B GPIO Terminal Block HAT 3.3V LIS2DW12 Triple Axis Accelerometer VCC
Raspberry Pi 4B GPIO Terminal Block HAT GND LIS2DW12 Triple Axis Accelerometer GND
Raspberry Pi 4B GPIO Terminal Block HAT SCL LIS2DW12 Triple Axis Accelerometer SCL
Raspberry Pi 4B GPIO Terminal Block HAT SDA LIS2DW12 Triple Axis Accelerometer SDA

Sample Code

#include <DFRobot_LIS2DW12.h>

DFRobot_LIS2DW12_I2C acce;

void setup(void){

  Serial.begin(9600);
  while(!acce.begin()){
     Serial.println("Communication failed, check the connection and I2C address setting when using I2C communication.");
     delay(1000);
  }
  Serial.print("chip id : ");
  Serial.println(acce.getID(),HEX);
  acce.softReset();
  acce.continRefresh(true);
  acce.setDataRate(DFRobot_LIS2DW12::eRate_50hz);
  acce.setRange(DFRobot_LIS2DW12::e2_g);
  acce.setFilterPath(DFRobot_LIS2DW12::eLPF);
  acce.setFilterBandwidth(DFRobot_LIS2DW12::eRateDiv_4);
  acce.setPowerMode(DFRobot_LIS2DW12::eContLowPwrLowNoise2_14bit);
  Serial.print("Acceleration:\n");
  delay(100);
}

void loop(void){
    Serial.print("x: ");
    Serial.print(acce.readAccX());
    Serial.print(" mg \ty: ");
    Serial.print(acce.readAccY());
    Serial.print(" mg \tz: ");
    Serial.print(acce.readAccZ());
    Serial.println(" mg");
    delay(300);
}

Result

DFR0918-I2C Result

Was this article helpful?

TOP