Paso 3: Programar el arduino
Aquí es una simple ruptura del código:
#include
Servo myservo; crear objeto servo para controlar un servo
Servo myservo1;
int incomingByte = 0, datacount = 0, contador = 0, listo = 0; para los datos entrantes en serie
datos Char [10];
const char verificar [8] = "ma11hew";
comando de Char [3];
void setup() {}
myservo.Attach(9);
myservo1.Attach(10);
Serial.Begin(38400); abre el puerto serie, sistemas de la tarifa de datos
Serial.println ("Hola Arduino aquí!"); añadido para ayudar a identificar el puerto serie
Esto solo configura el puerto serie y los servos.
int i;
para (i = 0; i < 180; i ++)
{
myservo.Write(i);
Delay(15);
}
myservo.Write(5);
para (i = 0; i < 180; i ++)
{
myservo1.Write(i);
Delay(15);
}
myservo1.Write(5);
}
Simple movimiento de barrido para verificar los servos funcionan correctamente.
void loop() {}
listo = 0;
Contador = 0;
mientras (1 == 1)
{
Si (Serial.read()! = verify[counter])
{
rotura;
}
if(Counter == 6)
{
Delay(20);
comando [0] = Serial.read();
comando [1] = Serial.read();
Si (Serial.read() == ((comando [1] * 12) % 8))
// {
listo = 1;
//}
Serial.println ("guarda orden");
}
contador ++;
Delay(2);
}
Esto comprueba el búfer de serie para la cadena de autorización correcto entonces agarra dos bytes para el comando.
los comentados si Declaración permite una suma de comprobación improvisado pero haría duro interfaz manual.
listo se puede establecer en 0 por lo que los comandos no se analizar como en el caso de datos dañados.
a través de comandos de búsqueda
Si (listo == 1)
{
Si (comando [0] == ' t ')
{
comando [0] = 0;
Serial.Print ("acelerador en el pin 9 a:");
Serial.println (mapa (comando [1], 32, 2, 126, 180), DEC);
myservo.Write (mapa (comando [1], 32, 2, 126, 180));
}
Si (comando [0] == de ')
{
comando [0] = 0;
Serial.Print ("acelerador en el pin 10 a:");
Serial.println (mapa (comando [1], 32, 2, 126, 180), DEC);
myservo1.Write (mapa (comando [1], 32, 2, 126, 180));
}
}
}
el resto del código es buscar [] comando comandos válida (T o S.)
Si bien coincide con toma el siguiente byte y envía al servo.
más en el mapa (comando [1], 32, 2, 126, 180) más adelante...
el código aquí es extensible para cualquier cosa que necesites (ej. luces, motores, IR, etc..)
Este código debería funcionar bien sin modificaciones.