Paso 18: Programa para Bot autónomo
El programa - es un programa sencillo que permite al bot a avanzar durante 3 segundos, detener entonces mover hacia atrás por 3 segundos, girar a la derecha durante 3 segundos y luego a la izquierda durante 3 segundos. Desarrollé este programa después de 15 horas de i+d. La gran ventaja de este programa es que todos mis subrutinas para moverse adelante, atrás, giro, parada, etc. están listos que me ayudaría enormemente en los próximos modelos.
He adjuntado el programa:
void setup() {}
pinMode (8, salida); Input1 de Motor1 en Pin 8 de Arduino
pinMode (9, salida); Entrada2 de Motor1 en Pin 9 del Arduino
pinMode (10, salida); Input1 del Motor2 en Pin 10 del Arduino
pinMode (11, salida); Entrada2 de Motor2 en 11 pines de Arduino
}
void loop() {}
Halt(); Parada de ambos motores. Esto da movimiento suave evitando saltos del motor mientras se cambia la rotación inmediatamente
Forward(); Adelante a la función que a su vez llama a las funciones Forward1 y Forward2
Delay(3000); Retardo de 3 segundos
Halt(); Parar el Robot
Delay(250); Retardo de 0.1 segundos antes de arrancar cualquier motor nuevo para movimiento suave (sin kick)
REVERSE(); La función inversa que a su vez llama a las funciones Reverse1 y Reverse2
Delay(3000); Retardo de 3 segundos
}
void Forward() {/ / mover Robot hacia delante es decir, ambos motores se mueve hacia adelante
Forward1(); Motor1 avanza
Delay(150); Retardo de 0,15 segundos antes de segundo se pone en marcha evitar cargar las baterías
Forward2(); Motor2 avanza
}
void Reverse() {/ / Robot mueva hacia atrás, es decir dos motores se mueve marcha atrás
Reverse1(); Motor1 se mueve hacia atrás
Delay(150); Retardo de 0,15 segundos antes de segundo se pone en marcha evitar cargar las baterías
Reverse2(); Motor2 se mueve hacia atrás
}
void Halt() {/ / ambos motores se paran (no rotura que es abruptamente)
Halt1();
Halt2(); Parada de ambos motores. Esto da movimiento suave evitando saltos del motor mientras se cambia la rotación inmediatamente
}
void Forward1() {/ / Motor1 se mueve hacia adelante (sentido horario)
digitalWrite (8, HIGH);
digitalWrite (9, bajo);
}
void Forward2() {/ / Motor2 avanza (sentido horario)
digitalWrite (10, HIGH);
digitalWrite (11, bajo);
}
void Reverse1() {/ / Motor1 se mueve marcha atrás (Anti horario)
digitalWrite (8, bajo);
digitalWrite (9, alto);
}
void Reverse2() {/ / Motor2 se mueve marcha atrás (Anti horario)
digitalWrite (10, bajo);
digitalWrite (11, alto);
}
void Halt1() {/ / Motor1 detener (no rotura que es abruptamente)
digitalWrite (8, bajo);
digitalWrite (9, bajo);
}
void Halt2() {/ / Motor2 detener (no rotura que es abruptamente)
digitalWrite (10, bajo);
digitalWrite (11, bajo);
}
void Stop1() {/ / Motor1 romper es decir abrupto detener
digitalWrite (8, bajo);
digitalWrite (9, bajo);
}
void Stop2() {/ / detener el Motor2 romper es decir abrupto
digitalWrite (10, bajo);
digitalWrite (11, bajo);
}