ADXL345 la module cảm biến độ nghiêng 3 trục, tiêu thụ năng lượng thấp, độ phân giải cao. Module ADXL345 thường được sử dụng trong các thiết bị di động, có chức năng đo gia tốc trọng trường tĩnh trong các ứng dụng đo góc nghiêng. Ngoài ra nó còn đo gia tốc động từ các chuyển động hoặc rung động của vật thể.
Thông số kỹ thuật:
- Điện áp hoạt động: 3.3VDC/ 5VDC
- Dòng tiêu thụ: 23uA
- Độ phân giải: 10bit
- Giao tiếp: SPI hoặc I2C
- Kích thước: 14*19mm
- Nhiệt độ hoạt động từ: -40 đến +85oC
Sơ đồ chân:
Code tham khảo Arduino:
/* * Kết nối: * ADXL345 Arduino * VCC 5V * GND GND * SCL SCL * SDA SDA * */ #include #include #include /* Assign a unique ID to this sensor at the same time */ Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345); float AccelMinX = 0; float AccelMaxX = 0; float AccelMinY = 0; float AccelMaxY = 0; float AccelMinZ = 0; float AccelMaxZ = 0; void setup(void) { Serial.begin(9600); Serial.println("ADXL345 Accelerometer Calibration"); Serial.println(""); /* Initialise the sensor */ if(!accel.begin()) { /* There was a problem detecting the ADXL345 ... check your connections */ Serial.println("Ooops, no ADXL345 detected ... Check your wiring!"); while(1); } } void loop(void) { Serial.println("Type key when ready..."); while (!Serial.available()){} // wait for a character /* Get a new sensor event */ sensors_event_t accelEvent; accel.getEvent(&accelEvent); if (accelEvent.acceleration.x < AccelMinX) AccelMinX = accelEvent.acceleration.x; if (accelEvent.acceleration.x > AccelMaxX) AccelMaxX = accelEvent.acceleration.x; if (accelEvent.acceleration.y < AccelMinY) AccelMinY = accelEvent.acceleration.y; if (accelEvent.acceleration.y > AccelMaxY) AccelMaxY = accelEvent.acceleration.y; if (accelEvent.acceleration.z < AccelMinZ) AccelMinZ = accelEvent.acceleration.z; if (accelEvent.acceleration.z > AccelMaxZ) AccelMaxZ = accelEvent.acceleration.z; Serial.print("Accel Minimums: "); Serial.print(AccelMinX); Serial.print(" ");Serial.print(AccelMinY); Serial.print(" "); Serial.print(AccelMinZ); Serial.println(); Serial.print("Accel Maximums: "); Serial.print(AccelMaxX); Serial.print(" ");Serial.print(AccelMaxY); Serial.print(" "); Serial.print(AccelMaxZ); Serial.println(); while (Serial.available()) { Serial.read(); // clear the input buffer } }
Tài liệu tham khảo:
Video tham khảo: