Innholdsfortegnelse:
- Trinn 1: Nødvendig maskinvare:
- Trinn 2: Maskinvaretilkobling:
- Trinn 3: Kode for måling av akselerasjon:
- Trinn 4: Søknader:
Video: Måling av akselerasjon ved bruk av ADXL345 og Particle Photon: 4 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
ADXL345 er et lite, tynt, ultralavt, 3-akset akselerometer med høy oppløsning (13-bit) måling på opptil ± 16 g. Digitale utdata er formatert som 16-biters tokomplement og er tilgjengelig via I2 C digitalt grensesnitt. Den måler den statiske gravitasjonsakselerasjonen i tilt-sensing-applikasjoner, samt dynamisk akselerasjon som følge av bevegelse eller sjokk. Den høye oppløsningen (3,9 mg/LSB) muliggjør måling av hellingsendringer mindre enn 1,0 °.
I denne opplæringen har grensesnittet mellom ADXL345 -sensormodulen og partikkelfoton blitt illustrert. For å lese akselerasjonsverdiene har vi brukt partikkel med en I2c -adapter. Denne I2C -adapteren gjør tilkoblingen til sensormodulen enkel og mer pålitelig.
Trinn 1: Nødvendig maskinvare:
Materialene vi trenger for å nå målet vårt inkluderer følgende maskinvarekomponenter:
1. ADXL345
2. Partikkelfoton
3. I2C -kabel
4. I2C -skjerm for partikkelfoton
Trinn 2: Maskinvaretilkobling:
Maskinvarekoblingsdelen forklarer i utgangspunktet ledningsforbindelsene som kreves mellom sensoren og partikkelfotonet. Å sikre riktige tilkoblinger er den grunnleggende nødvendigheten mens du arbeider på et hvilket som helst system for ønsket utgang. Så de nødvendige tilkoblingene er som følger:
ADXL345 fungerer over I2C. Her er eksempel på koblingsskjema, som viser hvordan du kobler til hvert grensesnitt på sensoren.
Uten boksen er brettet konfigurert for et I2C-grensesnitt, derfor anbefaler vi å bruke denne tilkoblingen hvis du ellers er agnostiker.
Alt du trenger er fire ledninger! Bare fire tilkoblinger kreves Vcc, Gnd, SCL og SDA -pinner, og disse er koblet til ved hjelp av I2C -kabel.
Disse sammenhengene er vist på bildene ovenfor.
Trinn 3: Kode for måling av akselerasjon:
La oss begynne med partikkelkoden nå.
Mens vi bruker sensormodulen med partikkelen, inkluderer vi application.h og spark_wiring_i2c.h biblioteket. "application.h" og spark_wiring_i2c.h biblioteket inneholder funksjonene som letter i2c -kommunikasjonen mellom sensoren og partikkelen.
Hele partikkelkoden er gitt nedenfor for brukerens bekvemmelighet:
#inkludere
#inkludere
// ADXL345 I2C -adressen er 0x53 (83)
#define Addr 0x53
int xAccl = 0, yAccl = 0, zAccl = 0;
ugyldig oppsett ()
{
// Angi variabel
Particle.variable ("i2cdevice", "ADXL345");
Partikkel.variabel ("xAccl", xAccl);
Particle.variable ("yAccl", yAccl);
Partikkel.variabel ("zAccl", zAccl);
// Initialiser I2C -kommunikasjon som MASTER
Wire.begin ();
// Initialiser seriell kommunikasjon, sett overføringshastighet = 9600
Serial.begin (9600);
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Velg båndbreddehastighetsregister
Wire.write (0x2C);
// Velg utdatahastighet = 100 Hz
Wire.write (0x0A);
// Stopp I2C -overføring
Wire.endTransmission ();
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Velg effektregistreringsregister
Wire.write (0x2D);
// Velg automatisk hvilemodus
Wire.write (0x08);
// Stopp I2C -overføring
Wire.endTransmission ();
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Velg dataformatregister
Wire.write (0x31);
// Velg full oppløsning, +/- 2g
Wire.write (0x08);
// Avslutt I2C -overføring
Wire.endTransmission ();
forsinkelse (300);
}
hulrom ()
{
usignerte int -data [6];
for (int i = 0; i <6; i ++)
{
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Velg dataregister
Wire.write ((50+i));
// Stopp I2C -overføring
Wire.endTransmission ();
// Be om 1 byte data fra enheten
Wire.requestFrom (Addr, 1);
// Les 6 byte med data
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
hvis (Wire.available () == 1)
{
data = Wire.read ();
}
forsinkelse (300);
}
// Konverter dataene til 10-bits
int xAccl = (((data [1] & 0x03) * 256) + data [0]);
hvis (xAccl> 511)
{
xAccl -= 1024;
}
int yAccl = (((data [3] & 0x03) * 256) + data [2]);
hvis (yAccl> 511)
{
yAccl -= 1024;
}
int zAccl = (((data [5] & 0x03) * 256) + data [4]);
hvis (zAccl> 511)
{
zAccl -= 1024;
}
// Utdata til dashbordet
Particle.publish ("Akselerasjon i X-aksen er:", String (xAccl));
Particle.publish ("Akselerasjon i Y-aksen er:", String (yAccl));
Particle.publish ("Akselerasjon i Z-aksen er:", String (zAccl));
}
Particle.variable () -funksjonen oppretter variablene for å lagre sensorens utgang og Particle.publish () -funksjonen viser utgangen på dashbordet til nettstedet.
Sensorutgangen er vist på bildet ovenfor for din referanse.
Trinn 4: Søknader:
ADXL345 er et lite, tynt, ultralavt, 3-akset akselerometer som kan brukes i håndsett, medisinsk instrumentering etc. Applikasjonen inkluderer også spill- og pekeenheter, industriell instrumentering, personlige navigasjonsenheter og beskyttelse mot harddisk (HDD).
Anbefalt:
Måling av akselerasjon ved hjelp av H3LIS331DL og Arduino Nano: 4 trinn
Måling av akselerasjon ved bruk av H3LIS331DL og Arduino Nano: H3LIS331DL, er et laveffekt 3-akset lineært akselerometer med høy ytelse som tilhører "nano" -familien, med digitalt I²C serielt grensesnitt. H3LIS331DL har full skalaer som kan velges på ± 100g/± 200g/± 400g, og den er i stand til å måle akselerasjoner m
Måling av akselerasjon ved bruk av H3LIS331DL og partikkelfoton: 4 trinn
Måling av akselerasjon ved hjelp av H3LIS331DL og Particle Photon: H3LIS331DL, er et laveffekt 3-akset lineært akselerometer med høy ytelse som tilhører "nano" -familien, med digitalt I²C serielt grensesnitt. H3LIS331DL har full skalaer som kan velges på ± 100g/± 200g/± 400g, og den er i stand til å måle akselerasjoner m
Måling av akselerasjon ved bruk av ADXL345 og Raspberry Pi: 4 trinn
Måling av akselerasjon ved bruk av ADXL345 og Raspberry Pi: ADXL345 er et lite, tynt, ultralavt, 3-akset akselerometer med høy oppløsning (13-bit) måling på opptil ± 16 g. Digitale utdata er formatert som 16-biters tokomplement og er tilgjengelig via I2 C digitalt grensesnitt. Den måler
Overvåke akselerasjon ved bruk av Raspberry Pi og AIS328DQTR ved hjelp av Python: 6 trinn
Overvåke akselerasjon ved hjelp av Raspberry Pi og AIS328DQTR Bruke Python: Akselerasjon er begrenset, tror jeg i henhold til noen fysikklover.- Terry Riley En gepard bruker fantastisk akselerasjon og raske endringer i hastighet når jeg jager. Den raskeste skapningen i land en gang i blant bruker sitt høyeste tempo for å fange byttedyr. Den
Måling av akselerasjon ved bruk av ADXL345 og Arduino Nano: 4 trinn
Måling av akselerasjon ved hjelp av ADXL345 og Arduino Nano: ADXL345 er et lite, tynt, ultralavt, 3-akset akselerometer med høy oppløsning (13-bit) måling på opptil ± 16 g. Digitale utdata er formatert som 16-biters tokomplement og er tilgjengelig via I2 C digitalt grensesnitt. Den måler