Sommario:
- Passaggio 1: ciò di cui hai bisogno.
- Passaggio 2: connessione:
- Passaggio 3: codice:
- Passaggio 4: applicazioni:
Video: Arduino Nano - Tutorial accelerometro digitale a 3 assi MMA8452Q a 12 bit/8 bit: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
L'MMA8452Q è un accelerometro intelligente, a bassa potenza, a tre assi, capacitivo, microlavorato con 12 bit di risoluzione. Opzioni flessibili programmabili dall'utente sono fornite con l'ausilio di funzioni integrate nell'accelerometro, configurabili su due pin di interruzione. Dispone di scale complete selezionabili dall'utente di ±2g/±4g/±8g con dati filtrati con filtro passa-alto e dati non filtrati disponibili in tempo reale. Ecco la sua dimostrazione con Arduino nano.
Passaggio 1: ciò di cui hai bisogno.
1. Arduino Nano
2. MMA8452Q
3. Cavo I²C
4. Scudo I²C per Arduino Nano
Passaggio 2: connessione:
Prendi uno shield I2C per Arduino Nano e spingilo delicatamente sui pin di Nano.
Quindi collegare un'estremità del cavo I2C al sensore MMA8452Q e l'altra estremità allo schermo I2C.
I collegamenti sono mostrati nell'immagine sopra.
Passaggio 3: codice:
Il codice arduino per MMMA8452Q può essere scaricato dal nostro repository github - DCUBE Store.
Ecco il link.
Includiamo la libreria Wire.h per facilitare la comunicazione I2c del sensore con la scheda Arduino.
Puoi anche copiare il codice da qui, è fornito come segue:
// Distribuito con una licenza libera.
// Usalo come vuoi, a scopo di lucro o gratuito, a condizione che rientri nelle licenze delle opere associate.
//MMA8452Q
// Questo codice è progettato per funzionare con il Mini Modulo I2C MMA8452Q_I2CS.
#includere
// L'indirizzo I2C di MMA8452Q è 0x1C(28)
#define Indirizzo 0x1C
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
Wire.write(0x2A);
// Modalità standby
Wire.write(0x00);
// Interrompi trasmissione I2C
Wire.endTransmission();
// Avvia la trasmissione I2C
Wire.beginTransmission(Addr);
// Seleziona il registro di controllo
Wire.write(0x2A);
// Modalità attiva
Wire.write(0x01);
// Interrompi trasmissione I2C
Wire.endTransmission();
// Avvia la trasmissione I2C
Wire.beginTransmission(Addr);
// Seleziona il registro di controllo
Wire.write(0x0E);
// Imposta l'intervallo su +/- 2 g
Wire.write(0x00);
// Interrompi trasmissione I2C
Wire.endTransmission();
ritardo(300);
}
ciclo vuoto()
{
dati int non firmati[7];
// Richiedi 7 byte di dati
Wire.requestFrom(Addr, 7);
// Legge 7 byte di dati
// staus, xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
if(Filo.disponibile() == 7)
{
data[0] = Wire.read();
data[1] = Wire.read();
data[2] = Wire.read();
data[3] = Wire.read();
data[4] = Wire.read();
data[5] = Wire.read();
data[6] = Wire.read();
}
// Converti i dati a 12 bit
int xAccl = ((data[1] * 256) + data[2]) / 16;
se (xAccl > 2047)
{
xAccl -= 4096;
}
int yAccl = ((data[3] * 256) + data[4]) / 16;
if (yAccl > 2047)
{
yAccl -= 4096;
}
int zAccl = ((data[5] * 256) + data[6]) / 16;
if (zAccl > 2047)
{
zAccl -= 4096;
}
// 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 (500);
}
Passaggio 4: applicazioni:
MMA8452Q ha varie applicazioni che includono applicazioni E-Compass, rilevamento dell'orientamento statico che incorpora verticale/orizzontale, su/giù, sinistra/destra, identificazione della posizione posteriore/anteriore, notebook, e-reader e rilevamento di caduta e caduta libera del laptop, in tempo reale rilevamento dell'orientamento, tra cui realtà virtuale e feedback sulla posizione dell'utente di gioco 3D, analisi dell'attività in tempo reale come il conteggio dei passi del pedometro, rilevamento della caduta libera per HDD, backup GPS stimata e molto altro.
Consigliato:
Raspberry Pi MMA8452Q Esercitazione su Python per accelerometro digitale a 3 assi a 12 bit / 8 bit: 4 passaggi
Raspberry Pi MMA8452Q Accelerometro digitale a 3 assi a 12 bit/8 bit Tutorial Python: MMA8452Q è un accelerometro microlavorato a tre assi, capacitivo, intelligente, a bassa potenza con 12 bit di risoluzione. Le opzioni flessibili programmabili dall'utente sono fornite con l'ausilio di funzioni integrate nell'accelerometro, configurabili su due interruzioni
Controllo del movimento con Raspberry Pi e LIS3DHTR, accelerometro a 3 assi, utilizzando Python: 6 passaggi
Controllo del movimento con Raspberry Pi e LIS3DHTR, accelerometro a 3 assi, utilizzo di Python: la bellezza ci circonda, ma di solito dobbiamo camminare in un giardino per saperlo. - Rumi Come il gruppo istruito che sembriamo essere, investiamo la stragrande maggioranza della nostra energia lavorando prima dei nostri PC e telefoni cellulari. Pertanto, spesso lasciamo che il nostro benessere
Accelerometro a 3 assi, ADXL345 con Raspberry Pi utilizzando Python: 6 passaggi
Accelerometro a 3 assi, ADXL345 con Raspberry Pi Utilizzo di Python: pensare a un gadget in grado di controllare il punto in cui il tuo fuoristrada è inclinato per indugiare. Non sarebbe piacevole nel caso in cui qualcuno si adeguasse quando c'è la possibilità di ribaltarsi? Ovviamente sì. sarebbe vero
Modulo accelerometro a 3 assi LIS2HH12: 10 passaggi (con immagini)
Modulo LIS2HH12 dell'accelerometro a 3 assi: questo Instructable è considerato di livello principiante con una certa esperienza con il software arduino e la saldatura. Il modulo LIS2HH12 è realizzato da Tiny9. Tiny9 è una nuova azienda che si occupa di vendere moduli sensore per bricolage, aziende o inventori fai-da-te. Là
Preliminare* SPI sul Pi: comunicazione con un accelerometro a 3 assi SPI utilizzando un Raspberry Pi: 10 passaggi
Preliminare* SPI sul Pi: comunicazione con un accelerometro a 3 assi SPI utilizzando un Raspberry Pi: guida passo passo su come configurare Raspbian e comunicare con un dispositivo SPI utilizzando la libreria SPI bcm2835 (NON bit banged!) Questo è ancora molto preliminare… ho bisogno di aggiungere immagini migliori del collegamento fisico e lavorare su un po' del codice scomodo