J'ai fait les branchements, que je crois bon, et j'ai fait rouler un programme d'exemple donné par la librairie:
/*
The sensor outputs provided by the library are the raw 16-bit values
obtained by concatenating the 8-bit high and low accelerometer and
magnetometer data registers. They can be converted to units of g and
gauss using the conversion factors specified in the datasheet for your
particular device and full scale setting (gain).
Example: An LSM303D gives a magnetometer X axis reading of 1982 with
its default full scale setting of +/- 4 gauss. The M_GN specification
in the LSM303D datasheet (page 10) states a conversion factor of 0.160
mgauss/LSB (least significant bit) at this FS setting, so the raw
reading of -1982 corresponds to 1982 * 0.160 = 317.1 mgauss =
0.3171 gauss.
In the LSM303DLHC, LSM303DLM, and LSM303DLH, the acceleration data
registers actually contain a left-aligned 12-bit number, so the lowest
4 bits are always 0, and the values should be shifted right by 4 bits
(divided by 16) to be consistent with the conversion factors specified
in the datasheets.
Example: An LSM303DLH gives an accelerometer Z axis reading of -16144
with its default full scale setting of +/- 2 g. Dropping the lowest 4
bits gives a 12-bit raw value of -1009. The LA_So specification in the
LSM303DLH datasheet (page 11) states a conversion factor of 1 mg/digit
at this FS setting, so the value of -1009 corresponds to -1009 * 1 =
1009 mg = 1.009 g.
*/
#include <Wire.h>
#include <LSM303.h>
LSM303 compass;
char report[80];
void setup()
{
Serial.begin(9600);
Wire.begin();
compass.init();
compass.enableDefault();
}
void loop()
{
compass.read();
snprintf(report, sizeof(report), "A: %6d %6d %6d M: %6d %6d %6d",
compass.a.x, compass.a.y, compass.a.z,
compass.m.x, compass.m.y, compass.m.z);
Serial.println(report);
delay(100);
}
Toutefois, l'Arduino ne clignote pas (ce qui signifie qu'elle ne communique pas via le Serial). Je pensais que le code fonctionnait sans qu'on y touche, mais il semble que ce n'est pas le cas. Y a-t-il une modification à faire?
Merci!
Être conscient de son ignorance, c'est tendre vers la connaissance - Benjamin Disraeli
Tu as essayé de faire l'envoi d'une seule composante juste pour voir ce qui se passe ? genre Serial.println(compass.a.y); à la place de tout le bordel se sprintf ?
Elle crée un objet de type "LSM303" qui s'appelle compass.
Je peux pas vraiment te faire un cours sur la programmation orienté objet non plus.
Si tu as lu le cours Arduino, ca te rapel peut etre la librairie "LiquidCrystal" ou justement il fallait l'inclure et ensuite un créeait un object liquidCrystal en écriveant
LiquidCrystal lcd par exemple.
Les circuits étaient bons. Le problème était que la boussole était trop "lousse", j'ai donc fait un peu de soudure et la boussole est maintenant détectée!
Être conscient de son ignorance, c'est tendre vers la connaissance - Benjamin Disraeli
Problème avec boussole électronique
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !