Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Controlador de ventilador de gabinete AV

Componentes y suministros

Arduino Nano R3
× 1
Sensor de temperatura y humedad DHT11 (4 pines)
× 1
Módulo de relé de 5 V CC
× 1

Acerca de este proyecto

Mi receptor de AV estaba funcionando muy caliente, así que quería agregar un ventilador de gabinete antes del calor del verano. Al principio intenté encontrar una fuente de CC de 5-12 V en el exterior del receptor que se enciende solo cuando el receptor está encendido, pero solo pude encontrar algunos lugares dentro del receptor. También quería que los ventiladores funcionaran durante un tiempo después de que el receptor se apagara, y dimensionar los capacitores para eso estaba empezando a ser complicado.

Temperatura ambiente 75F, temperatura del gabinete 109F

Miré los ventiladores con temperatura controlada en Amazon y todos parecían más caros de lo que pensé que deberían ser. Todos costaban más de $ 30 y eran básicamente solo un ventilador, una sonda de temperatura y un relé ... Miré en mi contenedor de repuestos y ya tenía todo eso.

Sí, eso debería hacerlo

Primero escribí un pequeño boceto para un Arduino Nano chino de $ 2. Se agregó un sensor de temperatura DHT11 y un relé de 5v CC y funcionó a las mil maravillas.

Prototipo rápido

A continuación, tuve que encontrar algunos ventiladores de PC viejos que giraran y movieran el aire con solo 5v, ya que quería que todo funcionara con un viejo cargador de teléfono USB. Encontré dos ventiladores de 80 mm y uno de 120 mm que todavía movían suficiente CFM a 5v y permanecían por debajo de 200mA, así que corté la conexión Molex y los conecté como USB.

Todo estaba funcionando en la placa de pruebas, así que terminé agregando algunos LED de estado y un zumbador piezoeléctrico para una alarma de sobrecalentamiento. Todo encajaba muy bien en una pequeña caja de proyecto que tenía.

El ajuste perfecto requiere mucho pegamento caliente para evitar pantalones cortos Agradable y compacto, y se integra con el resto del equipo AV LED de estado:arriba a la izquierda =alimentación (verde); abajo a la izquierda =temperatura OK (verde); medio =ventiladores encendidos (naranja); derecha =sobrecalentamiento (rojo)

El controlador pasa por un POST de inicio para mostrar que todos los ventiladores, LED y alarma piezo están funcionando

Poder en la auto prueba



Bosquejo de Arduino:


El controlador toma la temperatura promedio en un lapso de 30 segundos. Si está por encima de los 95 ° F, el ventilador se enciende durante 5 minutos antes de verificar nuevamente. Si la temperatura es superior a 120 ° F, la alarma suena mientras los ventiladores continúan funcionando. La alarma suena cada 30 segundos hasta que la temperatura vuelve a bajar a 120 ° F.

Salida serial

En la práctica, los ventiladores se activan aproximadamente 2 minutos después de que se enciende el receptor y funcionarán todo el tiempo que esté encendido. Después de apagar el centro multimedia, los ventiladores funcionan durante al menos 5 minutos antes de que la temperatura descienda por debajo de los 95 ° F. Hasta ahora no se ha disparado la alarma de sobrecalentamiento.

Si estuviera haciendo este proyecto nuevamente, buscaría reemplazar el Arduino Nano con un ATtiny85 y el relé con un MOSFET. Este sería un factor de forma mucho más pequeño y también me permitiría usar PWM para controlar la velocidad del ventilador.

Código

  • FanTempController
FanTempController C / C ++
Boceto de Arduino que usa la lectura de temperatura promedio de un sensor DHT11 para encender un ventilador a través de un relé.
 // Controlador de temperatura para gabinete de A / V // El ventilador es controlado por un relé de 10A conectado a un 12v (computadora) o 5v (USB) Ventilador // Alarma piezoeléctrica para alerta de sobrecalentamiento alternativoint FANTEMP =95; // Alta temperatura a la que se enciende el ventilador (90 * F) int ALARMTEMP =120; // Temperatura de sobrecalentamiento (120 * F) int FANLED =2; // Pin para ventilador "en" LEDint TEMPOK =3; // LED para cuando la temperatura está por debajo de FANTEMPint ALARMLED =4; // LED de alarma int ALARMPIN =7; // Alarma audible por sobrecalentamiento // DHTPIN =8; (definido a continuación) int FANPIN =9; // Relé para interruptor de ventilador # incluye "DHT.h" // Escrito por ladyada, dominio público # define DHTPIN 8 // Sensor DHT // ¡Descomenta el tipo que estés usando! #Define DHTTYPE DHT11 // DHT 11 // # define DHTTYPE DHT22 // DHT 22 (AM2302) // # define DHTTYPE DHT21 // DHT 21 (AM2301) // Inicializa el sensor DHT para ArduinoDHT dht normal de 16 mhz (DHTPIN, DHTTYPE); // NOTA:Para trabajar con un chip más rápido, como un Arduino Due o Teensy, // es posible que deba aumentar el umbral para los recuentos de ciclos considerados 1 o 0.// Puede hacer esto pasando un tercer parámetro para este umbral. Es un poco // complicado encontrar el valor correcto, pero en general, cuanto más rápida es la CPU, // mayor es el valor. El valor predeterminado para un AVR de 16 mhz es un valor de 6. Para un // Arduino Due que se ejecuta a 84 mhz, un valor de 30 funciona. // Ejemplo para inicializar el sensor DHT para Arduino Due:// DHT dht (DHTPIN, DHTTYPE, 30); // Lecturas utilizadas para averageconst int numReadings =10; // Establecer variables en zerofloat avetemp =0; temperatura de flotación =0; retardo de comprobación de flotación =0; configuración vacía () {Serial.begin (9600); Serial.println ("Monitor de temperatura iniciado"); dht.begin (); pinMode (FANPIN, SALIDA); pinMode (ALARMPIN, SALIDA); pinMode (ALARMLED, OUTPUT); pinMode (VENTILADO, SALIDA); pinMode (TEMPOK, SALIDA); escritura digital (FANPIN, ALTA); digitalWrite (FANLED, HIGH); digitalWrite (ALARMLED, HIGH); escritura digital (TEMPOK, ALTA); for (int x =0; x <5; x ++) {// Prueba de tono de alarma (ALARMPIN, 220 * x, 75); retraso (100); } Serial.print ("Prueba de ventilador iniciada (5 segundos)"); para (int x =0; x <5; x ++) {Serial.print ("."); retraso (1000); } Serial.println ("Listo"); digitalWrite (FANPIN, BAJO); digitalWrite (VENTILADO, BAJO); digitalWrite (ALARMLED, LOW); escritura digital (TEMPOK, BAJA); noTone (ALARMPIN); } void loop () {// Espere unos segundos entre mediciones. retraso (2000); temp =0; Serial.print ("Temperatura en tiempo real:\ t"); for (int x =0; x 
 ALARMTEMP) {digitalWrite (ALARMLED, HIGH); Serial.print ("La temperatura ha terminado"); Serial.print (ALARMTEMP); Serial.println (", la alarma está activada"); for (int x =0; x <3; x ++) {// Hacer sonar la alarma durante 5 segundos (ALARMPIN, 660, 1000); // El ventilador ya debería estar funcionando desde el último bucle, de lo contrario, se iniciará justo después de que suene la alarma delay (500); tono (ALARMPIN, 440, 1000); retraso (500); } noTone (ALARMPIN); checkdelay =30000; // Cambia el retardo normal de 5 minutos a 30 segundos antes de volver a pasar por el bucle} else {digitalWrite (ALARMLED, LOW); Serial.print ("La temperatura está por debajo de"); Serial.print (ALARMTEMP); Serial.println (", la alarma está apagada"); checkdelay =300000; // A menos que la temperatura sea superior a 120 * F, el ventilador funciona durante 5 minutos antes de que se vuelva a verificar la temperatura} // Encienda el ventilador si el gabinete está caliente if (avetemp>
 FANTEMP) {digitalWrite (FANPIN, HIGH); digitalWrite (FANLED, HIGH); escritura digital (TEMPOK, BAJA); Serial.print ("La temperatura ha terminado"); Serial.print (FANTEMP); Serial.print (", El ventilador está encendido (para"); Serial.print (checkdelay / 1000/60); Serial.println ("minutos)"); retraso (checkdelay); // enciende un mínimo de 5 min (a menos que la alarma se apague, luego se repite después de 30 segundos)} else {digitalWrite (FANPIN, LOW); digitalWrite (VENTILADO, BAJO); escritura digital (TEMPOK, ALTA); Serial.print ("La temperatura está por debajo de"); Serial.print (FANTEMP); Serial.println (", el ventilador está apagado"); // Cuando el ventilador está apagado, la temperatura se lee cada 30 segundos} Serial.println (); Serial.println (); } 

Esquemas


Proceso de manufactura

  1. Controlador de potencia PWM
  2. Archivador
  3. Ventilador de temperatura controlada
  4. Resolución de problemas de vibración del ventilador
  5. Controlador DMX operado por la web
  6. Dispositivo de automatización de tareas de videojuegos
  7. Controlador de juego Arduino
  8. Unopad - Controlador MIDI Arduino con Ableton
  9. Controlador de pantalla fluorescente al vacío
  10. Controlador Arduino Home activado por Alexa
  11. Controlador de brazo robótico MK2 Plus