Paso 4: Conectar la brújula
Al principio, traté de pegar cabeceras (ver imagen 2). Me habría ido con macho a hembra, pero macho a macho eran todo lo que tenía ahí. de todos modos, no ha funcionado bien. La soldadura no ataría las cabeceras a la Junta. La soldadura que acababa no gusta las cabeceras que tenía, pero pegando los cables y soldarles funcionaron tan bien que no recomiendo intentar ir con encabezados.
La brújula tendrá 4 pines; GND, VCC, SDA, SDL. Están la etiqueta, sino por referencia a mis fotos: blanco-rojo-amarillo-blanco = GND VCC-SDA-SDL. Conectar el pin GND a tierra y el pin VCC a 3.3V hacia fuera. Aquí es donde tiene el arduino es agradable; llegar a 3.3 y 5V reguladores a bordo y se puede ejecutar fácilmente de una batería de 9V (rango 5-20V, recomendado 7-12V), que vamos a llegar a en un poco. de todos modos, enganche el pin SDA hasta pin analógico A4 (20) y el SDL hasta pin A5 (21). Tenga en cuenta que estos chips pierden cerca de 2 grados de precisión para cada 1 grado de inclinación y no fiable más allá de 10-15 grados de inclinación, así que usted querrá mantener plana. El código al final de este paso en el microprocesador de la carga y abrir la interfaz de serie mientras está conectado (ctrl + Mayús + M en la interfaz de Arduino) para comprobar la salida.
En aras de ayudar a no repetir mis errores, puedo ofrecer algún consejo solución de problemas: si al probar el chip, recibe una corriente de 0.0 grados, compruebe el voltaje y las conexiones de los pins de la tierra. Si no recibe ninguna salida en absoluto, compruebe sus pernos de SLA y SLD. de todos modos, aquí está el código para probar la brújula: (véase la introducción para la citación, la página brújula digital también tiene una gran imagen que muestra la mejor que pude dónde conectar los pins de lógica si aún confundido).
#include < Wire.h >
void setup()
{
Serial.Begin(9600);
Wire.Begin();
}
void loop()
{
Wire.beginTransmission(0x21);
Wire.Write("A");
Delay(100);
Wire.requestFrom(0x21, 2);
el byte MSB = Wire.read();
octeto LSB = Wire.read();
Wire.endTransmission();
flotador de degs = ((MSB << 8) + LSB) / 10;
Serial.Print(DEGs);
Serial.println ("grados.");
Delay(100);
}