Turinys:
- 1 veiksmas: reikalinga aparatūra:
- 2 veiksmas: prijungimas prie aparatūros:
- 3 žingsnis: pagreičio matavimo kodas:
- 4 žingsnis: programos:
Video: Pagreičio matavimas naudojant ADXL345 ir dalelių fotoną: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
„ADXL345“yra mažas, plonas, itin mažos galios 3 ašių akselerometras su didelės skiriamosios gebos (13 bitų) matavimu iki ± 16 g. Skaitmeniniai išvesties duomenys yra suformatuoti kaip 16 bitų du papildymai ir yra prieinami per I2 C skaitmeninę sąsają. Jis matuoja statinį gravitacijos pagreitį pasvirimo jutiklyje, taip pat dinaminį pagreitį, atsirandantį dėl judesio ar smūgio. Didelė skiriamoji geba (3,9 mg/LSB) leidžia matuoti nuolydžio pokyčius, mažesnius nei 1,0 °.
Šioje pamokoje buvo parodyta ADXL345 jutiklio modulio sąsaja su dalelių fotonu. Norėdami nuskaityti pagreičio vertes, naudojome daleles su I2c adapteriu. Šis I2C adapteris leidžia lengvai ir patikimiau prijungti jutiklio modulį.
1 veiksmas: reikalinga aparatūra:
Medžiagos, reikalingos mūsų tikslui pasiekti, apima šiuos aparatūros komponentus:
1. ADXL345
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:
ADXL345 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 dalele, į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
// ADXL345 I2C adresas yra 0x53 (83)
#define Addr 0x53
int xAccl = 0, yAccl = 0, zAccl = 0;
negaliojanti sąranka ()
{
// Nustatyti kintamąjį
Particle.variable ("i2cdevice", "ADXL345");
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 pralaidumo spartos registrą
Wire.write (0x2C);
// Pasirinkite išvesties duomenų spartą = 100 Hz
Wire.write (0x0A);
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Pasirinkite galios valdymo registrą
Wire.write (0x2D);
// Pasirinkite automatinį miego išjungimą
Wire.write (0x08);
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Pasirinkite duomenų formatų registrą
Wire.write (0x31);
// Pasirinkite visą skiriamąją gebą, +/- 2g
Wire.write (0x08);
// Baigti 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 ((50+i));
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
// Prašyti 1 baito duomenų iš įrenginio
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);
}
// Konvertuokite duomenis į 10 bitų
int xAccl = (((duomenys [1] ir 0x03) * 256) + duomenys [0]);
jei (xAccl> 511)
{
xAccl -= 1024;
}
int yAccl = (((duomenys [3] ir 0x03) * 256) + duomenys [2]);
jei (yAccl> 511)
{
yAccl -= 1024;
}
int zAccl = (((duomenys [5] ir 0x03) * 256) + duomenys [4]);
jei (zAccl> 511)
{
zAccl -= 1024;
}
// 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));
}
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:
ADXL345 yra mažas, plonas, itin mažos galios 3 ašių akselerometras, kurį galima naudoti telefonuose, medicinos prietaisuose ir pan. Jo taikymas taip pat apima žaidimų ir rodymo prietaisus, pramoninius prietaisus, asmeninius navigacijos įrenginius ir standžiojo disko (HDD) apsaugą.
Rekomenduojamas:
Magnetinio lauko matavimas naudojant HMC5883 ir dalelių fotoną: 4 žingsniai
Magnetinio lauko matavimas naudojant HMC5883 ir dalelių fotoną: HMC5883 yra skaitmeninis kompasas, skirtas mažo lauko magnetiniam jutimui. Šis prietaisas turi platų magnetinio lauko diapazoną +/- 8 Oe ir išėjimo dažnį 160 Hz. „HMC5883“jutiklyje yra automatinio diržo šalinimo juostų tvarkyklės, poslinkio atšaukimas ir
Drėgmės matavimas naudojant HYT939 ir dalelių fotoną: 4 žingsniai
Drėgmės matavimas naudojant HYT939 ir dalelių fotoną: HYT939 yra skaitmeninis drėgmės jutiklis, veikiantis pagal I2C ryšio protokolą. Drėgmė yra pagrindinis parametras, kai kalbama apie medicinos sistemas ir laboratorijas, todėl, siekdami šių tikslų, mes bandėme sujungti HYT939 su aviečių pi. Aš
Pagreičio matavimas naudojant H3LIS331DL ir dalelių fotoną: 4 žingsniai
Pagreičio matavimas naudojant H3LIS331DL ir dalelių fotoną: H3LIS331DL yra mažos galios didelio našumo 3 ašių linijinis akselerometras, priklausantis „nano“šeimai, su skaitmenine I²C nuoseklia sąsaja. „H3LIS331DL“naudotojas gali pasirinkti visas ± 100 g/± 200 g/± 400 g skalę ir gali išmatuoti pagreitį
Temperatūros matavimas naudojant MCP9803 ir dalelių fotoną: 4 žingsniai
Temperatūros matavimas naudojant MCP9803 ir dalelių fotoną: MCP9803 yra 2 laidų didelio tikslumo temperatūros jutiklis. Jie yra su vartotojo programuojamais registrais, palengvinančiais temperatūros jutimo programas. Šis jutiklis tinka labai sudėtingai kelių zonų temperatūros stebėjimo sistemai
Pagreičio matavimas naudojant BMA250 ir dalelių fotoną: 4 žingsniai
Pagreičio matavimas naudojant BMA250 ir dalelių fotoną: BMA250 yra mažas, plonas, itin mažos galios 3 ašių akselerometras, turintis didelės skiriamosios gebos (13 bitų) matavimą iki ± 16 g. Skaitmeniniai išvesties duomenys yra suformatuoti kaip 16 bitų du papildymai ir yra prieinami per I2C skaitmeninę sąsają. Matuoja statinį