Sommario:
- Passaggio 1: hardware richiesto:
- Passaggio 2: collegamento hardware:
- Passaggio 3: codice Arduino per la misurazione dell'accelerazione:
- Passaggio 4: applicazioni:
Video: Misurazione dell'accelerazione con BMA250 e Arduino Nano: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
BMA250 è un accelerometro a 3 assi piccolo, sottile, a bassissima potenza con misurazione ad alta risoluzione (13 bit) fino a ±16 g. I dati di uscita digitale sono formattati come complemento a due a 16 bit ed è accessibile tramite l'interfaccia digitale I2C. Misura l'accelerazione statica di gravità nelle applicazioni di rilevamento dell'inclinazione, nonché l'accelerazione dinamica risultante dal movimento o da urti. La sua alta risoluzione (3,9 mg/LSB) consente di misurare variazioni di inclinazione inferiori a 1,0°.
In questo tutorial misureremo l'accelerazione in tutti e tre gli assi perpendicolari utilizzando BMA250 e Arduino Nano.
Passaggio 1: hardware richiesto:
I materiali di cui abbiamo bisogno per raggiungere il nostro obiettivo includono i seguenti componenti hardware:
1. BMA250
2. Arduino Nano
3. Cavo I2C
4. Scudo I2C per Arduino Nano
Passaggio 2: collegamento hardware:
La sezione di collegamento hardware spiega fondamentalmente le connessioni di cablaggio richieste tra il sensore e l'arduino. Garantire connessioni corrette è la necessità di base mentre si lavora su qualsiasi sistema per l'output desiderato. Quindi, i collegamenti necessari sono i seguenti:
Il BMA250 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:
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 BMA250 è 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 selezione dell'intervallo
Wire.write(0x0F);
// Imposta l'intervallo +/- 2 g
Wire.write(0x03);
// Interrompi trasmissione I2C
Wire.endTransmission();
// Avvia la trasmissione I2C
Wire.beginTransmission(Addr);
// Seleziona il registro della larghezza di banda
Wire.write(0x10);
// Imposta larghezza di banda 7,81 Hz
Wire.write(0x08);
// Interrompi trasmissione I2C
Wire.endTransmission(); ritardo(300);}
ciclo vuoto()
{
dati int non firmati[0];
// Avvia la trasmissione I2C
Wire.beginTransmission(Addr);
// Seleziona i registri dati (0x02 − 0x07)
Wire.write(0x02);
// Interrompi trasmissione I2C
Wire.endTransmission();
// Richiedi 6 byte
Wire.requestFrom(Addr, 6);
// Legge i sei byte
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
if(Filo.disponibile() == 6)
{
data[0] = Wire.read();
data[1] = Wire.read();
data[2] = Wire.read();
data[3] = Wire.read();
data[4] = Wire.read();
data[5] = Wire.read();
}
ritardo(300);
// Converti i dati in 10 bit
float xAccl = ((data[1] * 256,0) + (data[0] & 0xC0)) / 64;
se (xAccl > 511)
{
xAccl -= 1024;
}
float yAccl = ((data[3] * 256,0) + (data[2] & 0xC0)) / 64;
if (yAccl > 511)
{
yAccl -= 1024;
}
float zAccl = ((data[5] * 256,0) + (data[4] & 0xC0)) / 64;
if (zAccl > 511)
{
zAccl -= 1024;
}
// 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);
}
Nella libreria wire Wire.write() e Wire.read() viene utilizzato per scrivere i comandi e leggere l'output del sensore. Serial.print() e Serial.println() vengono utilizzati per visualizzare l'output del sensore sul monitor seriale dell'IDE Arduino.
L'uscita del sensore è mostrata nell'immagine sopra.
Passaggio 4: applicazioni:
Gli accelerometri come BMA250 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. BMA250 è un sensore di accelerazione digitale triassiale incorporato con un controller di interruzione attivato dal movimento intelligente su chip.
Consigliato:
Misurazione dell'accelerazione utilizzando ADXL345 e fotone particellare: 4 passaggi
Misurazione dell'accelerazione mediante ADXL345 e fotone particellare: ADXL345 è un accelerometro a 3 assi piccolo, sottile, a bassissima potenza con misurazione ad alta risoluzione (13 bit) fino a ±16 g. I dati di uscita digitale sono formattati come complemento a due a 16 bit ed è accessibile tramite l'interfaccia digitale I2 C. Misura il
Misurazione dell'accelerazione utilizzando H3LIS331DL e Arduino Nano: 4 passaggi
Misura dell'accelerazione utilizzando H3LIS331DL e Arduino Nano: H3LIS331DL, è un accelerometro lineare a 3 assi a bassa potenza 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 w
Misurazione dell'accelerazione utilizzando ADXL345 e Arduino Nano: 4 passaggi
Misurazione dell'accelerazione utilizzando ADXL345 e Arduino Nano: ADXL345 è un accelerometro a 3 assi piccolo, sottile, a bassissima potenza con misurazione ad alta risoluzione (13 bit) fino a ±16 g. I dati di uscita digitale sono formattati come complemento a due a 16 bit ed è accessibile tramite l'interfaccia digitale I2 C. Misura il
Misurazione dell'accelerazione con BMA250 e Raspberry Pi: 4 passaggi
Misurazione dell'accelerazione con BMA250 e Raspberry Pi: BMA250 è un accelerometro a 3 assi piccolo, sottile, a bassissima potenza con misurazione ad alta risoluzione (13 bit) fino a ±16 g. I dati di uscita digitale sono formattati come complemento a due a 16 bit ed è accessibile tramite l'interfaccia digitale I2C. Misura la statica
Misurazione dell'accelerazione con BMA250 e fotone particellare: 4 passaggi
Misurazione dell'accelerazione con BMA250 e fotone di particelle: BMA250 è un accelerometro a 3 assi piccolo, sottile, a bassissima potenza con misurazione ad alta risoluzione (13 bit) fino a ±16 g. I dati di uscita digitale sono formattati come complemento a due a 16 bit ed è accessibile tramite l'interfaccia digitale I2C. Misura la statica