les vencimos · offline
L33. Alarma con sensor
Maestro
Segundo proyecto: si hay algo cerca, suena. Une el ultrasonidos con el zumbador pasivo. Menos de 20 centímetros, nota. Más lejos, silencio. El LED 13 acompaña, para ver la alarma aunque el zumbador sea tímido. Sigue siendo un umbral tuyo: 20 cm es el de la mesa, no una ley.
Trig en 7, echo en 8, zumbador pasivo en 4, LED en 13. Alimentación del sensor a 5V y GND común. La cuenta sigue siendo duración partida por 58. Si pulseIn vuelve con cero, no hubo eco: no dispares la alarma por un cero, que sería un falso susto. El sketch solo pita si hubo eco y la distancia es menor de 20.
pulseIn espera al eco, con un tope de 30 milisegundos. No añadas otro delay de un segundo para que se note: alargarías el silencio entre medidas y alguien pasa sin ser visto.
Si pita siempre, acerca y aleja la mano mirando el LED. Si el LED también se queda fijo, el umbral está mal o el eco está cableado al revés. Si el LED va bien y no hay sonido, el zumbador es activo o el pin 4 no es el que crees. Una causa cada vez.
En la balda Proyectos el mismo gesto puede llamarse de otra forma. El concepto, aquí, es ens-alarma-sensor.
Montaje
Pines de esta lección
Por qué
Esta alarma junta dos oficios que ya has hecho: medir distancia y hacer sonar un pasivo. No hay idea nueva de electricidad. Hay una regla de proyecto: las dos salidas, luz y sonido, obedecen al mismo if, para que no puedan contradecirse. Si el LED se enciende y el zumbador calla, el fallo es del pin 4, no de la medida.
tone(4, 880) mientras haya intruso, noTone cuando no lo haya. Si olvidas noTone, el pitido sigue después de apartarte, porque la nota no tiene fin por sí misma. El delay de 50 ms deja respirar al sensor. No lo subas a un segundo o la alarma irá a tirones y perderás un paso rápido.
El zumbador es pasivo y va entre el pin 4 y GND. No lo alimentes del 5 V. El sensor sí va al 5 V. Son dos componentes distintos con dos hambres distintas. La masa de los dos es la de la placa.
20 cm se queda. Cambiarlo es decidir otra alarma, y se puede, pero se anota. Un pasillo estrecho con 20 cm pitará siempre, porque la pared de enfrente está más cerca. Eso no es un sensor averiado: es un umbral mal elegido para el sitio. Se calibra el sitio, como con el LDR.
Práctica
- Monta el HC-SR04: 5 V, GND, trig 7, echo 8.
- Zumbador pasivo del pin 4 a GND. LED del 13 como ya sabes.
- Carga. Mano a 10 cm: luz y sonido. Mano a un metro: ni luz ni sonido.
- Quita a propósito noTone, prueba, oye que se queda, y vuelve a ponerlo.
- Apunta el sensor a una pared cercana. Si pita siempre, apunta al hueco de la habitación o sube el sitio, no el código, primero.
- Tapa el sensor con la mano en el lateral, sin eco. Tiene que callar, porque duracion es 0.
- Déjalo callado antes de salir. Una alarma que se queda pitando no está terminada.
Práctica en la página
Por debajo de 20 cm hay luz y aviso. Arranca en 12 cm. La simulación arranca encendida.
Ejemplos resueltos
Luce y no suena
El if está bien porque el LED obedece. El zumbador es activo, o está al revés, o se cableó al pin 3.
Se prueba tone en el 4 con el sensor desconectado un momento. Si ahí no suena, el fallo es el zumbador o el pin, y no se recalibra la distancia.
Pita a un metro
Se borró la condición de los 20 cm. Cualquier eco es alarma, y en una habitación siempre hay eco.
Se devuelve cm menor que 20 junto a duracion mayor que 0. Las dos. Luego se decide si 20 es el sitio bueno.
Soldadura y seguridad
En una caja, el sensor mira por un agujero y no queda con los hilos pellizcados. Se sueldan alargues de trig y echo por separado, nunca en un solo pegote, con la placa apagada.
El zumbador se queda fuera de la caja o con una rendija. Soldado del revés, un pasivo con polaridad calla y se culpa al umbral. Mira el más antes de cerrar la caja.
En la mesa
Haz la demo en dos distancias que quepan en la habitación, marcadas en el suelo con un papel: a diez centímetros pita y luce; a un metro, calla y se apaga. Si a un metro pita, gira el sensor y comprueba que no tiene una silla en el cono. Si con el cono libre sigue, el número veinte se ha perdido en el if. No subas a cien para callarlo: estarías apagando la alarma.
Pasa la mano rápido. Con el delay de cincuenta milisegundos tiene que pillarte. Si solo pilla una mano lenta, hay una espera larga metida para calmar el pitido. Se quita. El pitido se calma con noTone cuando te vas, no con un sensor dormido.
Deja el sensor callado, apuntando al hueco, antes de levantarte. Una alarma que se queda sonando no está demostrada: está olvidada.
Sketch
const int trig = 7;
const int echo = 8;
void setup() {
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(13, OUTPUT);
pinMode(4, OUTPUT);
digitalWrite(trig, LOW);
}
void loop() {
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
long duracion = pulseIn(echo, HIGH, 30000);
long cm = duracion / 58;
if (duracion > 0 && cm < 20) {
digitalWrite(13, HIGH);
tone(4, 880);
} else {
digitalWrite(13, LOW);
noTone(4);
}
delay(50);
}
Ejercicio
Monta sensor y zumbador. La mano a un palmo tiene que hacer sonar y encender el 13. Al retirarla, silencio. Si pita sin mano, no bajes el umbral a cero: revisa el eco.
Autoevaluación
1. ¿Por qué un eco de duración cero no debe disparar la alarma?
Porque no es una distancia. Es una medida fallida.
2. ¿Qué pin pita en este proyecto?
El 4, con tone, zumbador pasivo.
3. ¿El umbral de 20 cm es obligatorio fuera de tu mesa?
No. Es el de práctica. Se calibra como cualquier otro.