Sommario:

Misurazione dell'accelerazione utilizzando H3LIS331DL e Arduino Nano: 4 passaggi
Misurazione dell'accelerazione utilizzando H3LIS331DL e Arduino Nano: 4 passaggi

Video: Misurazione dell'accelerazione utilizzando H3LIS331DL e Arduino Nano: 4 passaggi

Video: Misurazione dell'accelerazione utilizzando H3LIS331DL e Arduino Nano: 4 passaggi
Video: A Novel Virtual Accelerometer Array Using One Single Device Based on Time Intervals Measurement 2024, Novembre
Anonim
Image
Image

H3LIS331DL, è un accelerometro lineare a 3 assi a basso consumo e alte prestazioni appartenente alla famiglia “nano”, con interfaccia seriale digitale I²C. H3LIS331DL ha fondo scala selezionabile dall'utente di ±100g/±200g/±400g ed è in grado di misurare accelerazioni con velocità di trasmissione dati da 0,5 Hz a 1 kHz. L'H3LIS331DL è garantito per funzionare in un intervallo di temperatura esteso da -40 °C a +85 °C.

In questo tutorial dimostreremo l'interfacciamento di H3LIS331DL con Arduino Nano.

Passaggio 1: hardware richiesto:

Hardware richiesto
Hardware richiesto
Hardware richiesto
Hardware richiesto
Hardware richiesto
Hardware richiesto

I materiali di cui abbiamo bisogno per raggiungere il nostro obiettivo includono i seguenti componenti hardware:

1. H3LIS331DL

2. Arduino Nano

3. Cavo I2C

4. Scudo I2C per Arduino Nano

Passaggio 2: collegamento hardware:

Collegamento hardware
Collegamento hardware
Collegamento hardware
Collegamento hardware

La sezione di collegamento hardware spiega fondamentalmente le connessioni di cablaggio richieste tra il sensore e l'arduino nano. Garantire connessioni corrette è la necessità di base mentre si lavora su qualsiasi sistema per l'output desiderato. Quindi, i collegamenti necessari sono i seguenti:

L'H3LIS331DL funzionerà su I2C. Ecco lo schema elettrico di esempio, che mostra come cablare ciascuna interfaccia del sensore.

Di default, la scheda è configurata per un'interfaccia I2C, quindi consigliamo di utilizzare questo collegamento se sei altrimenti agnostico. Tutto ciò di cui hai bisogno sono quattro fili!

Sono necessarie solo quattro connessioni pin Vcc, Gnd, SCL e SDA e questi sono collegati con l'aiuto del cavo I2C.

Queste connessioni sono mostrate nelle immagini sopra.

Passaggio 3: codice Arduino per la misurazione dell'accelerazione:

Codice Arduino per la misurazione dell'accelerazione
Codice Arduino per la misurazione dell'accelerazione
Codice Arduino per la misurazione dell'accelerazione
Codice Arduino per la misurazione dell'accelerazione

Iniziamo ora con il codice arduino.

Durante l'utilizzo del modulo sensore con arduino, includiamo la libreria Wire.h. La libreria "Wire" contiene le funzioni che facilitano la comunicazione i2c tra il sensore e la scheda arduino.

L'intero codice arduino è riportato di seguito per comodità dell'utente:

#includere

// L'indirizzo I2C di H3LIS331DL è 0x18(24)

#define Indirizzo 0x18

configurazione nulla()

{

// Inizializza la comunicazione I2C come MASTER

Wire.begin();

// Inizializza la comunicazione seriale, imposta la velocità di trasmissione = 9600

Serial.begin(9600);

// Avvia la trasmissione I2C

Wire.beginTransmission(Addr);

// Seleziona il registro di controllo 1

Wire.write(0x20);

// Abilita l'asse X, Y, Z, la modalità di accensione, la velocità di uscita dei dati 50Hz

Wire.write(0x27);

// Interrompi trasmissione I2C

Wire.endTransmission();

// Avvia la trasmissione I2C

Wire.beginTransmission(Addr);

// Seleziona il registro di controllo 4

Wire.write(0x23);

// Imposta fondo scala, +/- 100 g, aggiornamento continuo

Wire.write(0x00);

// Interrompi trasmissione I2C

Wire.endTransmission();

ritardo(300);

}

ciclo vuoto()

{

dati int non firmati[6];

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

{

// Avvia la trasmissione I2C

Wire.beginTransmission(Addr);

// Seleziona registro dati

Wire.write((40+i));

// Interrompi trasmissione I2C

Wire.endTransmission();

// Richiedi 1 byte di dati

Wire.requestFrom(Addr, 1);

// Legge 6 byte di dati

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

if(Filo.disponibile() == 1)

{

data = Wire.read();

}

}

ritardo(300);

// Converti i dati

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

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

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

// Invia i dati al monitor seriale

Serial.print("Accelerazione nell'asse X: ");

Serial.println(xAccl);

Serial.print("Accelerazione nell'asse Y: ");

Serial.println(yAccl);

Serial.print("Accelerazione nell'asse Z: ");

Serial.println(zAccl);

ritardo(300);

}

Tutto quello che devi fare è masterizzare il codice in arduino e controllare le tue letture sulla porta seriale. L'output è mostrato nell'immagine sopra.

Passaggio 4: applicazioni:

Applicazioni
Applicazioni

Gli accelerometri come H3LIS331DL trovano principalmente la sua applicazione nei giochi e nella commutazione del profilo del display. Questo modulo sensore è anche impiegato nel sistema avanzato di gestione dell'alimentazione per applicazioni mobili. H3LIS331DL è un sensore di accelerazione digitale triassiale incorporato con un controller di interruzione attivato dal movimento su chip intelligente.

Consigliato: