Etape 4: Raccorder la boussole
Au début, j’ai essayé de coller les en-têtes sur (voir image 2). Je serais allé avec homme-femme, mais -mâle étaient toutes que j’ai dû traîner. de toute façon, il ne fonctionnait pas bien. La soudure lierait pas les en-têtes au Conseil d’administration. Probablement la soudure que je venais n’aimait pas les en-têtes, j’ai eu, mais coller les fils et les souder travaillaient si bien que je ne recommande pas essayer d’aller avec des en-têtes.
Votre boussole aura 4 broches ; GND, SCR, SDA, SDL. Ils sont étiquetés, mais pour la référence à mes photos : blanc-rouge-jaune-blanc = GND-SCR-SDA-SDL. Raccorder la broche GND jusqu’au sol et la broche VCC à 3, 3V out. C’est où avoir l’arduino est agréable ; vous obtenez 3.3 et régulateurs 5V à bord et il se dirige facilement hors d’une pile de 9V (5-20V range, 7-12V recommandé), qui nous y reviendrons dans un peu. en tout cas, accrochez la broche SDA jusqu'à la broche analogique A4 (20) et la SDL jusqu'à la broche A5 (21). Notez que ces puces perdent environ 2 degrés de précision pour tous les degrés d’inclinaison 1 et travaillent pas au-delà de 10 à 15 ° d’inclinaison, alors vous aurez envie de le garder plat. Charger le code à la fin de cette étape sur votre microprocesseur et ouvrez l’interface série quand il est branché (ctrl + Maj + M dans l’interface Arduino) pour vérifier la sortie.
Dans l’intérêt de l’aider vous ne pas répéter mes erreurs, je peux offrir quelques conseils de dépannage : si, lorsque vous testez votre puce, vous obtenez un flux de degrés 0.0, vérifiez votre tension et terre connexions-pins. Si vous n’obtenez pas du tout de n’importe quelle sortie, vérifier vos NIP SLA et SLD. en tout cas, voici le code pour tester votre boussole: (Voir l’intro de la citation, la page boussole numérique a également une grande statue montrant le mieux que je pouvais où les connecter les broches de la logique, si vous êtes encore confus).
#include < Wire.h >
void setup()
{
Serial.Begin(9600) ;
Wire.Begin() ;
}
void loop()
{
Wire.beginTransmission(0x21) ;
Wire.Write("A") ;
Delay(100) ;
Wire.requestFrom(0x21, 2) ;
octet MSB = Wire.read() ;
octet LSB = Wire.read() ;
Wire.endTransmission() ;
flotteur degs = ((MSB << 8) + LSB) / 10 ;
Serial.Print(DEGS) ;
Serial.println ("degrés.") ;
Delay(100) ;
}