

The ADXL335 is a small, thin, low-power, 3-axis accelerometer designed to measure acceleration in the X, Y, and Z axes. It provides analog output voltages proportional to the detected acceleration, making it an ideal choice for applications requiring motion sensing, tilt detection, and vibration monitoring. Its compact size and low power consumption make it suitable for portable and battery-powered devices.








The ADXL335 is a versatile accelerometer with the following key specifications:
| Parameter | Value |
|---|---|
| Supply Voltage (VCC) | 1.8V to 3.6V |
| Typical Operating Voltage | 3.3V |
| Power Consumption | 350 µA (typical) |
| Measurement Range | ±3 g |
| Sensitivity | 300 mV/g (at 3.3V supply) |
| Bandwidth | Selectable via external capacitors |
| Output Type | Analog |
| Operating Temperature Range | -40°C to +85°C |
| Dimensions | 4 mm × 4 mm × 1.45 mm (LFCSP) |
The ADXL335 has a 5-pin configuration, as detailed below:
| Pin Name | Pin Number | Description |
|---|---|---|
| VCC | 1 | Power supply input (1.8V to 3.6V) |
| GND | 2 | Ground |
| XOUT | 3 | Analog output voltage proportional to X-axis acceleration |
| YOUT | 4 | Analog output voltage proportional to Y-axis acceleration |
| ZOUT | 5 | Analog output voltage proportional to Z-axis acceleration |
Below is an example of how to connect and read data from the ADXL335 using an Arduino UNO:
// Define the analog pins connected to the ADXL335 outputs
const int xPin = A0; // X-axis output
const int yPin = A1; // Y-axis output
const int zPin = A2; // Z-axis output
void setup() {
// Initialize serial communication for debugging
Serial.begin(9600);
}
void loop() {
// Read analog values from the ADXL335
int xValue = analogRead(xPin); // Read X-axis value
int yValue = analogRead(yPin); // Read Y-axis value
int zValue = analogRead(zPin); // Read Z-axis value
// Convert the raw analog values to voltage (assuming 3.3V reference)
float xVoltage = xValue * (3.3 / 1023.0);
float yVoltage = yValue * (3.3 / 1023.0);
float zVoltage = zValue * (3.3 / 1023.0);
// Print the voltage values to the Serial Monitor
Serial.print("X Voltage: ");
Serial.print(xVoltage);
Serial.print(" V, Y Voltage: ");
Serial.print(yVoltage);
Serial.print(" V, Z Voltage: ");
Serial.print(zVoltage);
Serial.println(" V");
// Add a small delay for stability
delay(500);
}
No Output Signal:
Inconsistent Readings:
Incorrect Voltage Levels:
High Power Consumption:
Q1: Can the ADXL335 measure static acceleration (e.g., gravity)?
Yes, the ADXL335 can measure static acceleration, such as gravity, making it suitable for tilt and orientation sensing.
Q2: How do I calculate the acceleration from the output voltage?
Acceleration (g) = (Output Voltage - Zero-g Voltage) / Sensitivity.
For example, at 3.3V supply, the zero-g voltage is approximately 1.65V, and the sensitivity is 300 mV/g.
Q3: Can I use the ADXL335 with a 5V microcontroller?
Yes, but you must use a voltage divider or level shifter to ensure the output voltages are within the microcontroller's ADC input range.
Q4: What is the maximum bandwidth of the ADXL335?
The maximum bandwidth is 1600 Hz for the X and Y axes and 550 Hz for the Z axis, determined by the external capacitors.
By following this documentation, you can effectively integrate the ADXL335 into your projects for reliable motion and tilt sensing.