Table des matières:

Mesure de l'accélération à l'aide d'ADXL345 et d'Arduino Nano : 4 étapes
Mesure de l'accélération à l'aide d'ADXL345 et d'Arduino Nano : 4 étapes

Vidéo: Mesure de l'accélération à l'aide d'ADXL345 et d'Arduino Nano : 4 étapes

Vidéo: Mesure de l'accélération à l'aide d'ADXL345 et d'Arduino Nano : 4 étapes
Vidéo: Ce projet Arduino permet de jouer à GTA 5 (sans les mains !) 🙌🏻🎮 2024, Novembre
Anonim
Image
Image

L'ADXL345 est un petit accéléromètre mince, ultrabasse consommation, à 3 axes 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 l'accélération statique de la gravité dans les applications de détection d'inclinaison, ainsi que l'accélération dynamique résultant d'un mouvement ou d'un choc. Sa haute résolution (3,9 mg/LSB) permet de mesurer des changements d'inclinaison inférieurs à 1,0°.

Dans ce tutoriel, l'interfaçage du module de capteur ADXL345 avec arduino nano a été illustré. Pour lire les valeurs d'accélération, nous avons utilisé arduino avec un adaptateur I2c. Cet adaptateur I2C rend la connexion au module capteur facile et plus fiable.

Étape 1: Matériel requis:

Matériel requis
Matériel requis
Matériel requis
Matériel requis
Matériel requis
Matériel requis

Les matériaux dont nous avons besoin pour atteindre notre objectif comprennent les composants matériels suivants:

1. ADXL345

2. Arduino Nano

3. Câble I2C

4. Bouclier I2C pour Arduino Nano

Étape 2: connexion matérielle:

Raccordement matériel
Raccordement matériel
Raccordement matériel
Raccordement matériel

La section de raccordement matériel explique essentiellement les connexions de câblage requises entre le capteur et l'arduino nano. Assurer des connexions correctes est la nécessité de base tout en travaillant sur n'importe quel système pour la sortie souhaitée. Ainsi, les connexions requises sont les suivantes:

L'ADXL345 fonctionnera sur I2C. Voici l'exemple de schéma de câblage, montrant comment câbler chaque interface du capteur.

Prête à l'emploi, la carte est configurée pour une interface I2C, en tant que telle, nous vous recommandons d'utiliser cette connexion si vous êtes par ailleurs agnostique.

Tout ce dont vous avez besoin, c'est de quatre fils ! Seules quatre connexions sont nécessaires pour les broches Vcc, Gnd, SCL et SDA et celles-ci sont connectées à l'aide d'un câble I2C.

Ces connexions sont illustrées dans les images ci-dessus.

Étape 3: Code de mesure de l'accélération:

Code de mesure de l'accélération
Code de mesure de l'accélération

Commençons maintenant par le code arduino.

Lors de l'utilisation du module capteur avec l'arduino, nous incluons la bibliothèque Wire.h. La bibliothèque "Wire" contient les fonctions qui facilitent la communication i2c entre le capteur et la carte arduino.

Le code arduino complet est donné ci-dessous pour la commodité de l'utilisateur:

#comprendre

// L'adresse I2C ADXL345 est 0x53(83)

#define Adr 0x53

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 débit de bande passante

Wire.write(0x2C);

// Mode normal, Débit de sortie = 100 Hz

Wire.write(0x0A);

// Arrêter la transmission I2C

Wire.endTransmission();

// Démarrer la transmission I2C

Wire.beginTransmission(Adr);

// Sélection du registre de contrôle de puissance

Wire.write(0x2D);

// Désactiver la mise en veille automatique

Wire.write(0x08);

// Arrêter la transmission I2C

Wire.endTransmission();

// Démarrer la transmission I2C

Wire.beginTransmission(Adr);

// Sélection du registre de format de données

Wire.write(0x31);

// Auto-test désactivé, interface 4 fils, pleine résolution, plage = +/-2g

Wire.write(0x08);

// Arrêter la transmission I2C

Wire.endTransmission();

retard (300);

}

boucle vide()

{

données int non signées[6];

for(int i = 0; i < 6; i++)

{

// Démarrer la transmission I2C

Wire.beginTransmission(Adr);

// Sélection du registre de données

Wire.write((50 + i));

// Arrêter la transmission I2C

Wire.endTransmission();

// Demande 1 octet de données

Wire.requestFrom(Adr, 1);

// Lecture de 6 octets de données

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

if(Fil.disponible() == 1)

{

data = Wire.read();

}

}

// Convertir les données en 10 bits

int xAccl = (((données[1] & 0x03) * 256) + données[0]);

si(xAccl > 511)

{

xAccl -= 1024;

}

int yAccl = (((données[3] & 0x03) * 256) + données[2]);

if(yAccl > 511)

{

yAccl -= 1024;

}

int zAccl = (((données[5] & 0x03) * 256) + données[4]);

if(zAccl > 511)

{

zAccl -= 1024;

}

// Sortie des données vers le moniteur série

Serial.print("L'accélération dans l'axe X est: ");

Serial.println(xAccl);

Serial.print("L'accélération dans l'axe Y est: ");

Serial.println(yAccl);

Serial.print("L'accélération dans l'axe Z est: ");

Serial.println(zAccl);

retard (300);

}

Dans la bibliothèque de fils Wire.write() et Wire.read() sont utilisés pour écrire les commandes et lire la sortie du capteur.

Serial.print() et Serial.println() sont utilisés pour afficher la sortie du capteur sur le moniteur série de l'IDE Arduino.

La sortie du capteur est montrée dans l'image ci-dessus.

Étape 4: Candidatures:

Applications
Applications

L'ADXL345 est un petit accéléromètre mince à très faible consommation d'énergie à 3 axes qui peut être utilisé dans les combinés, l'instrumentation médicale, etc. Son application comprend également les appareils de jeu et de pointage, l'instrumentation industrielle, les appareils de navigation personnels et la protection des disques durs (HDD).

Conseillé: