Étape 5: Comment utiliser l’accéléromètre MMA7361? :
C’est une carte de dérivation pour accéléromètre MEMS analogique de le tri-axial de Freescale MMA7361L. Le capteur nécessite une très faible quantité d’énergie et dispose d’un g-select une entrée qui commute l’accéléromètre entre ±1. 5 g et ±6g gammes de mesure. Les autres caractéristiques comprennent un mode de sommeil, conditionnement de signaux, un filtre passe-bas 1 pôle, compensation de température, autotest, et 0 g-detect qui détecte la chute libre linéaire. Sensibilité et le décalage de zéro-g sont réglées en usine et ne nécessitent aucun périphérique externe.
Ses caractéristiques sont :
- Supporte 2.2V ~ 3,6 v ou 5 v tension d’entrée.
- Deux gammes de mesure sélectionnables (±1, 5 g, ±6g)
- Maquette amical - pitch en-tête de 0,1"
- Faible consommation de courant : 400 µA
- Mode sommeil: 3 µA
- Opération de tension à faible : 2,2 V - 3, 6V
- Sensibilité élevée (800 mV/g à 1,5 g)
- Rapidement tourner à l’heure (0,5 ms permettent des temps de réponse)
- Auto-test pour freefall détecter diagnostic
- 0 g de détection pour la protection de chute libre
- Filtre passe-bas de conditionnement de signaux à faible
- Conception robuste, survivabilité élevée de chocs
Avec la bibliothèque de AcceleroMMA7361, il est si facile d’utiliser ce petit module. Les commandes que vous pouvez utiliser avec cette bibliothèque sont :
- void commencer ()
- void commencer (int sleepPin, int selfTestPin, int zeroGPin, int gSelectPin, int XPSous, int yPin, int zPin)
- int getXRaw)
- getXRaw() : retourne les données brutes de l’axe des abscisses de port d’e/s analogique de l’Arduino en tant qu’entier
- int getYRaw)
- getYRaw() : retourne les données brutes de l’axe y de port d’e/s analogique de l’Arduino en tant qu’entier
- int getZRaw)
- getZRaw() : retourne les données brutes de l’axe z de port d’e/s analogique de l’Arduino en tant qu’entier
- int getXVolt)
- getXVolt() : renvoie la tension mV entre l’axe des abscisses port d’e/s analogique de l’Arduino en tant qu’entier
- int getYVolt)
- getYVolt() : renvoie la tension mV entre l’axe des ordonnées port d’e/s analogique de l’Arduino en tant qu’entier
- int getZVolt)
- getZVolt() : renvoie la tension mV entre l’axe des z port d’e/s analogique de l’Arduino en tant qu’entier
- int getXAccel)
- getXAccel() : retourne l’accélération de l’axe des abscisses comme un int (1 = 100.00)
- int getYAccel)
- getYAccel() : retourne l’accélération de l’axe des ordonnées comme un int (1 = 100.00)
- int getZAccel)
- getZAccel() : retourne l’accélération de l’axe z comme un int (1 = 100.00)
- void getAccelXYZ (int _XAxis, int _YAxis, int _ZAxis)
- getAccelXYZ (int _XAxis, int _YAxis, int _ZAxis) retourne tous les axes à la fois en tant que pointeurs
- int getTotalVector)
- getTotalVector retourne l’amplitude du vecteur d’accélération totale en tant qu’entier
- void setOffSets (int xOffSet, int Décalage_y, int Décalage_z)
- void calibrer ()
- void setARefVoltage (double _refV)
- void setAveraging (int avg)
- setAveraging (int avg): définit combien d’échantillons doit être en moyenne de getAccel par défaut est 10.
- int getOrientation ()
- void setSensitivity (boolean sensi)
- setSensitivity définit la sensibilité à +/-1,5 G (HIGH) ou +/-6 G (faible) à l’aide d’une booléenne élevée (1,5 G) ou faible (6 G)
- void sleep ()
- sommeil permet le sommeil de l’appareil (lorsque l’appareil dort déjà cela ne rien)
- sillage Sub ()
- Suite permet à l’appareil après le sommeil (lorsque le périphérique n’est pas dormir ce ne rien) il y a un retard de 2 ms, en raison des temps de réponse d’enable (feuille de données : max de typ 0,5 ms, 2 ms)
La bibliothèque possède 3 exemples simples. On obtient les accélérations dans chacun des axes, la seconde obtient l’angle et la troisième la tension. J’ai utilisé le « RawData » pour obtenir l’angle de chaque contrôleur d’othe axe pour contrôler l’inclinaison :