Kazalo:
- 1. korak: Potrebna strojna oprema:
- 2. korak: Priključitev strojne opreme:
- 3. korak: Koda za merjenje pospeška:
- 4. korak: Aplikacije:
Video: Merjenje pospeška z uporabo H3LIS331DL in fotona delcev: 4 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
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 povezavo H3LIS331DL s fotonom delcev.
1. korak: Potrebna strojna oprema:
Materiali, ki jih potrebujemo za dosego našega cilja, vključujejo naslednje komponente strojne opreme:
1. H3LIS331DL
2. Foton delcev
3. Kabel I2C
4. I2C ščit za foton delcev
2. korak: Priključitev strojne opreme:
Oddelek za priključitev strojne opreme v bistvu razlaga potrebne povezave ožičenja med senzorjem in fotonom delcev. 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: Koda za merjenje pospeška:
Začnimo s kodo delcev zdaj.
Med uporabo senzorskega modula z arduinom vključujemo knjižnico application.h in spark_wiring_i2c.h. Knjižnica "application.h" in spark_wiring_i2c.h vsebuje funkcije, ki olajšajo komunikacijo i2c med senzorjem in delcem.
Za udobje uporabnika je spodaj navedena celotna koda delcev:
#vključi
#vključi
// Naslov I3C H3LIS331DL je 0x18 (24)
#define Addr 0x18
int xAccl = 0, yAccl = 0, zAccl = 0;
void setup ()
{
// Nastavi spremenljivko
Particle.variable ("i2cdevice", "H3LIS331DL");
Delci.variable ("xAccl", xAccl);
Delci.variable ("yAccl", yAccl);
Delci.variable ("zAccl", zAccl);
// Inicializirajte komunikacijo I2C kot MASTER
Wire.begin ();
// Inicializirajte serijsko komunikacijo, nastavite 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]);
če (xAccl> 32767)
{
xAccl -= 65536;
}
int yAccl = ((podatki [3] * 256) + podatki [2]);
če (yAccl> 32767)
{
yAccl -= 65536;
}
int zAccl = ((podatki [5] * 256) + podatki [4]);
če (zAccl> 32767)
{
zAccl -= 65536;
}
// Izhod podatkov na nadzorno ploščo
Particle.publish ("Pospešek v osi X je:", niz (xAccl));
Particle.publish ("Pospešek v osi Y je:", niz (yAccl));
Particle.publish ("Pospešek v osi Z je:", niz (zAccl));
zamuda (300);
}
Funkcija Particle.variable () ustvari spremenljivke za shranjevanje izhoda senzorja, funkcija Particle.publish () pa prikaže izpis na nadzorni plošči spletnega mesta.
Izhod senzorja je za vašo referenco 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.
Priporočena:
Merjenje pospeška z uporabo ADXL345 in fotona delcev: 4 koraki
Merjenje pospeška z uporabo ADXL345 in fotona iz delcev: ADXL345 je majhen, tanek, 3-osni merilnik pospeška z ultra nizko močjo z visoko ločljivostjo (13-bitni) do ± 16 g. Digitalni izhodni podatki so oblikovani kot 16-bitni dvojčki, ki se dopolnjujejo in so dostopni prek digitalnega vmesnika I2 C. Meri
Merjenje magnetnega polja z uporabo HMC5883 in fotona delcev: 4 koraki
Merjenje magnetnega polja z uporabo HMC5883 in fotona delcev: HMC5883 je digitalni kompas, zasnovan za zaznavanje magnetnega polja z nizkim poljem. Ta naprava ima široko območje magnetnega polja +/- 8 Oe in izhodno hitrost 160 Hz. Senzor HMC5883 vključuje gonilnike trakov za samodejno razmagliciranje, preklic zamika in
Merjenje vlažnosti z uporabo HYT939 in fotona delcev: 4 koraki
Merjenje vlažnosti z uporabo HYT939 in fotona delcev: HYT939 je digitalni senzor vlažnosti, ki deluje po komunikacijskem protokolu I2C. Vlažnost je ključni parameter pri medicinskih sistemih in laboratorijih, zato smo za dosego teh ciljev poskušali povezati HYT939 z malinovim pi. JAZ
Merjenje temperature z uporabo MCP9803 in fotona delcev: 4 koraki
Merjenje temperature z uporabo MCP9803 in fotona delcev: MCP9803 je dvožični temperaturni senzor visoke natančnosti. Poosebljeni so s programi, ki jih lahko programira uporabnik in olajšajo aplikacije zaznavanja temperature. Ta senzor je primeren za zelo izpopolnjen večzonski sistem za spremljanje temperature
Merjenje pospeška z uporabo BMA250 in fotona delcev: 4 koraki
Merjenje pospeškov z uporabo BMA250 in fotona delcev: BMA250 je majhen, tanek, 3-osni merilnik pospeška z zelo nizko močjo z visoko ločljivostjo (13-bitni) do ± 16 g. Digitalni izhodni podatki so oblikovani kot 16-bitni dvojčki, ki se dopolnjujejo, in so dostopni prek digitalnega vmesnika I2C. Meri statično