No frenes en una sala vacía
Arduino C++El sketch del parachoques de este robot enciende el freno (D13) cuando algo está a menos de 20 cm. Funciona contra una pared, pero en una sala despejada también frena: cuando nada hace eco, pulseIn() devuelve 0, y 0 cm es "a menos de 20". Frena solo cuando de verdad ha habido un eco por debajo de 20 cm. La pared está a 80 cm, a 15 cm a los 1,5 s, desaparece a los 3 s y está a 8 cm a los 4,5 s.
Comprobaciones
- Aún sin ejecutarSe ejecuta
- Aún sin ejecutarPared a 80 cm: no frena
- Aún sin ejecutarPared a 15 cm: frena
- Aún sin ejecutarSala vacía: no frena
- Aún sin ejecutarPared a 8 cm: frena
Pistas
- ping() devuelve 0 cuando no ha vuelto nada. 0 no es una distancia.
- Las dos cosas tienen que cumplirse: ha habido eco, y estaba cerca.
- bool brake = cm > 0 && cm < 20;