L’Accelerometro MMA7361L della Freescale è un accelerometro a 3 assi con tre uscite analogiche separate con sensibilità regolabile a ±1.5g oppure a ±6g:
L’Accelerometro MMA7361L rileva l’accellerazione dei 3 assi X,Y e Z come riportato nel suo datasheet ufficiale.
La sensibilità è regolabile a ±1.5g oppure a ±6g semplicemente commutando a LOW o HIGH un pin dell’integrato, la Freescale rilascia la seguente tabella:
quindi puoi impostare la sensibilità a ±1.5g impostando il pin g-select a LOW.
L’accelerometro MMA7361L è venduto dalla Freescale in contenitore 14 LEAD LGA CASE 1977-01:
che lo rende inutilizzabile con una breadboard per cui ti consiglio di acquistarne uno già corredato di breakout con i contatti a passo standard per breadboard:
in modo da poterlo utilizzare, io ho acquistato qui un accelerometro tipo MMA7361L già assemblato per una decina di euro.
Ogni breakout riporta il contatto g-Select in una posizione differente, come tutti gli altri contatti per cui controlla sul datasheet della tua scheda dove sono posizionati i differenti pin prima di collegarla ad arduino.
I pin dell’accelerometro MMA7361L
i pin dell’accelerometro sono sempre identici anche se la loro posizione sulla breakout:
i pin principali sono cinque, i soli necessari a poter già utilizzare l’accelerometro MMA7361L e sono:
- Vdd alimentazione a +3,3v
- Vss terminale negativo o Gnd
- Xout uscita analogica in mV relativa all’accelerazione dell’asse X
- Yout uscita analogica in mV relativa all’accelerazione dell’asse Y
- Zout uscita analogica in mV relativa all’accelerazione dell’asse Z
- g-Select: impostare la sensibilità tra ±1.5g e ±6g
- 0g-Detect: trovare quando l’MMA7361L è in posizione 0g
- Sleep: in grado di mettere questo accellerometro in modalità Sleep riducendo a 3uA il consumo di corrente
- Self-Test: per verificare che l’integrità meccanica dell’accelerometro anche dopo il suo montaggio
Range di accelerazione sui 3 assi
Collegamenti dell’accelerometro MMA7361L
Per utilizzare lo sketch dovrai eseguire i collegamenti come in tabella:
accelerometro MMA7361L | Arduino |
3,3v | 3,3v |
Gnd | Gnd |
Xout | A0 |
Yout | A1 |
Zout | A2 |
g-Select | Gnd |
Sleep | 3,3v |
3.3v su AREF |
Collega l’alimentazione ai +3,3v e Gnd arduino;
Collega i tre pin di output ai pin analogici arduino;
Collega il pin g-Select a Gnd, per impostare l’accelerazione a ±1.5g = 800mV ad ogni g;
Collega lo Sleep pin ai 3,3v;
Collega i 3,3v di arduino al pin AREF di arduino.
L’ultimo collegamento ti serve per poter impostare come tensione di riferimento il valore 3,3v in quanto le uscite X,Y e Z out dell’accelerometro sono 3,3v;
Ecco i collegamenti lato Arduino:
ed i collegamenti al sensore, nel mio caso la breakout possiede un regolatore di tensione integrato per cui ho alimentato l’accelerometro con +5v e ricavato dallo stesso i +3,3v portati sul pin Sleep.
Se il pin Sleep dell’accelerometro mma7361l non è collegato a +3,3v il dispositivo resta in modalità sleep ( dormiente o risparmio energetico ) e non ti invia alun valore sui pin di output:
Il primo sketch di test che ti propongo serve a valutare i valori letti su ciascun ingresso analogico Arduino:
/********************************************************** * MMA7361L Arduino * * Data creazione 02 aprile 2013 * Ultima modifica 03 aprile 2013 * * autore: Mauro Alfieri * web: mauroalfieri.it * tw: @mauroalfieri * /**********************************************************/ int XPin = A0; // X int YPin = A1; // Y int ZPin = A2; // Z void setup() { Serial.begin(9600); analogReference(EXTERNAL); Serial.println("Setup MMA7361L"); } void loop() { Serial.print("X: "); Serial.print( analogRead(XPin) ); Serial.print(" Y: "); Serial.print( analogRead(YPin) ); Serial.print(" Z: "); Serial.print( analogRead(ZPin) ); Serial.print("\n"); delay(500); }
linea 19: imposta la tensione di riferimento di arduino a 3,3v mediante il collegamento AREF;
linee 24-30: leggi i valori analogici presenti sui pin A0,A1,A2 a cui hai collegato gli output dell’accelerometro MMA7361L e scrivi sul monitor seriale tali valori;
linea 32: attendi 500 millisecondi ( 1/2 secondo ) prima di ri-eseguire la lettura degli ingressi analogici e trasferirne il risultato sul monitor seriale.
Ciò che leggerai sul monitor seriale durante l’esecuzione dello sketch dovrebbe essere simile a questo:
Libreria per accelerometro MMA7361L
Ho trovato questa libreria che puoi utilizzare per controllare i valori letti sulle uscite X,Y e Z dell’accelerometro, nei prossimi articoli proverò gli esempi e come utilizzarla in un progetto pratico.
Buon divertimento !!!
Prima di inserire un commento, per favore, leggi il regolamento
31 pings
Skip to comment form