¡Hola a todos!
Hoy es un artículo sobre un interruptor de proximidad con efecto de sonido, que hice yo hace 9 años, o para ser precisos, en enero de 2012.
Desde entonces, el interruptor ha estado trabajando conmigo las 24 horas del día durante 9 años. Lo más interesante, durante todo este tiempo, no ha fallado y ni siquiera ha colgado, y nunca ha tenido falsos positivos. En general, ha demostrado su eficacia y puedo recomendarlo con confianza para el autoensamblaje.
Si está interesado en los detalles, por favor, debajo de cat.
Tengo 7 lámparas montadas en el pasillo.
Y para lograr un hermoso efecto visual, utilicé el cambio secuencial de lámparas, para ello necesitaba estirar un cable separado desde cada punto de iluminación hasta la placa controladora.
Escondí el tablero en el espacio entre el panel de yeso y el techo, ya que hay espacio más que suficiente.
Coloqué el receptor de infrarrojos y el LED en el enchufe. Para evitar falsas alarmas es necesario aislarlas unas de otras, para ello utilicé una batista retráctil. Para conectar este sensor óptico a la placa controladora, utilizo los cables incrustados en la pared.
Para que el diseño del interruptor no difiera de otras superposiciones decorativas instaladas en el interior, utilicé una salida de TV de la misma serie, de la cual tiré todo el interior y pegué una ventana redonda cortada de acrílico púrpura en el orificio.
Todos los componentes se colocaron en una placa, en la que también se instalaron conectores de tornillo para conectar los cables de las lámparas.
Encendí esta placa con un cargador de teléfono normal.
La base de todo el dispositivo es el controlador arduino Nano V.3, pero también puede usar cualquier otra placa con el microcontrolador Atmega328.
Se puede sacar un LED IR con un fototransistor del sensor de obstáculos, pero no es necesario soldarlos, basta con cortar las pistas extra y soldarles 3 cables. Si ya tiene estas piezas previamente soldadas en algún lugar, entonces, antes de usarlas, es mejor verificar primero su operatividad. El LED infrarrojo debe estar conectado a un voltaje de 5 V, a través de una resistencia limitadora de corriente de 120 Ohm y mirarlo a través de la cámara del teléfono, debe brillar con una luz violeta. Para probar el fototransistor, necesitará cualquier probador con función de continuidad de conductor. Transferimos el probador al modo de marcación y conectamos los cables del fototransistor a las sondas del probador. Luego, debe llevar cualquier control remoto de los electrodomésticos con firmeza y presionar cualquier botón. En respuesta, se escuchará un chirrido intermitente.
Hace 9 años no encontré relés de estado sólido adecuados y tuve que ensamblarlos yo mismo a partir de componentes de radio. Pero por el momento, es más fácil comprar un módulo de relé de estado sólido de 8 canales como en la imagen que perder el tiempo buscando estos componentes.
El interruptor funciona de la siguiente manera
El Arduino emite una señal PWM constante desde la salida D5 con una frecuencia de aproximadamente 977 Hz. Un LED que emite una señal en el rango de infrarrojos se conecta a esta salida a través de una resistencia limitadora de corriente de 82 ohmios. El fototransistor conectado a la entrada D2 detecta la señal IR reflejada por la mano y verifica su plausibilidad, y si una señal de 20 o más períodos consecutivos corresponde a una frecuencia de 977 Hz, entonces el controlador enciende las 7 lámparas a su vez y comienza a reproducir un efecto de sonido a través de la salida PWM. D11. Lo mismo sucede cuando apagas.
Reproducir sonidos
Para reproducir efectos de sonido se utiliza el formato WAVE sin comprimir, con una frecuencia de 16000 Hz y una profundidad de 8 bits, pero cuando este formato se reproduce mediante PWM se observa un siseo y un siseo desagradables en la ruta de audio. Por lo tanto, para mejorar la calidad de reproducción, utilicé la interpolación lineal en el código. En el cual, el muestreo de muestras ocurre a una frecuencia de 62.5 kHz y entre las muestras originales se insertan 3 muestras adicionales, calculadas por el método de interpolación lineal. Por lo tanto, el ruido de cuantificación se reduce en la salida, desaparecen los silbidos, se mejora la calidad del sonido y no se requieren filtros RC adicionales para la reproducción.
En lugar de un altavoz, utilicé un altavoz de computadora pequeño y antiguo sin amplificador incorporado.
Para convertir archivos Wave a código C, puede utilizar un convertidor en línea .
Esquema
En el diagrama, marqué relés de estado sólido con rectángulos grises, y para aquellos que quieran confundirse, pueden ensamblar el circuito por completo, tal como lo hice en el pasado distante.
Componentes para montaje
1 - Arduino Nano V.3
2 - Sensor de obstáculos
3 - Módulo de relé de 8 canales
4 - Resistencias 82 Ohm y 1 kOhm
5 - Altavoz 0,5 - 3 W
6 - Cualquier transistor NPN con una corriente admisible de al menos 500 mA
Código Arduino
Descargar todos los archivos en un solo archivo
Esta vez decidí agregar todas las bibliotecas utilizadas a la carpeta con el boceto, y en el boceto mismo registré su uso local. Ahora espero que los novatos tengan menos preguntas para mí acerca de los errores que encuentran al compilar.
El código contiene varias constantes que se pueden cambiar antes de parpadear.
La constante power_ir es responsable de la distancia de operación del interruptor, puede tomar valores desde un mínimo de 20 hasta un máximo de 200. El valor requerido se puede determinar experimentalmente.
lamp_num: determina el número de lámparas que está utilizando. El número mínimo de lámparas no puede ser inferior a 1 y el máximo no superior a 7. Si corrige el código, puede aumentarlo a 15.
lamp_delay es el retraso entre encendidos consecutivos de lámparas, que se expresa en milisegundos y puede comenzar de 0 a 4294967295 ms. Aunque no creo que nadie necesite retrasos tan grandes.
Vídeo
Para ver el video, haga clic en la imagen.
Conclusión
En conclusión, me gustaría agregar que estoy muy sorprendido de que un microcontrolador sin WDT nunca haya colgado durante 9 años. Por la misma razón, no edité el código ni le agregué WDT, ya que Arduino con el cargador de arranque antiguo no puede funcionar con él.
¡Gracias por leer hasta el final!
Si te gustó mi artículo, apóyalo con un me gusta y una suscripción.
Si tiene alguna pregunta, puede hacerla en los comentarios.