Étape 3: Java code pour mesurer l’intensité du champ magnétique :
L’avantage d’utiliser des framboises pi est, c’est vous offre la flexibilité du langage de programmation dans lequel vous souhaitez programmer le Conseil afin de l’interface du capteur avec elle. Tirer parti de cet avantage de cette carte, nous démontrons ici sa programmation en Java. Le code java pour HMC5883 peut être téléchargé de notre communauté de github c’est la Communauté de contrôle tout.
Ainsi que pour faciliter la tâche des utilisateurs, nous sommes expliquant le code ici aussi :
La première étape de codage vous devez télécharger la bibliothèque pi4j dans le cas de java, car cette bibliothèque prend en charge les fonctions utilisées dans le code. Donc, pour télécharger la bibliothèque, vous pouvez visiter le lien suivant :
Vous pouvez copier le code de java de travail pour ce capteur d’ici aussi :
import com.pi4j.io.i2c.I2CBus;import com.pi4j.io.i2c.I2CDevice;mport com.pi4j.io.i2c.I2CFactory;import java.io.IOException;public class HMC5883{ public static void main(String args[]) throws Exception { // Create I2C bus I2CBus Bus = I2CFactory.getInstance(I2CBus.BUS_1); // Get I2C device, HMC5883 I2C address is 0x1E(30) I2CDevice device = Bus.getDevice(0x1E);// Select Configuration register A // Normal measurement configuration, data rate o/p = 0.75 Hz device.write(0x00, (byte)0x60); // Select Mode register // Continuous measurement mode device.write(0x02, (byte)0x00); Thread.sleep(500);// Read 6 bytes of data from 0x03(3) // xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb byte[] data = new byte[6]; device.read(0x03, data, 0, 6);// Convert the data int xMag = ((data[0] & 0xFF) * 256 + (data[1] & 0xFF)); if(xMag > 32767) { xMag -= 65536; } int zMag = ((data[2] & 0xFF) * 256 + (data[3] & 0xFF)); if(zMag > 32767) { zMag -= 65536; } int yMag = ((data[4] & 0xFF) * 256 + (data[5] & 0xFF)); if(yMag > 32767) { yMag -= 65536; }// Output data to screen System.out.printf("Magnetic field in X-Axis : %d %n", xMag); System.out.printf("Magnetic field in Y-Axis : %d %n", yMag); System.out.printf("Magnetic field in Z-Axis : %d %n", zMag); }}
Write() et read() fonctions servent à écrire les commandes et lire la sortie du capteur respectivement. Suite partie illustre la lecture des valeurs de champ magnétique.
// Read 6 bytes of data from 0x03(3)
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb byte[] data = new byte[6]; device.read(0x03, data, 0, 6);
La sortie est montrée dans l’image ci-dessus.