El Botón de Inicio
Un robot que arranca solo es peligroso y difícil de calibrar. Usaremos un módulo pulsador conectado al Pin 11.
Lógica de Control “Esperar y Arrancar”
Implementaremos una función llamada Iniciar() que gestione el flujo de seguridad. El robot debe esperar a que el usuario interactúe antes de encender los motores.
El Algoritmo Correcto
- Esperar: Ciclo infinito hasta detectar el botón presionado.
- Antirrebote: Un pequeño delay para confirmar que es una pulsación real.
- Soltar: Esperar a que el usuario retire el dedo. ¡Esto es clave! Si arranca mientras presionas, moverás el robot de su posición ideal.
- Confirmación: Emitir un sonido (si tienes buzzer) o parpadear el LED y arrancar.
void Iniciar() {
while(digitalRead(11) == HIGH); // Espera presión (asumiendo Pull-up)
delay(200); // Antirrebote
while(digitalRead(11) == LOW); // Espera a que sueltes
delay(500); // Tiempo de gracia para retirar la mano
}
[!DEBUG] ¿Arranca solo? Revisa si tu pulsador es normalmente abierto o cerrado. Si el robot sale disparado sin tocar nada, invierte la lógica de
HIGHyLOWen el código.