Table des matières:

Mesure de l'accélération à l'aide de H3LIS331DL et de photons de particules : 4 étapes
Mesure de l'accélération à l'aide de H3LIS331DL et de photons de particules : 4 étapes

Vidéo: Mesure de l'accélération à l'aide de H3LIS331DL et de photons de particules : 4 étapes

Vidéo: Mesure de l'accélération à l'aide de H3LIS331DL et de photons de particules : 4 étapes
Vidéo: Measuring Impacts with Special Boxing Gloves Using H3LIS331DL High g Accelerometer 2024, Juillet
Anonim
Image
Image

H3LIS331DL, est un accéléromètre linéaire 3 axes basse consommation haute performance appartenant à la famille « nano », avec interface série numérique I²C. Le H3LIS331DL a des pleines échelles sélectionnables par l'utilisateur de ±100g/±200g/±400g et il est capable de mesurer des accélérations avec des débits de données de sortie de 0,5 Hz à 1 kHz. Le H3LIS331DL est garanti pour fonctionner sur une plage de température étendue de -40 °C à +85 °C.

Dans ce tutoriel, nous allons démontrer l'interfaçage de H3LIS331DL avec un photon de particule.

É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. H3LIS331DL

2. Photon de particule

3. Câble I2C

4. Bouclier I2C pour photon de particules

É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 le photon particulaire. 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:

Le H3LIS331DL 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 pour la mesure de l'accélération:

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

Commençons maintenant par le code des particules.

Lors de l'utilisation du module de capteur avec l'arduino, nous incluons les bibliothèques application.h et spark_wiring_i2c.h. Les bibliothèques "application.h" et spark_wiring_i2c.h contiennent les fonctions qui facilitent la communication i2c entre le capteur et la particule.

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

#comprendre

#comprendre

// L'adresse I2C H3LIS331DL est 0x18(24)

#define adresse 0x18

entier xAccl = 0, yAccl = 0, zAccl = 0;

void setup()

{

// Définir la variable

Particule.variable("i2cdevice", "H3LIS331DL");

Particule.variable("xAccl", xAccl);

Particule.variable("yAccl", yAccl);

Particule.variable("zAccl", zAccl);

// 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 1

Wire.write(0x20);

// Activer les axes X, Y, Z, mode de mise sous tension, débit de sortie de données 50 Hz

Wire.write(0x27);

// Arrêter la transmission I2C

Wire.endTransmission();

// Démarrer la transmission I2C

Wire.beginTransmission(Adr);

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

Wire.write(0x23);

// Définir la pleine échelle, +/- 100g, mise à jour continue

Wire.write(0x00);

// 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((40 + 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();

}

retard (300);

}

// Convertir les données

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

si(xAccl > 32767)

{

xAccl -= 65536;

}

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

if(yAccl > 32767)

{

yAccl -= 65536;

}

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

si(zAccl > 32767)

{

zAccl -= 65536;

}

// Sortie des données vers le tableau de bord

Particle.publish("L'accélération dans l'axe X est:", String(xAccl));

Particle.publish("L'accélération dans l'axe Y est:", String(yAccl));

Particle.publish("L'accélération dans l'axe Z est:", String(zAccl));

retard (300);

}

La fonction Particle.variable() crée les variables pour stocker la sortie du capteur et la fonction Particle.publish() affiche la sortie sur le tableau de bord du site.

La sortie du capteur est montrée dans l'image ci-dessus pour votre référence.

Étape 4: Candidatures:

Applications
Applications

Les accéléromètres comme le H3LIS331DL trouvent principalement leur application dans les jeux et le changement de profil d'affichage. Ce module de capteur est également utilisé dans le système avancé de gestion de l'alimentation pour les applications mobiles. H3LIS331DL est un capteur d'accélération numérique triaxial qui est incorporé avec un contrôleur d'interruption déclenché par mouvement intelligent sur puce.

Conseillé: