Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use 3-axis accelerometer dfrobot sen0409: Examples, Pinouts, and Specs

Image of 3-axis accelerometer dfrobot sen0409
Cirkit Designer LogoDesign with 3-axis accelerometer dfrobot sen0409 in Cirkit Designer

Introduction

The DFRobot SEN0409 is a 3-axis accelerometer designed to measure acceleration in three dimensions: X, Y, and Z. This sensor is ideal for applications requiring motion detection, orientation tracking, and tilt sensing. Its compact design and high sensitivity make it suitable for use in robotics, mobile devices, gaming controllers, and wearable technology.

The SEN0409 provides accurate acceleration data, enabling users to detect movement, measure vibration, and determine the orientation of objects. It is compatible with microcontrollers such as Arduino, making it a versatile choice for hobbyists and professionals alike.

Explore Projects Built with 3-axis accelerometer dfrobot sen0409

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino Nano-Based Sign Language Translator with Flex Sensors and MPU-6050
Image of sign_language_flex: A project utilizing 3-axis accelerometer dfrobot sen0409 in a practical application
This circuit features an Arduino Nano interfaced with an MPU-6050 gyroscope/accelerometer and a DFPlayer Mini MP3 module connected to a loudspeaker for audio output. The Arduino reads values from five flex sensors and the MPU-6050 to monitor hand movements and orientation, likely for a sign language translation system. The DFPlayer Mini is controlled via serial communication to play audio files, possibly to output corresponding spoken words.
Cirkit Designer LogoOpen Project in Cirkit Designer
Teensy 4.1 Based Biometric Data Acquisition System with AD8232 Heart Rate Monitor and LIS3DH Accelerometer
Image of Teensy 4.1 accelerometer: A project utilizing 3-axis accelerometer dfrobot sen0409 in a practical application
This circuit integrates a Teensy 4.1 microcontroller with an Adafruit LIS3DH Triple-Axis Accelerometer and an AD8232 Heart Rate Monitor. The accelerometer communicates with the Teensy via I2C (SCL and SDA lines), while the heart rate monitor's output and lead-off detection (LO+ and LO-) are connected to the Teensy's analog inputs. The circuit is designed to measure both acceleration and heart rate signals, likely for a wearable or health monitoring device.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Nano and MPU-6050 Based Motion-Controlled Bluetooth Interface
Image of gesture control robot: A project utilizing 3-axis accelerometer dfrobot sen0409 in a practical application
This circuit is designed to read accelerometer data from an MPU-6050 sensor and transmit commands via Bluetooth using an HC-05 module, controlled by an Arduino Nano. The Arduino processes the accelerometer data to detect specific orientations or movements and sends corresponding commands ('f', 'b', 'l', 'r', 's') to a paired Bluetooth device. A rocker switch is used to control the power supply from a 18650 Li-Ion battery to the components.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO R4 WiFi and Adafruit LIS3DH Accelerometer-Based Motion Detection System
Image of circuit: A project utilizing 3-axis accelerometer dfrobot sen0409 in a practical application
This circuit consists of an Arduino UNO R4 WiFi connected to an Adafruit LIS3DH Triple-Axis Accelerometer via I2C communication. The Arduino reads acceleration data from the LIS3DH sensor and outputs it to the serial monitor for further analysis or processing.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with 3-axis accelerometer dfrobot sen0409

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of sign_language_flex: A project utilizing 3-axis accelerometer dfrobot sen0409 in a practical application
Arduino Nano-Based Sign Language Translator with Flex Sensors and MPU-6050
This circuit features an Arduino Nano interfaced with an MPU-6050 gyroscope/accelerometer and a DFPlayer Mini MP3 module connected to a loudspeaker for audio output. The Arduino reads values from five flex sensors and the MPU-6050 to monitor hand movements and orientation, likely for a sign language translation system. The DFPlayer Mini is controlled via serial communication to play audio files, possibly to output corresponding spoken words.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Teensy 4.1 accelerometer: A project utilizing 3-axis accelerometer dfrobot sen0409 in a practical application
Teensy 4.1 Based Biometric Data Acquisition System with AD8232 Heart Rate Monitor and LIS3DH Accelerometer
This circuit integrates a Teensy 4.1 microcontroller with an Adafruit LIS3DH Triple-Axis Accelerometer and an AD8232 Heart Rate Monitor. The accelerometer communicates with the Teensy via I2C (SCL and SDA lines), while the heart rate monitor's output and lead-off detection (LO+ and LO-) are connected to the Teensy's analog inputs. The circuit is designed to measure both acceleration and heart rate signals, likely for a wearable or health monitoring device.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of gesture control robot: A project utilizing 3-axis accelerometer dfrobot sen0409 in a practical application
Arduino Nano and MPU-6050 Based Motion-Controlled Bluetooth Interface
This circuit is designed to read accelerometer data from an MPU-6050 sensor and transmit commands via Bluetooth using an HC-05 module, controlled by an Arduino Nano. The Arduino processes the accelerometer data to detect specific orientations or movements and sends corresponding commands ('f', 'b', 'l', 'r', 's') to a paired Bluetooth device. A rocker switch is used to control the power supply from a 18650 Li-Ion battery to the components.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of circuit: A project utilizing 3-axis accelerometer dfrobot sen0409 in a practical application
Arduino UNO R4 WiFi and Adafruit LIS3DH Accelerometer-Based Motion Detection System
This circuit consists of an Arduino UNO R4 WiFi connected to an Adafruit LIS3DH Triple-Axis Accelerometer via I2C communication. The Arduino reads acceleration data from the LIS3DH sensor and outputs it to the serial monitor for further analysis or processing.
Cirkit Designer LogoOpen Project in Cirkit Designer

