Turinys:

Pagreičio matavimas naudojant H3LIS331DL ir „Arduino Nano“: 4 žingsniai
Pagreičio matavimas naudojant H3LIS331DL ir „Arduino Nano“: 4 žingsniai

Video: Pagreičio matavimas naudojant H3LIS331DL ir „Arduino Nano“: 4 žingsniai

Video: Pagreičio matavimas naudojant H3LIS331DL ir „Arduino Nano“: 4 žingsniai
Video: 💦Blackview BV9200 ЧЕСТНЫЙ ОБЗОР ПРОТИВОУДАРНОГО 2024, Liepa
Anonim
Image
Image

H3LIS331DL yra mažos galios didelio našumo 3 ašių linijinis akselerometras, priklausantis „nano“šeimai, su skaitmenine I²C nuoseklia sąsaja. „H3LIS331DL“vartotojo pasirinktos visos skalės yra ± 100 g/± 200 g/± 400 g ir gali matuoti pagreitį, kai išvesties duomenų dažnis yra nuo 0,5 Hz iki 1 kHz. Garantuojama, kad H3LIS331DL veiks plačiame temperatūros diapazone nuo -40 ° C iki +85 ° C.

Šioje pamokoje mes parodysime H3LIS331DL sąsają su „Arduino Nano“.

1 veiksmas: reikalinga aparatūra:

Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra

Medžiagos, reikalingos mūsų tikslui pasiekti, apima šiuos aparatūros komponentus:

1. H3LIS331DL

2. „Arduino Nano“

3. I2C kabelis

4. „I2C Shield“, skirtas „Arduino Nano“

2 veiksmas: prijungimas prie aparatūros:

Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas

Techninės įrangos prijungimo skyrius iš esmės paaiškina laidų jungtis, reikalingas tarp jutiklio ir „arduino nano“. Užtikrinti teisingas jungtis yra pagrindinė būtinybė dirbant su bet kuria norimos išvesties sistema. Taigi, būtinos jungtys yra šios:

H3LIS331DL veiks per I2C. Čia yra elektros instaliacijos schemos pavyzdys, parodantis, kaip prijungti kiekvieną jutiklio sąsają.

Iš karto plokštė sukonfigūruota I2C sąsajai, todėl rekomenduojame naudoti šį prijungimą, jei esate kitaip agnostikas. Viskas, ko jums reikia, yra keturi laidai!

Reikia tik keturių jungčių „Vcc“, „Gnd“, „SCL“ir „SDA“kaiščių, kurie yra prijungti naudojant I2C kabelį.

Šie ryšiai parodyti aukščiau esančiose nuotraukose.

3 žingsnis: „Arduino“pagreičio matavimo kodas:

„Arduino“pagreičio matavimo kodas
„Arduino“pagreičio matavimo kodas
„Arduino“pagreičio matavimo kodas
„Arduino“pagreičio matavimo kodas

Pradėkime nuo arduino kodo dabar.

Naudodami jutiklio modulį su arduino, įtraukiame „Wire.h“biblioteką. „Wire“bibliotekoje yra funkcijos, palengvinančios i2c ryšį tarp jutiklio ir arduino plokštės.

Visas arduino kodas vartotojo patogumui pateiktas žemiau:

#įtraukti

// H3LIS331DL I2C adresas yra 0x18 (24)

#define Addr 0x18

negaliojanti sąranka ()

{

// Inicijuoti I2C komunikaciją kaip MASTER

Wire.begin ();

// Inicijuoti serijinį ryšį, nustatyti duomenų perdavimo spartą = 9600

Serial.begin (9600);

// Pradėti I2C perdavimą

Wire.beginTransmission (Addr);

// Pasirinkite valdymo registrą 1

Wire.write (0x20);

// Įgalinti X, Y, Z ašis, įjungimo režimą, duomenų išvesties spartą 50Hz

Wire.write (0x27);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

// Pradėti I2C perdavimą

Wire.beginTransmission (Addr);

// Pasirinkite valdymo registrą 4

Wire.write (0x23);

// Nustatyti visą skalę, +/- 100 g, nuolatinis atnaujinimas

Wire.write (0x00);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

vėlavimas (300);

}

tuštumos kilpa ()

{

nepasirašyti int duomenys [6];

už (int i = 0; i <6; i ++)

{

// Pradėti I2C perdavimą

Wire.beginTransmission (Addr);

// Pasirinkite duomenų registrą

Wire.write ((40+i));

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

// Prašyti 1 baito duomenų

Wire.requestFrom (Addr, 1);

// Perskaitykite 6 baitus duomenų

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

jei (Wire.available () == 1)

{

duomenys = Wire.read ();

}

}

vėlavimas (300);

// Konvertuoti duomenis

int xAccl = ((duomenys [1] * 256) + duomenys [0]);

int yAccl = ((duomenys [3] * 256) + duomenys [2]);

int zAccl = ((duomenys [5] * 256) + duomenys [4]);

// Duomenų išvedimas į serijinį monitorių

Serial.print ("pagreitis X ašyje:");

Serial.println (xAccl);

Serial.print ("pagreitis Y ašyje:");

Serial.println (yAccl);

Serial.print („Pagreitis Z ašyje:“);

Serial.println (zAccl);

vėlavimas (300);

}

Viskas, ką jums reikia padaryti, tai įrašyti kodą „arduino“ir patikrinti serijos prievado rodmenis. Išvestis parodyta aukščiau esančiame paveikslėlyje.

4 žingsnis: programos:

Programos
Programos

Akselerometrai, tokie kaip H3LIS331DL, dažniausiai naudojami žaidimuose ir ekrano profilio perjungime. Šis jutiklių modulis taip pat naudojamas pažangioje mobiliųjų programų energijos valdymo sistemoje. „H3LIS331DL“yra triašis skaitmeninis pagreičio jutiklis, integruotas su išmaniuoju mikroschemo judesio suaktyvintu pertraukimo valdikliu.

Rekomenduojamas: