Accelerometro MMA7361 - ARDUINO

Salve ragazzi volevo chiedervi un informazione.
Ho acquistato qualche giorno fa questo accelerometro per fare un esperimento di fisica e voglio calcolare l'accelerazione. Però quando mando questo codice noto che anche se il sensore è fermo mi restituisce sempre il valore 100 su z invece x ed y giustamente 0. Perché?

#include <AcceleroMMA7361.h>
        AcceleroMMA7361 accelero;
        int x;
        int y;
        int z;
        void setup()
        {
        Serial.begin(9600);
        accelero.begin(13, 12, 11, 10, A0, A1, A2);
        accelero.setARefVoltage(5); //sets the AREF voltage to 3.3V
        accelero.setSensitivity(LOW); //sets the sensitivity to +/-6G
        accelero.calibrate();
        }
        void loop()
        {
        x = accelero.getXAccel();
        y = accelero.getYAccel();
        z = accelero.getZAccel();
        Serial.print("\nx: ");
        Serial.print(x);
        Serial.print(" \ty: ");
        Serial.print(y);
        Serial.print(" \tz: ");
        Serial.print(z);
        Serial.print("\tG*10^-2");
        delay(500); //make it readable
        }

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento

Deficiente:
noto che anche se il sensore è fermo mi restituisce sempre il valore 100 su z invece x ed y giustamente 0. Perché?

Per il semplice motivo che se appoggi l'accelerometro su un piano l'asse Z misura l'accelerazione gravitazionale, se lo setti per +/-6 G 1G sono poco meno di 100 count del ADC.
Tocca vedere come la librerie gestisce le letture del ADC per capire cosa rappresenta esattamente quel 100, comunque corrisponde a 1G, o -1G a seconda di come fissi il sistema di riferimento.

E' bastato dare uno sguardo alla documentazione della libreria, se usi getXAccel() ottieni un valore in centesimi di G, 100 = 1 G.

Scusate se non mi sono presentato.. stavo leggendo alcune vostre discussioni aperte per cercare di risolvere questo problema, ma siccome alcune cose non mi erano chiare ho deciso di aprirne una io, comunque risolverò il problema presto! Comunque, grazie astrobeed per avermi risposto.. io la libreria me la sono studiata e mi è tutto chiaro, la cosa che non capisco è come è possibile che se il sensore è fermo comunque mi da sull'asse z il valore 1G... non dovrebbe darmi 0? scusa se è fermo non dovrebbero esserci accelerazioni.. questa è la cosa che non mi è chiara!

Deficiente:
la cosa che non capisco è come è possibile che se il sensore è fermo comunque mi da sull'asse z il valore 1G... non dovrebbe darmi 0? scusa se è fermo non dovrebbero esserci accelerazioni.. questa è la cosa che non mi è chiara!

Te l'ho già spiegato, l'asse Z sta misurando l'accelerazione gravitazionale che è 1G, se ribalti il sensore dovresti ottenere -100 e se lo inclini lentamente fino a metterlo in verticale vedrai che l'asse Z si porta al valore zero mentre l'asse X, o Y a seconda dell'asse di rotazione, arriva a segnare 1G.

okkei mi è chiara questa cosa.. ma in realtà il corpo è fermo quindi non c'è accelerazione.. o mi sbaglio? L'accelerazione gravitazionale non dovrebbe manifestarsi nel momento in cui io lascio cadere il corpo in caduta libera?

Deficiente:
okkei mi è chiara questa cosa.. ma in realtà il corpo è fermo quindi non c'è accelerazione.. o mi sbaglio?

La gravità è sempre presente indipendentemente dallo stato di moto o quiete, altrimenti non peseresti nulla quando stai fermo :slight_smile:

Perfetto.. grazie mille astrobeed e perdona la mia ignoranza..!!!

E se ti muovi, rispetto a cosa acceleri?

Si potrebbe intitolare "accelerometri e principio di Mach"
(Battutaccia per fisici) :grin:

E se lo fai cadere, in caduta libera, quanto misuri sull'asse z ?

paulus1969:
E se lo fai cadere, in caduta libera, quanto misuri sull'asse z ?

Bella domanda, e se lo porta sulla ISS quanto misura sull'asse Z ? :slight_smile:

non capisco.. in ogni caso ho capito perchè quel 100 anche se comunque io non mi trovo perchè un corpo accelerato dovrebbe muoversi.. se un corpo è fermo non dovrebbero esserci accelerazioni, ovvero l'accelerazione di gravità c'è è normale però la risultante delle forze che agisce su esso dovrebbe essere 0..

Deficiente:
ovvero l'accelerazione di gravità c'è è normale però la risultante delle forze che agisce su esso dovrebbe essere ..

Appunto la gravità è sempre presente e guarda caso la sua unità di misura è una accelerazione, 9.81 m/s^2.
Una forza è la risultante di una accelerazione su una massa, sulla terra il peso, è la forza che ci tiene ancorati al suolo, è dato dalla massa moltiplicata per l'accelerazione gravitazionale.
Il fatto che rimani fermo su un pavimento è dato dalla differenza tra la forza esercita data dalla gravità, ovvero il prodotto della tua massa con l'accelerazione gravitazionale, e la resistenza offerta dal pavimento stesso, il fatto che la somma dei due vettori forza è pari a zero non significa che non c'è una accelerazione.
Se sei in caduta libera, nel vuoto, l'accelerometro segna zero sull'asse Z proprio perché non c'è nessuna forza resistente a contrastare la gravità, idem sulla ISS dove la gravità è minima e praticamente fluttui liberamente, anche in questo caso l'asse z segna zero.
Ma non avevi esordito dicendo "per fare un esperimento di fisica ", si presume che dovresti avere un minimo di preparazione, in fin dei conti stiamo parlando di fisica di base, roba da primo anno delle superiori.