Technical Specifications

  • Manufacturer: DFRobot
  • Model: SEN0409
  • Measurement Range: ±2g, ±4g, ±8g, ±16g (configurable)
  • Supply Voltage: 3.3V to 5V
  • Communication Interface: I2C
  • I2C Address: 0x18 (default)
  • Operating Temperature: -40°C to +85°C
  • Dimensions: 20mm x 20mm

Pin Configuration and Descriptions

The SEN0409 has a 6-pin interface for easy integration into circuits. The table below describes each pin:

Pin Name Description
1 VCC Power supply input (3.3V to 5V)
2 GND Ground connection
3 SDA I2C data line
4 SCL I2C clock line
5 INT1 Interrupt 1 output (optional)
6 INT2 Interrupt 2 output (optional)

Usage Instructions

Connecting the SEN0409 to an Arduino UNO

To use the SEN0409 with an Arduino UNO, follow these steps:

  1. Connect the VCC pin of the SEN0409 to the 5V pin on the Arduino.
  2. Connect the GND pin of the SEN0409 to the GND pin on the Arduino.
  3. Connect the SDA pin of the SEN0409 to the A4 pin on the Arduino (I2C data line).
  4. Connect the SCL pin of the SEN0409 to the A5 pin on the Arduino (I2C clock line).

Sample Arduino Code

The following code demonstrates how to read acceleration data from the SEN0409 using the Arduino IDE:

#include <Wire.h>

// I2C address of the SEN0409 accelerometer
#define ACCELEROMETER_ADDR 0x18

// Register addresses for acceleration data
#define OUT_X_L 0x28
#define OUT_X_H 0x29
#define OUT_Y_L 0x2A
#define OUT_Y_H 0x2B
#define OUT_Z_L 0x2C
#define OUT_Z_H 0x2D

void setup() {
  Wire.begin(); // Initialize I2C communication
  Serial.begin(9600); // Start serial communication for debugging

  // Initialize the accelerometer
  Wire.beginTransmission(ACCELEROMETER_ADDR);
  Wire.write(0x20); // CTRL_REG1: Enable the accelerometer
  Wire.write(0x57); // Set data rate to 100Hz, enable all axes
  Wire.endTransmission();
}

void loop() {
  int16_t x, y, z;

  // Read X-axis acceleration
  x = readAxis(OUT_X_L, OUT_X_H);

  // Read Y-axis acceleration
  y = readAxis(OUT_Y_L, OUT_Y_H);

  // Read Z-axis acceleration
  z = readAxis(OUT_Z_L, OUT_Z_H);

  // Print acceleration values to the Serial Monitor
  Serial.print("X: ");
  Serial.print(x);
  Serial.print(" Y: ");
  Serial.print(y);
  Serial.print(" Z: ");
  Serial.println(z);

  delay(500); // Wait for 500ms before the next reading
}

// Function to read acceleration data for a specific axis
int16_t readAxis(uint8_t lowReg, uint8_t highReg) {
  Wire.beginTransmission(ACCELEROMETER_ADDR);
  Wire.write(lowReg); // Request low byte
  Wire.endTransmission(false);
  Wire.requestFrom(ACCELEROMETER_ADDR, 1);
  uint8_t lowByte = Wire.read();

  Wire.beginTransmission(ACCELEROMETER_ADDR);
  Wire.write(highReg); // Request high byte
  Wire.endTransmission(false);
  Wire.requestFrom(ACCELEROMETER_ADDR, 1);
  uint8_t highByte = Wire.read();

  // Combine high and low bytes into a 16-bit value
  return (int16_t)((highByte << 8) | lowByte);
}

Important Considerations

  • Ensure the I2C address (default: 0x18) matches the address configured in your code.
  • Use pull-up resistors (typically 4.7kΩ) on the SDA and SCL lines if they are not already present on your board.
  • Avoid exposing the sensor to extreme temperatures or mechanical shocks to maintain accuracy.

Troubleshooting and FAQs

Common Issues

  1. No data is being read from the sensor.

    • Ensure the wiring is correct and matches the pin configuration.
    • Verify that the I2C address in the code matches the sensor's default address (0x18).
  2. The sensor outputs incorrect or unstable values.

    • Check the power supply voltage (3.3V to 5V) and ensure it is stable.
    • Verify that the sensor is securely mounted and not subject to excessive vibration.
  3. The Arduino cannot detect the sensor on the I2C bus.

    • Use an I2C scanner sketch to confirm the sensor's address.
    • Ensure pull-up resistors are present on the SDA and SCL lines.

Tips for Troubleshooting

  • Use a multimeter to check the connections and ensure proper voltage levels.
  • Test the sensor with a different microcontroller or I2C device to rule out hardware issues.
  • Consult the DFRobot SEN0409 datasheet for additional technical details and configuration options.