Sommario:
- Passaggio 1: hardware richiesto:
- Passaggio 2: collegamento hardware:
- Passaggio 3: codice Arduino per misurare l'intensità del campo magnetico:
- Passaggio 4: applicazioni:
Video: Misurazione del campo magnetico utilizzando HMC5883 e Arduino Nano: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
L'HMC5883 è una bussola digitale progettata per il rilevamento magnetico a basso campo. Questo dispositivo ha un'ampia gamma di campi magnetici di +/-8 Oe e una velocità di uscita di 160 Hz. Il sensore HMC5883 include driver della cinghia di smagnetizzazione automatica, cancellazione dell'offset e un ADC a 12 bit che consente una precisione di rotta della bussola da 1° a 2°. Tutti i Mini Moduli I²C sono progettati per funzionare a 5VDC.
In questo tutorial, spiegheremo il funzionamento dettagliato di HMC5883 con Arduino nano.
Passaggio 1: hardware richiesto:
I materiali di cui abbiamo bisogno per raggiungere il nostro obiettivo includono i seguenti componenti hardware:
1. HMC5883
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 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'HMC5883 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 misurare l'intensità del campo magnetico:
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 dell'HMC5883 è 0x1E(30)
#define Addr 0x1E
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 configurare il registro A
Wire.write(0x00);
// Imposta la configurazione di misurazione normale, velocità di uscita dati = 0,75 Hz
Wire.write(0x60);
// Interrompi trasmissione I2C
Wire.endTransmission();
// Avvia la trasmissione I2C
Wire.beginTransmission(Addr);
// Seleziona modalità registro
Wire.write(0x02);
// Imposta misurazione continua
Wire.write(0x00);
// Interrompi trasmissione I2C
Wire.endTransmission();
ritardo(300);
}
ciclo vuoto()
{
dati int non firmati[6];
// Avvia la trasmissione I2C
Wire.beginTransmission(Addr);
// Seleziona registro dati
Wire.write(0x03);
// Interrompi trasmissione I2C
Wire.endTransmission();
// Richiedi 6 byte di dati
Wire.requestFrom(Addr, 6);
// Legge 6 byte di dati
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
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
int xMag = ((data[0] * 256) + data[1]);
int zMag = ((data[2] * 256) + data[3]);
int yMag = ((data[4] * 256) + data[5]);
// Invia i dati al monitor seriale
Serial.print("Campo magnetico nell'asse X: ");
Serial.println(xMag);
Serial.print("Campo magnetico nell'asse Y: ");
Serial.println(yMag);
Serial.print("Campo magnetico nell'asse Z: ");
Serial.println(zMag);
ritardo(300);
}
Nella libreria wire Wire.write() e Wire.read() viene utilizzato per scrivere i comandi e leggere l'output del sensore. La parte seguente del codice illustra la lettura dell'uscita del sensore.
// Legge 6 byte di dati // xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb if(Wire.available() == 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(); }
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:
HMC5883 è un modulo multi-chip a montaggio superficiale progettato per il rilevamento magnetico a basso campo con un'interfaccia digitale per applicazioni come la bussola e la magnetometria a basso costo. La sua accuratezza e precisione di alto livello da uno a due gradi consente la navigazione pedonale e le applicazioni LBS.
Consigliato:
Misurazione del campo magnetico utilizzando HMC5883 e Raspberry Pi: 4 passaggi
Misurazione del campo magnetico utilizzando HMC5883 e Raspberry Pi: HMC5883 è una bussola digitale progettata per il rilevamento magnetico a basso campo. Questo dispositivo ha un'ampia gamma di campi magnetici di +/-8 Oe e una velocità di uscita di 160 Hz. Il sensore HMC5883 include driver della cinghia di smagnetizzazione automatica, cancellazione dell'offset e un
Misurazione del campo magnetico utilizzando HMC5883 e fotone particellare: 4 passaggi
Misurazione del campo magnetico mediante HMC5883 e fotone di particelle: HMC5883 è una bussola digitale progettata per il rilevamento magnetico a basso campo. Questo dispositivo ha un'ampia gamma di campi magnetici di +/-8 Oe e una velocità di uscita di 160 Hz. Il sensore HMC5883 include driver della cinghia di smagnetizzazione automatica, cancellazione dell'offset e un
Misurazione della temperatura utilizzando STS21 e Arduino Nano: 4 passaggi
Misurazione della temperatura utilizzando STS21 e Arduino Nano: il sensore di temperatura digitale STS21 offre prestazioni superiori e un ingombro ridotto. Fornisce segnali calibrati e linearizzati in formato digitale I2C. La fabbricazione di questo sensore si basa sulla tecnologia CMOSens, che attribuisce al superiore
Misurazione del contenuto di umidità del suolo utilizzando la piattaforma Esp32 e Thingsio.ai: 6 passaggi
Misurazione del contenuto di umidità del suolo utilizzando la piattaforma Esp32 e Thingsio.ai: in questo tutorial spiegherò la lettura del contenuto di umidità nel suolo utilizzando esp32 e quindi l'invio dei valori alla piattaforma cloud IoT thingsio.ai
Sensore di campo magnetico a 3 assi: 10 passaggi (con immagini)
Sensore di campo magnetico a 3 assi: i sistemi di trasferimento di potenza wireless sono sulla buona strada per sostituire la ricarica cablata convenzionale. Dai minuscoli impianti biomedici fino alla ricarica wireless di enormi veicoli elettrici. Una parte integrante della ricerca sull'alimentazione wireless è