Paso 5: Terminar el prototipo
¡ Excelente! Ahora tienes un título y 8 motores listos para buzz en su hacer una oferta. Deben todos ser enchufados en el Arduino, también. Aquí está el código que utiliza para combinar los dos. Nota que mantuve la interfaz en serie para que sea capaz de solucionarlo problemas. Usted querrá compensar regiones de activación de cada motor por un cierto número de grados basado en rumbo de la brújula en relación con su lugar en el cinturón una vez que tienes todo junto, y es bueno poder ver a cuantos grados quiere compensar por. Esa parte debe esperar hasta tener el cinturón puesto juntos, sin embargo.#include < Wire.h >
He utilizado clavijas 2-9, ymmv
const int NPin = 2;
const int NEPin = 3;
const int EPin = 4;
const int SEPin = 5;
const int vuelta = 6;
const int SWPin = 7;
const int WPin = 8;
const int NWPin = 9;
void setup()
{
Serial.Begin(9600);
Wire.Begin();
pinMode (NPin, salida);
pinMode (NEPin, salida);
pinMode (EPin, salida);
pinMode (SEPin, salida);
pinMode (SPin, salida);
pinMode (SWPin, salida);
pinMode (WPin, salida);
pinMode (NWPin, salida);
}
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.");
Caso especial con perno del norte para hacer frente a cruce 0 grados.
Si ((degs > = 337,5 & & degs < = 360) || (degs > = 0.0 & & degs < 22.5))
{
digitalWrite (NPin, alto);
}
otra cosa
{
digitalWrite (NPin, LOW);
}
Compruebe todas otras direcciones usando una gama de 45 grados.
Si (degs > = 22. 5 & & degs < 67,5)
{
digitalWrite (NEPin, alto);
}
otra cosa
{
digitalWrite (NEPin, bajo);
}
Si (degs > = 67.5 & & degs < 112.5)
{
digitalWrite (EPin, alto);
}
otra cosa
{
digitalWrite (EPin, LOW);
}
Si (degs > = 112.5 & & degs < 157.5)
{
digitalWrite (SEPin, alto);
}
otra cosa
{
digitalWrite (SEPin, LOW);
}
Si (degs > = 157.5 & & degs < 202.5)
{
digitalWrite (SPin, alto);
}
otra cosa
{
digitalWrite (SPin, LOW);
}
Si (degs > = 202.5 & & degs < 247.5)
{
digitalWrite (SWPin, alto);
}
otra cosa
{
digitalWrite (SWPin, LOW);
}
Si (degs > = 247.5 & & degs < 292.5)
{
digitalWrite (WPin, alto);
}
otra cosa
{
digitalWrite (WPin, LOW);
}
Si (degs > = 292.5 & & degs < 337.5)
{
digitalWrite (NWPin, alto);
}
otra cosa
{
digitalWrite (NWPin, bajo);
}
Delay(100);
}
Que subir o similar, y usted debe conseguir un motor zumbando a la vez, dependiendo de la dirección de la brújula. ¡ Felicidades! Eso es todo. Ahora el problema es, ¿cómo conseguirlo en una correa?