INHOUDSOPGAWE:
- Stap 1: hardeware benodig:
- Stap 2: Hardeware -aansluiting:
- Stap 3: Kode vir die meting van versnelling:
- Stap 4: Aansoeke:
Video: Meting van versnelling met behulp van ADXL345 en Particle Photon: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
Die ADXL345 is 'n klein, dun, ultra-lae, drie-as versnellingsmeter met 'n hoë resolusie (13-bis) meting tot ± 16 g. Digitale uitsetdata word geformateer as 'n 16-bis tweeling-aanvulling en is toeganklik via die I2 C digitale koppelvlak. Dit meet die statiese versnelling van swaartekrag in kantelwaarnemingstoepassings, sowel as dinamiese versnelling as gevolg van beweging of skok. Die hoë resolusie (3,9 mg/LSB) maak dit moontlik om hellingsveranderings van minder as 1,0 ° te meet.
In hierdie tutoriaal word die koppelvlak van die ADXL345 -sensormodule met deeltjiefoton geïllustreer. Om die versnellingswaardes te lees, het ons deeltjies met 'n I2c -adapter gebruik. Hierdie I2C -adapter maak die verbinding met die sensormodule maklik en betroubaarder.
Stap 1: hardeware benodig:
Die materiaal wat ons nodig het om ons doel te bereik, bevat die volgende hardeware -komponente:
1. ADXL345
2. Deeltjie Photon
3. I2C -kabel
4. I2C Skild vir deeltjie foton
Stap 2: Hardeware -aansluiting:
Die hardewareaansluitingsgedeelte verduidelik basies die bedradingverbindings wat tussen die sensor en die deeltjiefoton benodig word. Die korrekte noodsaaklikheid is om korrekte verbindings te verseker terwyl u aan 'n stelsel werk vir die gewenste uitset. Die vereiste verbindings is dus soos volg:
Die ADXL345 werk oor I2C. Hier is die voorbeeld -bedradingsdiagram wat demonstreer hoe om elke koppelvlak van die sensor aan te sluit.
Uit die boks is die bord gekonfigureer vir 'n I2C-koppelvlak, daarom beveel ons aan dat u hierdie aansluiting gebruik as u anders agnosties is.
Al wat u nodig het, is vier drade! Slegs vier verbindings is nodig Vcc-, Gnd-, SCL- en SDA -penne en dit word met behulp van I2C -kabel verbind.
Hierdie verbindings word getoon in die foto's hierbo.
Stap 3: Kode vir die meting van versnelling:
Kom ons begin nou met die deeltjiekode.
Terwyl ons die sensormodule met die deeltjie gebruik, bevat ons die biblioteek application.h en spark_wiring_i2c.h. "application.h" en spark_wiring_i2c.h biblioteek bevat die funksies wat die i2c kommunikasie tussen die sensor en die deeltjie vergemaklik.
Die volledige deeltjiekode word hieronder gegee vir die gemak van die gebruiker:
#insluit
#insluit
// ADXL345 I2C adres is 0x53 (83)
#definieer Addr 0x53
int xAccl = 0, yAccl = 0, zAccl = 0;
leemte opstelling ()
{
// Stel veranderlike
Particle.variable ("i2cdevice", "ADXL345");
Particle.variable ("xAccl", xAccl);
Particle.variable ("yAccl", yAccl);
Particle.variable ("zAccl", zAccl);
// Initialiseer I2C -kommunikasie as MASTER
Wire.begin ();
// Initialiseer seriële kommunikasie, stel baud rate = 9600 in
Serial.begin (9600);
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Kies bandwydte koersregister
Wire.write (0x2C);
// Kies uitsetdatatempo = 100 Hz
Wire.write (0x0A);
// Stop I2C -oordrag
Wire.endTransmission ();
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Kies kragbeheerregister
Wire.write (0x2D);
// Kies outomatiese slaap uitskakel
Wire.write (0x08);
// Stop I2C -oordrag
Wire.endTransmission ();
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Kies dataformaatregister
Draad.skryf (0x31);
// Kies volle resolusie, +/- 2g
Wire.write (0x08);
// Beëindig I2C -oordrag
Wire.endTransmission ();
vertraging (300);
}
leemte lus ()
{
ongetekende int data [6];
vir (int i = 0; i <6; i ++)
{
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Kies dataregister
Wire.write ((50+i));
// Stop I2C -oordrag
Wire.endTransmission ();
// Versoek 1 greep data van die toestel
Wire.requestFrom (Addr, 1);
// Lees 6 grepe data
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
as (Wire.available () == 1)
{
data = Wire.read ();
}
vertraging (300);
}
// Skakel die data om na 10-bisse
int xAccl = (((data [1] & 0x03) * 256) + data [0]);
as (xAccl> 511)
{
xAccl -= 1024;
}
int yAccl = (((data [3] & 0x03) * 256) + data [2]);
as (yAccl> 511)
{
yAccl -= 1024;
}
int zAccl = (((data [5] & 0x03) * 256) + data [4]);
as (zAccl> 511)
{
zAccl -= 1024;
}
// Uitset data na paneelbord
Particle.publish ("Versnelling in X-as is:", String (xAccl));
Particle.publish ("Versnelling in Y-as is:", String (yAccl));
Particle.publish ("Versnelling in Z-as is:", String (zAccl));
}
Particle.variable () -funksie skep die veranderlikes om die uitset van die sensor te stoor en die Particle.publish () -funksie vertoon die uitset op die paneelbord van die webwerf.
Die sensoruitset word op die foto hierbo getoon vir u verwysing.
Stap 4: Aansoeke:
ADXL345 is 'n klein, dun, ultra-lae, 3-as versnellingsmeter wat gebruik kan word in toestelle, mediese instrumente, ens.
Aanbeveel:
Meting van versnelling met behulp van H3LIS331DL en Arduino Nano: 4 stappe
Meting van versnelling met behulp van H3LIS331DL en Arduino Nano: H3LIS331DL, is 'n lae-krag hoëprestasie 3-as lineêre versnellingsmeter wat tot die "nano" -familie behoort, met 'n digitale I²C-seriële koppelvlak. H3LIS331DL het 'n gebruiker -kiesbare volle weegskaal van ± 100g/± 200g/± 400g en kan versnellings meet met
Meting van versnelling met behulp van H3LIS331DL en deeltjiefoton: 4 stappe
Meting van versnelling met behulp van H3LIS331DL en Particle Photon: H3LIS331DL, is 'n lae-krag hoëprestasie 3-as lineêre versnellingsmeter wat tot die "nano" -familie behoort, met 'n digitale I²C-seriële koppelvlak. H3LIS331DL het 'n gebruiker -kiesbare volle weegskaal van ± 100g/± 200g/± 400g en kan versnellings meet met
Meting van versnelling met behulp van ADXL345 en Framboos Pi: 4 stappe
Meting van versnelling met behulp van ADXL345 en Framboos Pi: Die ADXL345 is 'n klein, dun, ultra-lae, drie-as versnellingsmeter met 'n hoë resolusie (13-bis) meting tot ± 16 g. Digitale uitsetdata word geformateer as 'n 16-bis tweeling-aanvulling en is toeganklik via die I2 C digitale koppelvlak. Dit meet die
Meting van versnelling met behulp van H3LIS331DL en Framboos Pi: 4 stappe
Meting van versnelling met behulp van H3LIS331DL en Framboos Pi: H3LIS331DL, is 'n lae-krag hoëprestasie 3-as lineêre versnellingsmeter wat tot die "nano" -familie behoort, met 'n digitale I²C-seriële koppelvlak. H3LIS331DL het 'n gebruiker -kiesbare volle weegskaal van ± 100g/± 200g/± 400g en kan versnellings meet met
Meting van versnelling met behulp van ADXL345 en Arduino Nano: 4 stappe
Meting van versnelling met behulp van ADXL345 en Arduino Nano: Die ADXL345 is 'n klein, dun, ultra-lae, 3-as versnellingsmeter met 'n hoë resolusie (13-bis) meting tot ± 16 g. Digitale uitsetdata word geformateer as 'n 16-bis tweeling-aanvulling en is toeganklik via die I2 C digitale koppelvlak. Dit meet die