Table des matières:
Vidéo: Tutoriel sur l'accéléromètre numérique Arduino Nano - MMA8452Q 3 axes 12 bits/8 bits : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Le MMA8452Q est un accéléromètre intelligent, à faible consommation, à trois axes, capacitif et micro-usiné avec une résolution de 12 bits. Des options flexibles programmables par l'utilisateur sont fournies à l'aide de fonctions intégrées dans l'accéléromètre, configurables sur deux broches d'interruption. Il a des pleines échelles sélectionnables par l'utilisateur de ±2g/±4g/±8g avec des données filtrées par filtre passe-haut ainsi que des données non filtrées disponibles en temps réel. Voici sa démonstration avec Arduino nano.
Étape 1: Ce dont vous avez besoin.
1. Arduino Nano
2. MMA8452Q
3. Câble I²C
4. Bouclier I²C pour Arduino Nano
Étape 2: Connexion:
Prenez un shield I2C pour Arduino Nano et poussez-le doucement sur les broches de Nano.
Connectez ensuite l'une des extrémités du câble I2C au capteur MMA8452Q et l'autre extrémité au blindage I2C.
Les connexions sont montrées dans l'image ci-dessus.
Étape 3: Coder:
Le code arduino pour MMMA8452Q peut être téléchargé à partir de notre référentiel github - DCUBE Store.
Voici le lien.
Nous incluons la bibliothèque Wire.h pour faciliter la communication I2c du capteur avec la carte Arduino.
Vous pouvez également copier le code d'ici, il est donné comme suit:
// Distribué avec une licence libre-arbitre.
// Utilisez-le comme vous le souhaitez, à profit ou gratuitement, à condition qu'il rentre dans les licences de ses œuvres associées.
// MMA8452Q
// Ce code est conçu pour fonctionner avec le mini module MMA8452Q_I2CS I2C.
#comprendre
// L'adresse I2C du MMA8452Q est 0x1C(28)
#define Adr 0x1C
void setup()
{
// Initialiser la communication I2C en tant que MASTER
Fil.begin();
// Initialiser la communication série, définir le débit en bauds = 9600
Serial.begin(9600);
// Démarrer la transmission I2C
Wire.beginTransmission(Adr);
// Sélection du registre de contrôle
Wire.write(0x2A);
// Mode veille
Wire.write(0x00);
// Arrêter la transmission I2C
Wire.endTransmission();
// Démarrer la transmission I2C
Wire.beginTransmission(Adr);
// Sélection du registre de contrôle
Wire.write(0x2A);
// Mode actif
Wire.write(0x01);
// Arrêter la transmission I2C
Wire.endTransmission();
// Démarrer la transmission I2C
Wire.beginTransmission(Adr);
// Sélection du registre de contrôle
Wire.write(0x0E);
// Définir la plage à +/- 2g
Wire.write(0x00);
// Arrêter la transmission I2C
Wire.endTransmission();
retard (300);
}
boucle vide()
{
données int non signées[7];
// Demande 7 octets de données
Wire.requestFrom(Adr, 7);
// Lecture de 7 octets de données
// état, xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
if(Fil.disponible() == 7)
{
data[0] = Wire.read();
données[1] = Wire.read();
data[2] = Wire.read();
data[3] = Wire.read();
données[4] = Wire.read();
données[5] = Wire.read();
données[6] = Wire.read();
}
// Convertir les données en 12 bits
int xAccl = ((données[1] * 256) + données[2]) / 16;
si (xAccl > 2047)
{
xAccl -= 4096;
}
int yAccl = ((données[3] * 256) + données[4]) / 16;
si (yAccl > 2047)
{
yAccl -= 4096;
}
int zAccl = ((données[5] * 256) + données[6]) / 16;
si (zAccl > 2047)
{
zAccl -= 4096;
}
// Sortie des données vers le moniteur série
Serial.print("Accélération dans l'axe X: ");
Serial.println(xAccl);
Serial.print("Accélération dans l'axe Y: ");
Serial.println(yAccl);
Serial.print("Accélération dans l'axe Z: ");
Serial.println(zAccl);
retard (500);
}
Étape 4: Candidatures:
Le MMA8452Q a diverses applications qui incluent les applications E-Compass, la détection d'orientation statique qui intègrent Portrait/Paysage, Haut/Bas, Gauche/Droite, Identification de la position arrière/avant, Ordinateur portable, liseuse et Détection de chute et chute libre pour ordinateur portable, en temps réel détection de l'orientation, y compris la réalité virtuelle et le retour d'informations de la position de l'utilisateur en 3D, l'analyse de l'activité en temps réel telle que le comptage des pas du podomètre, la détection des chutes libres pour le disque dur, la sauvegarde GPS à l'estime et bien plus encore.
Conseillé:
Raspberry Pi - Tutoriel Python de l'accéléromètre à 3 axes ADXL345 : 4 étapes
Raspberry Pi - Tutoriel Python de l'accéléromètre 3 axes ADXL345 : L'ADXL345 est un petit accéléromètre 3 axes mince et ultrabasse consommation avec une mesure haute résolution (13 bits) jusqu'à ±16 g. Les données de sortie numériques sont formatées en complément à deux de 16 bits et sont accessibles via l'interface numérique I2 C. Il mesure le
Raspberry Pi - Tutoriel Java de l'accéléromètre 3 axes ADXL345 : 4 étapes
Raspberry Pi - Tutoriel Java de l'accéléromètre 3 axes ADXL345 : L'ADXL345 est un petit accéléromètre 3 axes mince et ultrabasse consommation avec une mesure haute résolution (13 bits) jusqu'à ±16 g. Les données de sortie numériques sont formatées en complément à deux de 16 bits et sont accessibles via l'interface numérique I2 C. Il mesure le
Tutoriel sur l'accéléromètre CubeSat : 6 étapes
Tutoriel sur l'accéléromètre CubeSat : Un cubesat est un type de satellite miniaturisé pour la recherche spatiale composé de multiples d'unités cubiques de 10x10x10 cm et d'une masse ne dépassant pas 1,33 kilogramme par unité. Les cubesats permettent d'envoyer une grande quantité de satellites dans l'espace et al
Arduino Nano - Tutoriel sur le capteur de lumière ambiante numérique BH1715 : 4 étapes
Arduino Nano - Tutoriel du capteur de lumière ambiante numérique BH1715 : Le BH1715 est un capteur de lumière ambiante numérique avec une interface de bus I²C. Le BH1715 est couramment utilisé pour obtenir les données de lumière ambiante pour ajuster la puissance du rétroéclairage de l'écran LCD et du clavier pour les appareils mobiles. Cet appareil offre une résolution de 16 bits et un ajuste
Préliminaire* SPI sur le Pi : Communiquer avec un accéléromètre 3 axes SPI à l'aide d'un Raspberry Pi : 10 étapes
Préliminaire* SPI sur le Pi : communiquer avec un accéléromètre 3 axes SPI à l'aide d'un Raspberry Pi : guide étape par étape sur la façon de configurer Raspbian et de communiquer avec un périphérique SPI à l'aide de la bibliothèque SPI bcm2835 (PAS de bit frappé !) C'est toujours très préliminaire… J'ai besoin d'ajouter de meilleures images de connexion physique et de travailler sur une partie du code maladroit