Premessa:
Accelerometro 3 Assi MMA7361 è un sensore che interfacciato con un Microcontrollore o processore tipo Arduino o Raspberry Pi, può rilevare tramite gli ingressi analogici le varie informazioni di accelerazione per il vostro robot o altri dispositivi.
LISTA DEI MATERIALI:
SCHEMATICO:
CARATTERISTICHE TECNICHE:
- Tensione: 3.3-8V
- Sensibilità selezionabile: ± 1,5 g / 6g
- Bassa potenza: modalità di misurazione @ 500μA, 3μAstandby;
- Alta sensibilità: 800 mV / g @ 1,5 g;
- Interfaccia: Uscita analogica
- Filtro passa basso
- Dimensioni: 37x26mm
Sotto riportato sketch per controllare tramite Arduino le variazioni dell’accelerometro tre assi MMA7361:
#include <math.h> #include <stdio.h> #define A_X 5 #define A_Y 4 #define A_Z 3 int val_x,val_y,val_z; double b; void setup() { pinMode(A_X,INPUT); pinMode(A_Y,INPUT); pinMode(A_Z,INPUT); Serial.begin(9600); } void loop() { float a; for (int i=0;i<10;i++) { val_x+=analogRead(A_X);delay(2); val_y+=analogRead(A_Y);delay(2); val_z+=analogRead(A_Z);delay(2); } val_x=val_x/10; val_y=val_y/10; val_z=val_z/10; delay(300); Serial.print(" X_Axis: "); Serial.print(val_x); Serial.print(" Z_Axis: "); Serial.print(val_z); Serial.print(" "); b=(double) (abs(val_x-320))/(abs(val_z-320)); Serial.print(" B: "); Serial.print(b); Serial.print(" "); a=atan(b); Serial.print(" A: "); Serial.println(a/3.14*180); //the value of Angle val_x=0; val_y=0; val_z=0; }