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.
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.
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.
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.
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ó.
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.