Innholdsfortegnelse:

Måling av akselerasjon ved hjelp av H3LIS331DL og Arduino Nano: 4 trinn
Måling av akselerasjon ved hjelp av H3LIS331DL og Arduino Nano: 4 trinn

Video: Måling av akselerasjon ved hjelp av H3LIS331DL og Arduino Nano: 4 trinn

Video: Måling av akselerasjon ved hjelp av H3LIS331DL og Arduino Nano: 4 trinn
Video: MKS Gen L - Marlin 1 1 9 (configuration.h) 2024, November
Anonim
Image
Image

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 av brukeren på ± 100g/± 200g/± 400g, og den er i stand til å måle akselerasjoner med utdatahastigheter fra 0,5 Hz til 1 kHz. H3LIS331DL fungerer garantert over et utvidet temperaturområde fra -40 ° C til +85 ° C.

I denne opplæringen skal vi demonstrere grensesnittet mellom H3LIS331DL og Arduino Nano.

Trinn 1: Nødvendig maskinvare:

Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves

Materialene vi trenger for å nå målet vårt inkluderer følgende maskinvarekomponenter:

1. H3LIS331DL

2. Arduino Nano

3. I2C -kabel

4. I2C -skjold for Arduino Nano

Trinn 2: Maskinvaretilkobling:

Maskinvaretilkobling
Maskinvaretilkobling
Maskinvaretilkobling
Maskinvaretilkobling

Maskinvarekoblingsdelen forklarer i utgangspunktet ledningsforbindelsene som kreves mellom sensoren og arduino nano. Å 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:

H3LIS331DL 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: Arduino -kode for akselerasjonsmåling:

Arduino -kode for akselerasjonsmåling
Arduino -kode for akselerasjonsmåling
Arduino -kode for akselerasjonsmåling
Arduino -kode for akselerasjonsmåling

La oss begynne med arduino -koden nå.

Mens vi bruker sensormodulen med arduinoen, inkluderer vi Wire.h -biblioteket. "Wire" -biblioteket inneholder funksjonene som letter i2c -kommunikasjonen mellom sensoren og arduino -kortet.

Hele arduino -koden er gitt nedenfor for brukerens bekvemmelighet:

#inkludere

// H3LIS331DL I2C -adressen er 0x18 (24)

#define Addr 0x18

ugyldig oppsett ()

{

// Initialiser I2C -kommunikasjon som MASTER

Wire.begin ();

// Initialize Serial Communication, set baud rate = 9600

Serial.begin (9600);

// Start I2C -overføring

Wire.beginTransmission (Addr);

// Velg kontrollregister 1

Wire.write (0x20);

// Aktiver X, Y, Z -aksen, strøm på -modus, datautgangshastighet 50Hz

Wire.write (0x27);

// Stopp I2C -overføring

Wire.endTransmission ();

// Start I2C -overføring

Wire.beginTransmission (Addr);

// Velg kontrollregister 4

Wire.write (0x23);

// Sett full skala, +/- 100g, kontinuerlig oppdatering

Wire.write (0x00);

// Stopp 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 ((40+i));

// Stopp I2C -overføring

Wire.endTransmission ();

// Be om 1 byte med data

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

int xAccl = ((data [1] * 256) + data [0]);

int yAccl = ((data [3] * 256) + data [2]);

int zAccl = ((data [5] * 256) + data [4]);

// Utdata til seriell skjerm

Serial.print ("Akselerasjon i X-akse:");

Serial.println (xAccl);

Serial.print ("Akselerasjon i Y-akser:");

Serial.println (yAccl);

Serial.print ("Akselerasjon i Z-akse:");

Serial.println (zAccl);

forsinkelse (300);

}

Alt du trenger å gjøre er å brenne koden i arduino og sjekke avlesningene dine på seriell port. Utgangen er vist på bildet ovenfor.

Trinn 4: Søknader:

Applikasjoner
Applikasjoner

Akselerometre som H3LIS331DL finner stort sett sin anvendelse i spillene og viser profilveksling. Denne sensormodulen brukes også i det avanserte strømstyringssystemet for mobile applikasjoner. H3LIS331DL er en triaksial digital akselerasjonssensor som er integrert med en intelligent bevegelsesutløst avbruddskontroller på brikken.

Anbefalt: