Paso 3: Código de Arduino
int ldir = 2; pin de la izquierda en dirección
lpwm int = 5; eje derecho de PWM
rdir int = 3; pin de la izquierda en dirección
int rpwm = 6; eje derecho de PWM
int rs = 255; velocidad principal derecho
int ls = 255; velocidad principal izquierda
rts int = 200; velocidad de giro a la derecha
int lts = 200; Gire a la izquierda velocidad
#define f digitalWrite (ldir, HIGH); analogWrite (lpwm, ls); digitalWrite (rdir, HIGH); analogWrite (rpwm, rs); #define adelante b digitalWrite (ldir, LOW); analogWrite (lpwm, ls); digitalWrite (rdir, LOW); analogWrite (rpwm, rs); hacia atrás
#define l digitalWrite (ldir, LOW); analogWrite (lpwm, lts); digitalWrite (rdir, HIGH); analogWrite (rpwm, rts); #define izquierda r digitalWrite (ldir, HIGH); analogWrite (lpwm, lts); digitalWrite (rdir, LOW); analogWrite (rpwm, rts); #define derecha s analogWrite (lpwm, 0); analogWrite (rpwm, 0); parada
#define delay(50) d;
int estado;
int bandera = 0; se cerciora de que la serie sólo imprime una vez el estado
void setup()
{
pinMode (ldir, salida);
pinMode (lpwm, salida);
pinMode (rdir, salida);
pinMode (rpwm, salida);
Serial.Begin(9600); inicializar la comunicación serial a 9600 bits por segundo
}
void loop()
{
Si alguna fecha se envía, Lee y guarda en estado
if(serial.Available() > 0)
{
Estado = Serial.read();
Bandera = 0;
}
Si (estado == 'w' || estado == 'f')
{
f; d;
if(flag == 0)
{
Serial.println("forward");
bandera = 1;
}
}
Si (estado == de ' || estado == 'b')
{
b; d;
if(flag == 0)
{
Serial.println("REVERSE");
bandera = 1;
}
}
Si (estado == 'a' || estado == 'r')
{
l; d;
if(flag == 0)
{
Serial.println("left");
bandera = 1;
}
}
Si (estado == había ' || estado == 'l')
{
r; d;
if(flag == 0)
{
Serial.println("Right");
bandera = 1;
}
}
otra cosa
{
s;
if(flag == 0)
{
Serial.println("");
bandera = 1;
}
}
}