Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
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 dalelių fotonu.
1 veiksmas: reikalinga aparatūra:
Medžiagos, reikalingos mūsų tikslui pasiekti, apima šiuos aparatūros komponentus:
1. H3LIS331DL
2. Dalelių fotonas
3. I2C kabelis
4. I2C skydas dalelių fotonui
2 veiksmas: prijungimas prie aparatūros:
Techninės įrangos prijungimo skyrius iš esmės paaiškina laidų jungtis, reikalingas tarp jutiklio ir dalelių fotono. 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: pagreičio matavimo kodas:
Pradėkime nuo dalelių kodo dabar.
Naudodami jutiklio modulį su „arduino“, įtraukiame „application.h“ir „spark_wiring_i2c.h“biblioteką. Bibliotekoje „application.h“ir spark_wiring_i2c.h yra funkcijos, palengvinančios i2c ryšį tarp jutiklio ir dalelės.
Visas dalelių kodas pateikiamas žemiau, kad būtų patogiau vartotojui:
#įtraukti
#įtraukti
// H3LIS331DL I2C adresas yra 0x18 (24)
#define Addr 0x18
int xAccl = 0, yAccl = 0, zAccl = 0;
negaliojanti sąranka ()
{
// Nustatyti kintamąjį
Particle.variable ("i2cdevice", "H3LIS331DL");
Particle.variable ("xAccl", xAccl);
Dalelių.kintamasis ("yAccl", yAccl);
Dalelių kintamasis ("zAccl", zAccl);
// Inicijuoti I2C komunikaciją kaip MASTER
Wire.begin ();
// Inicijuoti nuoseklųjį 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]);
jei (xAccl> 32767)
{
xAccl -= 65536;
}
int yAccl = ((duomenys [3] * 256) + duomenys [2]);
jei (yAccl> 32767)
{
yAccl -= 65536;
}
int zAccl = ((duomenys [5] * 256) + duomenys [4]);
jei (zAccl> 32767)
{
zAccl -= 65536;
}
// Išvesti duomenis į prietaisų skydelį
Particle.publish ("pagreitis X ašyje yra:", eilutė (xAccl));
Particle.publish ("pagreitis Y ašyje yra:", eilutė (yAccl));
Particle.publish ("Pagreitis Z ašyje yra:", eilutė (zAccl));
vėlavimas (300);
}
Funkcija „Particle.variable ()“sukuria kintamuosius, kad išsaugotų jutiklio išvestį, o „Particle.publish“() rodo išvestį svetainės prietaisų skydelyje.
Jutiklio išvestis yra parodyta aukščiau esančiame paveikslėlyje.
4 žingsnis: 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.