Paso 3: Código para el Rover
int E1 = 6; M1 Control de velocidad
int E2 = 5; M2 Control de velocidad
int M1 = 8; M1 Control de la dirección
int M2 = 7; M2 Control de dirección
int LED = 13;
void setup(void)
{
int i;
para (i = 5; i < = 8; i ++)
pinMode (i, salida);
pinMode (13, salida);
Serial.Begin(9600);
}
void loop(void)
{
mientras que (Serial.available() < 0) {} / / esperar a que se recibe un carácter
char val = Serial.read();
int leftspeed = 255; 255 es la velocidad máxima
int rightspeed = 255;
Switch(Val) / / realizar alguna acción dependiendo el comando
{
caso 'w': / / avanzar
adelante (leftspeed, rightspeed);
rotura;
de caso ': / / mover hacia atrás
inversa (leftspeed, rightspeed);
rotura;
caso 'a': / / girar a la izquierda
izquierda (leftspeed, rightspeed);
rotura;
caso sería ': / / girar a la derecha
derecha (leftspeed, rightspeed);
rotura;
caso 'l': / / LED
blink_LED();
rotura;
caso 'f': / / Stop
STOP();
rotura;
por defecto:
rotura;
}
}
anular //Stop parada (vacío)
{
digitalWrite(E1,LOW);
digitalWrite(E2,LOW);
}
void forward (char a, char b).
{
analogWrite (E1, una);
digitalWrite(M1,LOW);
analogWrite (E2, b);
digitalWrite(M2,LOW);
}
void reverse (char a, char b).
{
analogWrite (E1, una);
digitalWrite(M1,HIGH);
analogWrite (E2, b);
digitalWrite(M2,HIGH);
}
Anular izquierdo (char a, char b).
{
analogWrite (E1, una);
digitalWrite(M1,HIGH);
analogWrite (E2, b);
digitalWrite(M2,LOW);
}
anular derecho (char a, char b).
{
analogWrite (E1, una);
digitalWrite(M1,LOW);
analogWrite (E2, b);
digitalWrite(M2,HIGH);
}
void blink_LED)
{
digitalWrite (LED, alta);
Delay(200);
digitalWrite (LED, baja);
Delay(100);
digitalWrite (LED, alta);
Delay(200);
digitalWrite (LED, baja);
}