Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
H3LIS331DL, je visoko zmogljiv 3-osni linearni merilnik pospeška, ki spada v družino "nano", z digitalnim serijskim vmesnikom I²C. H3LIS331DL ima polne lestvice, ki jih lahko izbere uporabnik, ± 100 g/± 200 g/± 400 g in je sposoben meriti pospeške z izhodnimi podatkovnimi hitrostmi od 0,5 Hz do 1 kHz. Zagotovljeno je, da bo H3LIS331DL deloval v razširjenem temperaturnem območju od -40 ° C do +85 ° C.
V tej vadnici bomo prikazali vmesnik H3LIS331DL z Arduino Nano.
1. korak: Potrebna strojna oprema:
Materiali, ki jih potrebujemo za dosego našega cilja, vključujejo naslednje komponente strojne opreme:
1. H3LIS331DL
2. Arduino Nano
3. Kabel I2C
4. I2C ščit za Arduino Nano
2. korak: Priključitev strojne opreme:
Oddelek za priključitev strojne opreme v bistvu pojasnjuje potrebne ožičenje med senzorjem in arduino nano. Zagotavljanje pravilnih povezav je osnovna potreba pri delu na katerem koli sistemu za želeni izhod. Torej so potrebne povezave naslednje:
H3LIS331DL bo deloval preko I2C. Tu je primer sheme ožičenja, ki prikazuje, kako povezati vsak vmesnik senzorja.
Plošča je že pripravljena za vmesnik I2C, zato priporočamo uporabo te povezave, če niste agnostični. Vse kar potrebujete so štiri žice!
Potrebne so le štiri povezave Vcc, Gnd, SCL in SDA, ki so povezane s kablom I2C.
Te povezave so prikazane na zgornjih slikah.
3. korak: Arduino koda za merjenje pospeška:
Začnimo s kodo arduino zdaj.
Med uporabo senzorskega modula z arduinom vključujemo knjižnico Wire.h. Knjižnica "Wire" vsebuje funkcije, ki olajšajo komunikacijo i2c med senzorjem in arduino ploščo.
Celotna koda arduino je podana spodaj za udobje uporabnika:
#vključi
// Naslov I3C H3LIS331DL je 0x18 (24)
#define Addr 0x18
void setup ()
{
// Inicializirajte komunikacijo I2C kot MASTER
Wire.begin ();
// Začetek serijske komunikacije, nastavljena hitrost prenosa = 9600
Serial.begin (9600);
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite kontrolni register 1
Wire.write (0x20);
// Omogoči osi X, Y, Z, način vklopa, izhodna hitrost podatkov 50Hz
Wire.write (0x27);
// Ustavi prenos I2C
Wire.endTransmission ();
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite kontrolni register 4
Wire.write (0x23);
// Nastavitev celotnega obsega, +/- 100g, neprekinjeno posodabljanje
Wire.write (0x00);
// Ustavi prenos I2C
Wire.endTransmission ();
zamuda (300);
}
void loop ()
{
podpisani int podatki [6];
za (int i = 0; i <6; i ++)
{
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite register podatkov
Wire.write ((40+i));
// Ustavi prenos I2C
Wire.endTransmission ();
// Zahtevajte 1 bajt podatkov
Wire.requestFrom (Addr, 1);
// Preberite 6 bajtov podatkov
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
če (Wire.available () == 1)
{
podatki = Wire.read ();
}
}
zamuda (300);
// Pretvorimo podatke
int xAccl = ((podatki [1] * 256) + podatki [0]);
int yAccl = ((podatki [3] * 256) + podatki [2]);
int zAccl = ((podatki [5] * 256) + podatki [4]);
// Izhodni podatki na serijski monitor
Serial.print ("Pospešek v osi X:");
Serial.println (xAccl);
Serial.print ("Pospešek v osi Y:");
Serial.println (yAccl);
Serial.print ("Pospešek v osi Z:");
Serial.println (zAccl);
zamuda (300);
}
Vse kar morate storiti je, da zapisujete kodo v arduinu in preverite odčitke na serijskih vratih. Izhod je prikazan na zgornji sliki.
4. korak: Aplikacije:
Merilniki pospeška, kot je H3LIS331DL, večinoma najdejo svojo uporabo v igrah in preklapljanju profilov zaslona. Ta senzorski modul se uporablja tudi v naprednem sistemu za upravljanje porabe energije za mobilne aplikacije. H3LIS331DL je triosni digitalni senzor pospeška, ki je vgrajen v inteligentni krmilnik prekinitev, ki se sproži na čipu.