Indholdsfortegnelse:

Måling af acceleration ved hjælp af H3LIS331DL og partikelfoton: 4 trin
Måling af acceleration ved hjælp af H3LIS331DL og partikelfoton: 4 trin

Video: Måling af acceleration ved hjælp af H3LIS331DL og partikelfoton: 4 trin

Video: Måling af acceleration ved hjælp af H3LIS331DL og partikelfoton: 4 trin
Video: Acceleration | One-dimensional motion | Physics | Khan Academy 2024, November
Anonim
Image
Image

H3LIS331DL, er et laveffekt højtydende 3-akset lineært accelerometer, der tilhører "nano" -familien, med digitalt I²C serielt interface. H3LIS331DL har bruger -valgbare fulde skalaer på ± 100g/± 200g/± 400g, og den er i stand til at måle accelerationer med outputdatahastigheder fra 0,5 Hz til 1 kHz. H3LIS331DL fungerer garanteret over et udvidet temperaturområde fra -40 ° C til +85 ° C.

I denne vejledning vil vi demonstrere grænsefladen mellem H3LIS331DL og partikelfoton.

Trin 1: Påkrævet hardware:

Hardware påkrævet
Hardware påkrævet
Hardware påkrævet
Hardware påkrævet
Hardware påkrævet
Hardware påkrævet

De materialer, vi har brug for for at nå vores mål, omfatter følgende hardwarekomponenter:

1. H3LIS331DL

2. Partikelfoton

3. I2C -kabel

4. I2C -skærm til partikelfoton

Trin 2: Hardware -tilslutning:

Hardware -tilslutning
Hardware -tilslutning
Hardware -tilslutning
Hardware -tilslutning

Hardwaretilslutningssektionen forklarer dybest set de ledningsforbindelser, der kræves mellem sensoren og partikelfonen. At sikre korrekte forbindelser er den grundlæggende nødvendighed, mens du arbejder på et hvilket som helst system til den ønskede output. Så de nødvendige forbindelser er som følger:

H3LIS331DL fungerer over I2C. Her er eksemplet på ledningsdiagram, der viser, hvordan du tilslutter hver grænseflade på sensoren.

Out-of-the-box er tavlen konfigureret til en I2C-grænseflade, som sådan anbefaler vi at bruge denne tilslutning, hvis du ellers er agnostiker. Alt du behøver er fire ledninger!

Der kræves kun fire tilslutninger Vcc, Gnd, SCL og SDA ben, og disse er forbundet ved hjælp af I2C kabel.

Disse forbindelser er vist på billederne ovenfor.

Trin 3: Kode til accelerationsmåling:

Kode til accelerationsmåling
Kode til accelerationsmåling

Lad os starte med partikelkoden nu.

Mens vi bruger sensormodulet med arduino, inkluderer vi application.h og spark_wiring_i2c.h bibliotek. "application.h" og spark_wiring_i2c.h biblioteket indeholder de funktioner, der letter i2c -kommunikationen mellem sensoren og partiklen.

Hele partikelkoden er angivet nedenfor for brugerens bekvemmelighed:

#omfatte

#omfatte

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

#define Addr 0x18

int xAccl = 0, yAccl = 0, zAccl = 0;

ugyldig opsætning ()

{

// Indstil variabel

Partikel.variabel ("i2cdevice", "H3LIS331DL");

Partikel.variabel ("xAccl", xAccl);

Partikel.variabel ("yAccl", yAccl);

Partikel.variabel ("zAccl", zAccl);

// Initialiser I2C -kommunikation som MASTER

Wire.begin ();

// Initialiser seriel kommunikation, indstil baudhastighed = 9600

Serial.begin (9600);

// Start I2C -transmission

Wire.beginTransmission (Addr);

// Vælg kontrolregister 1

Wire.write (0x20);

// Aktiver X, Y, Z -aksen, tændt -tilstand, dataudgangshastighed 50Hz

Wire.write (0x27);

// Stop I2C -transmission

Wire.endTransmission ();

// Start I2C -transmission

Wire.beginTransmission (Addr);

// Vælg kontrolregister 4

Wire.write (0x23);

// Indstil fuld skala, +/- 100g, kontinuerlig opdatering

Wire.write (0x00);

// Stop I2C -transmission

Wire.endTransmission ();

forsinkelse (300);

}

hulrum ()

{

usignerede int -data [6];

for (int i = 0; i <6; i ++)

{

// Start I2C -transmission

Wire.beginTransmission (Addr);

// Vælg dataregister

Wire.write ((40 + i));

// Stop I2C -transmission

Wire.endTransmission ();

// Anmod om 1 byte data

Wire.requestFrom (Addr, 1);

// Læs 6 bytes 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]);

hvis (xAccl> 32767)

{

xAccl -= 65536;

}

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

hvis (yAccl> 32767)

{

yAccl -= 65536;

}

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

hvis (zAccl> 32767)

{

zAccl -= 65536;

}

// Output data til dashboard

Particle.publish ("Acceleration i X-Axis er:", String (xAccl));

Particle.publish ("Acceleration i Y-akse er:", String (yAccl));

Particle.publish ("Acceleration i Z-aksen er:", String (zAccl));

forsinkelse (300);

}

Funktionen Particle.variable () opretter variablerne til lagring af sensorens output og Particle.publish () -funktionen viser outputtet på webstedets dashboard.

Sensorudgangen er vist på billedet ovenfor til din reference.

Trin 4: Ansøgninger:

Ansøgninger
Ansøgninger

Accelerometre som H3LIS331DL finder for det meste sin anvendelse i spil og skifter profilprofil. Dette sensormodul bruges også i det avancerede strømstyringssystem til mobile applikationer. H3LIS331DL er en triaksial digital accelerationssensor, som er integreret med en intelligent on-chip bevægelsesudløst afbrydelsescontroller.

Anbefalede: