Compas numérique de Grove 3 axes (4 / 4 étapes)

Étape 4: Code

Le code est assez simple et il ne fait des lectures la boussole et il imprime sur un moniteur de la série. La boussole s’étalonne pendant quelques secondes lorsque vous exécutez le code font bien sûr pas de faire pivoter ou de déranger la boussole tandis que cela se produit et une fois terminée, vous devriez obtenir un flux fin des données du capteur.

 <p>// Reference the I2C Library<br>#include <wire.h> // Reference the HMC5883L Compass Library #include <hmc5883l.h></hmc5883l.h></wire.h></p><p>// Store our compass as a variable. HMC5883L compass; // Record any errors that may occur in the compass. int error = 0;</p><p>// Out setup routine, here we will configure the microcontroller and compass. void setup() { // Initialize the serial port. Serial.begin(9600);</p><p> Serial.println("Starting the I2C interface."); Wire.begin(); // Start the I2C interface.</p><p> Serial.println("Constructing new HMC5883L"); Serial.println("Setting scale to +/- 1.3 Ga"); error = compass.setScale(1.3); // Set the scale of the compass. if(error != 0) // If there is an error, print it out. Serial.println(compass.getErrorText(error)); Serial.println("Setting measurement mode to continous."); error = compass.setMeasurementMode(MEASUREMENT_CONTINUOUS); // Set the measurement mode to Continuous if(error != 0) // If there is an error, print it out. Serial.println(compass.getErrorText(error)); }</p><p>// Our main program loop. void loop() { // Retrive the raw values from the compass (not scaled). MagnetometerRaw raw = compass.readRawAxis(); // Retrived the scaled values from the compass (scaled to the configured scale). MagnetometerScaled scaled = compass.readScaledAxis(); // Values are accessed like so: int MilliGauss_OnThe_XAxis = scaled.XAxis;// (or YAxis, or ZAxis)</p><p> // Calculate heading when the magnetometer is level, then correct for signs of axis. float heading = atan2(scaled.YAxis, scaled.XAxis); // Once you have your heading, you must then add your 'Declination Angle', which is the 'Error' of the magnetic field in your location. // Find yours here: http://www.magnetic-declination.com/ // Mine is: -2��37' which is -2.617 Degrees, or (which we need) -0.0456752665 radians, I will use -0.0457 // If you cannot find your Declination, comment out these two lines, your compass will be slightly off. float declinationAngle = -0.0457; heading += declinationAngle; // Correct for when signs are reversed. if(heading < 0) heading += 2*PI; // Check for wrap due to addition of declination. if(heading > 2*PI) heading -= 2*PI; // Convert radians to degrees for readability. float headingDegrees = heading * 180/M_PI; </p><p> // Output the data via the serial port. Output(raw, scaled, heading, headingDegrees);</p><p> // Normally we would delay the application by 66ms to allow the loop // to run at 15Hz (default bandwidth for the HMC5883L). // However since we have a long serial out (104ms at 9600) we will let // it run at its natural speed. delay(66);//of course it can be delayed longer. }</p><p>// Output the data down the serial port. void Output(MagnetometerRaw raw, MagnetometerScaled scaled, float heading, float headingDegrees) { Serial.print("Raw:\t"); Serial.print(raw.XAxis); Serial.print(" "); Serial.print(raw.YAxis); Serial.print(" "); Serial.print(raw.ZAxis); Serial.print(" \tScaled:\t"); Serial.print(scaled.XAxis); Serial.print(" "); Serial.print(scaled.YAxis); Serial.print(" "); Serial.print(scaled.ZAxis);</p><p> Serial.print(" \tHeading:\t"); Serial.print(heading); Serial.print(" Radians \t"); Serial.print(headingDegrees); Serial.println(" Degrees \t"); }</p> 

Articles Liés

Lecture numérique étriers avec un Arduino / USB

Lecture numérique étriers avec un Arduino / USB

comment utiliser un Arduino pour lire le signal d'une série de compas numériques et envoyer la lecture via USB.Pourquoi ?Cela pourrait être utile pour la détection de la position exacte dans les systèmes de fabrication assistée par ordinateur fait /
Chibikart : Prototypage rapide un Subminiature électrique Go-Kart à l’aide de Fabrication numérique et composants Hobby

Chibikart : Prototypage rapide un Subminiature électrique Go-Kart à l’aide de Fabrication numérique et composants Hobby

Chibikart! est un kart électrique 2WD très petit mais puissant et maniable que vous pouvez générer à l'aide de standard industriel et de composants de passe-temps et de pièces de châssis mécanosoudé numériquement. À l'aide de batteries ion-lithium mo
Mini routeur de commande numérique par ordinateur, des plans complets et des instructions

Mini routeur de commande numérique par ordinateur, des plans complets et des instructions

Le projet de Mini CNC est un ensemble complet de plans et instructions sur la façon de construire une machine CNC 3 axes qui est fonctionnel et aussi précis. Le CNC Mini est très simple et facile à construire et si vous avez tous les matériaux et piè
Voiture numérique boussole thermomètre &

Voiture numérique boussole thermomètre &

je ne suis pas vraiment bon à trouver les lieux et la direction, mais au moins je suis capable de lire les cartes et boussole. Ces jours-ci, systèmes de navigation GPS deviennent plus populaires, donc probablement que certains diraient pourquoi j'ai
Arduino boussole numérique (HMC5883L - 2 modes d’affichage)

Arduino boussole numérique (HMC5883L - 2 modes d’affichage)

Salut!!!Aujourd'hui, je vais vous montrer comment faire votre propre boussole arduino à l'aide de la carte boussole numérique 3 axes de MHC5883L.Avant de commencer, assurez-vous que vous avez :Arduino unoConseil capteur HMC5883LAfficheur Nokia 5110 (
SEEED Studio / brique électronique Arduino--module de relais 5V (numérique)--

SEEED Studio / brique électronique Arduino--module de relais 5V (numérique)--

travaillant avec le relais numérique de contrôle haute tension peut être difficile à comprendre.  Il n'y a pas d'instructions sur la façon d'en faire effectuer avec un ARDUINO.  J'ai créé cette sorte de gens seront en mesure d'utiliser le relais avec
Conception de la logique séquentielle pour une horloge numérique d’apprentissage

Conception de la logique séquentielle pour une horloge numérique d’apprentissage

Cette instructable est pour deux raisons 1) à comprendre et apprendre que les fondements de la logique séquentielle 2) utilisent ces connaissances pour créer une horloge numérique.Pendules à lecture digitale ont été construits par des amateurs d'élec
Holga numérique

Holga numérique

lomographie et caméras de jouets sont amusants caméras pour jouer avec, mais la plupart de ces caméras utilisent film si vous ne voyez pas votre produit fini tout de suite et vous pourriez finir par passer un tas sur les pellicules et développement.
Machine de commande numérique par ordinateur dessin

Machine de commande numérique par ordinateur dessin

Bonjour à tous et Bienvenue sur mon premier tutoriel !Aujourd'hui je vous montre comment concevoir un dessin CNC en utilisant comme principaux composants matériels un Conseil Digilent Arty, moteurs à courant continu et des Servos RC.Remarque importan
Traceur de commande numérique par ordinateur Intel Galileo contrôlée

Traceur de commande numérique par ordinateur Intel Galileo contrôlée

C'est juste une intro courte quant à comment je suis allé sur la génération de table traçante de commande numérique par ordinateur. la plupart de ces est construit à l'aide de vieille imprimante et scanner pièces ou qui peuvent être facilement trouvé
Carte de visite numérique avec NFC

Carte de visite numérique avec NFC

NFC partout où se trouve ces jours-ci de cartes de crédit aux serrures de portes, mais il devra surtout : votre smartphone ! Avec quelques étapes simples et coût relativement bas, vous pouvez créer une carte de visite numérique qui utilise la NFC et
Marqueterie au laser d’un kit bois numérique

Marqueterie au laser d’un kit bois numérique

je suis un artiste qui se spécialise dans le travail du bois laser.  J'ai montrer mon travail dans des galeries et avons beaucoup de demandes de produits, donc cette année j'ai commencé à fabriquer et à vendre des kits pour créer Bois marquetés.J'ai
Déclenchement de votre reflex numérique sans fil avec le smartphone et le module Wi-fi de ESP8266

Déclenchement de votre reflex numérique sans fil avec le smartphone et le module Wi-fi de ESP8266

Il s'agit de mon premier instructable et l'anglais n'est pas ma langue maternelle, alors soyez indulgent (mais je serais reconnaissant à toute personne faisant remarquer les fautes d'orthographe, fautes de frappe...;)).Cela vous coûtera seulement que
Création d’un thermomètre numérique à l’aide d’Intel Edison

Création d’un thermomètre numérique à l’aide d’Intel Edison

Tout d'abord, je tiens à remercier Instructables et Intel pour m'envoie-t-il des Intel edison avec le kit de démarrage. Ce Instructable consiste à créer le thermomètre numérique (en utilisant intel edison). Thermomètre numérique est assez simple et p