Accelerometro ADXL345
L’ADXL345 è un piccolo, sottile, a bassa potenza, accelerometro a 3 assi con alta risoluzione (13 bit) di misura fino a ± 16 g. I dati di uscita sono formattati a blocchi di 16 bit accessibili sia attraverso il bus SPI (a 3 o 4 fili) sia con l’interfaccia digitale I2C. L’ADXL345 è adatto per misurare l’accelerazione statica di gravità nelle applicazioni tilt-sensing.
Componenti
- Accelerometro ADXL345
- Arduino
Schema elettrico
Clicca sull’immagine per ingrandirla
Codice di esempio
#include "Wire.h" #include "ADXL345.h" const float alpha = 0.5; double fXg = 0; double fYg = 0; double fZg = 0; ADXL345 acc; void setup() { acc.begin(); Serial.begin(9600); delay(100); } void loop() { double pitch, roll, Xg, Yg, Zg; acc.read(&Xg, &Yg, &Zg); //Low Pass Filter to smooth out data fXg = Xg * alpha + (fXg * (1.0 - alpha)); fYg = Yg * alpha + (fYg * (1.0 - alpha)); fZg = Zg * alpha + (fZg * (1.0 - alpha)); //Roll and Pitch Equations roll = (atan2(-fYg, fZg)*180.0)/M_PI; pitch = (atan2(fXg, sqrt(fYg*fYg + fZg*fZg))*180.0)/M_PI; Serial.print("\tY: "); Serial.print(pitch); Serial.print("\t Z: "); Serial.println(roll); delay(500); }
Link utili
Libreria ADXL345.h: https://github.com/Anilm3/ADXL345-Accelerometer/tree/master/Arduino
Datasheet ADXL345: http://www.analog.com/static/imported-files/data_sheets/ADXL345.pdf
Guida GY80: http://blog.oscarliang.net/use-gy80-arduino-adxl345-accelerometer/