Com Connectar La Brúixola Digital HMC5883 A Arduino

Taula de continguts:

Com Connectar La Brúixola Digital HMC5883 A Arduino
Com Connectar La Brúixola Digital HMC5883 A Arduino

Vídeo: Com Connectar La Brúixola Digital HMC5883 A Arduino

Vídeo: Com Connectar La Brúixola Digital HMC5883 A Arduino
Vídeo: Трехосевой цифровой компас HMC5883L и Arduino 2024, Maig
Anonim

Considerem la connexió del mòdul GY-273 amb la brúixola digital de tres eixos Honeywell HMC5883L. Aquest microcircuit es pot utilitzar per a mesures magnetomètriques, en navegació, si no es requereix una precisió de mesura elevada (amb un error d'1 … 2 graus i la possibilitat de calibratge). El dispositiu es connecta a través de la interfície I2C.

Brúixola digital HMC5883
Brúixola digital HMC5883

Necessari

  • - Brúixola digital HMC5883;
  • - Arduino;
  • - prototip de placa i cables de connexió;
  • - ordinador.

Instruccions

Pas 1

Aquestes són les principals característiques d’una brúixola magnètica:

- Sensor magnètic de 3 eixos;

- ADC de 12 bits amb una resolució de 2 mGs (milligauss);

- autotest incorporat;

- baixa tensió de funcionament i baix consum;

- interfície digital I2C;

- Alta taxa de votació: fins a 160 vegades per segon (el temps d'una mesura és d'aproximadament 6 ms);

- la precisió de determinar la direcció és 1 ° … 2 °;

- Es pot utilitzar en camps magnètics forts (fins a ± 8 Gauss).

La figura mostra el diagrama per connectar el sensor magnètic HMC5883L a l’Arduino. És molt compacte i senzill, perquè La interfície I2C de dos fils és fantàstica perquè requereix poques connexions. Podeu utilitzar una taula de treball.

Connexió de la brúixola digital HMC5883 a l'Arduino
Connexió de la brúixola digital HMC5883 a l'Arduino

Pas 2

Ha de tenir un aspecte semblant a la foto. També connectaré un analitzador lògic als busos SCL i SDA per controlar l'intercanvi d'informació entre l'Arduino i el mòdul HMC5883. No és obligatori.

Brúixola digital HMC5883 connectada a Arduino a la placa de suport
Brúixola digital HMC5883 connectada a Arduino a la placa de suport

Pas 3

Com a primer conegut, intentem llegir els registres d'identificació 10 (0xA), 11 (0xB) i 12 (0xC) de la brúixola digital HMC5883 i escrivim un esbós com a la figura. S'ofereix amb comentaris detallats.

Esbós llegint els registres d'identificació de l'HMC5883
Esbós llegint els registres d'identificació de l'HMC5883

Pas 4

El senyal obtingut amb l’analitzador lògic serà el que es mostra a la il·lustració.

Què vol dir? El primer byte és l'adreça I2C amb la qual nosaltres (el dispositiu mestre, Arduino) establim la comunicació (7 bits elevats 0x1E) i el mode d'escriptura (bit baix - 0x0); el nombre és 0x3C. El segon byte és el número 0xA, que vam escriure per a l'adreça 0x1E i el bit de confirmació del sensor HMC5883L, que és l'esclau. Aquest és el número de registre des del qual començarem a llegir les dades. D’aquesta manera es conclou la primera transacció. Comença el següent. El tercer byte és una sol·licitud de lectura de l'esclau (els 7 bits més significatius són l'adreça 0x1E, el vuitè bit és l'operació de lectura 0x1; el nombre resultant és 0x3D). Els darrers tres tres bytes són la resposta de l'esclau HMC5883L dels registres 0xA, 0xB i 0xC, respectivament.

La brúixola digital HMC5883L es mou pels registres de forma independent durant la lectura contínua. Aquells. no cal (però no està prohibit) especificar el cas cada vegada. Per exemple, si en lloc de 0xA escriuríem 0x3 i llegírem 10 vegades, obtindríem valors en 10 registres, començant pel 3r al 12è.

I quins són aquests tres números: 0x48, 0x34, 0x33? Utilitzant de nou el full de dades de la brúixola digital HMC5883L, veurem que aquests són els valors predeterminats per als tres registres d’identificació.

Diagrama de temps d'intercanvi I2C amb brúixola digital HMC5883
Diagrama de temps d'intercanvi I2C amb brúixola digital HMC5883

Pas 5

Per obtenir les dades de la brúixola digital sobre el camp magnètic, heu de llegir els registres del 3 al 8, igual que llegim els registres d’identificació. L’única diferència és que les dades de cadascun dels tres eixos X, Y i Z es presenten com a nombres de doble byte. Convertint-los en nombres decimals, obtenim adreces al llarg de cadascun dels tres eixos.

Recomanat: