Crear un ventilador controlado por temperatura
Normalmente para cambiar la velocidad del ventilador hay una perilla designada para controlar la velocidad del ventilador y se puede ajustar manualmente. Sin embargo, podemos hacer que la velocidad del ventilador dependa de la temperatura de un área. Entonces, la velocidad del ventilador se ajustará automáticamente a medida que cambia la temperatura de esa área. Los componentes que hemos utilizado para crear un ventilador controlado por temperatura son:
Por lo tanto, el esquema para el circuito de controlar la velocidad del ventilador con respecto a la temperatura se da como:
Ensamblaje de hardware para crear un ventilador controlado por temperatura usando Arduino Uno
La imagen que se publica a continuación muestra las conexiones de cada componente entrelazado con Arduino Uno.
Los cables rosados conectan el LCD con Arduino Uno y el cable gris conecta el potenciómetro con LCD para controlar el brillo de la pantalla LCD.
Además, hemos conectado el sensor de temperatura directamente en los pines de Arduino para evitar cualquier distorsión en la salida del sensor. Para conectar los componentes con la fuente de alimentación, hemos utilizado los 5 voltios y la tierra del Arduino.
Código Arduino para el ventilador controlado por temperatura
El código Arduino compilado para controlar el ventilador según los valores de temperatura se proporciona a continuación:
#Include // Biblioteca para la pantalla LCD
LiquidCrystal LCD (9,8,5,4,3,2); // Arduino Pins para la LCD
int vcc = a0; // suministro de pin a0 de LM35
int vout = a1; // pin A1 para la salida del LM35
int gnd = a2; // pin A2 para la salida del LM35
valor int; // variable utilizada para almacenar los valores que provienen del sensor
int fan = 11; // El pin donde el ventilador está conectado en Arduino
int tempmin = 86; // la temperatura para iniciar el ventilador
int tempMax = 127; // La temperatura máxima
int fanspeed; // variable para la velocidad fuerte del fanático
int fanLcd; // variable para mostrar la velocidad del ventilador porcentual en la pantalla LCD
int tempc; // Temperatura en grado Celsius
int tempf; // Temperatura en Fahrenheit
setup () void
// Asignación de modos a los pines Arduino asignados
PinMode (ventilador, salida);
PinMode (VCC, salida);
PinMode (Vout, entrada);
PinMode (GND, salida);
// Asignación de estados al VCC y los pines de tierra utilizados para LM35
DigitalWrite (VCC, High);
DigitalWrite (GND, Low);
lcd.begin (16,2); // Inicializando las dimensiones de LCD
De serie.Begin (9600); // Inicialización de la comunicación en serie
lcd.setCursor (0, 0); // Configuración del lugar para los datos en LCD
lcd.imprimir ("Fan Arduino"); // Datos que se mostrarán
lcd.setCursor (0, 1); // Establecer el lugar para los datos en LCD
lcd.imprimir ("control de velocidad"); // datos que se mostrarán
retraso (3000); // tiempo para el cual se mostrarán los datos
bucle vacío ()
lcd.clare (); // borde la pantalla LCD
tempf = temperatura (); /*Llamar a la función de temperatura para obtener el valor de la temperatura en Fahrenheit*/
De serie.imprimir (tempf); // Mostrar la temperatura en Fahrenheit
if (tempf = tempmin) && (tempf <= tempMax)) /* if temperature is higher than minimum temp and less than the maximum temperature then */
fanspeed = tempf; // Dale a la velocidad del ventilador el valor de TEMPF
fanlcd = map (tempf, tempmin, tempMax, 0, 100); /*Escalar la velocidad del ventilador para mostrarla en LCD usando la función de mapa de 0 a 100*/
Analogwrite (fan, fanspeed); // Asignar el valor al pin del ventilador
lcd.imprimir ("temperatura:"); // Mostrar los datos
lcd.imprimir (tempf); // Muestra la temperatura en Fahrenheit
lcd.imprimir ("f");
lcd.setCursor (0,1); // Definición del lugar de los próximos datos que se mostrarán
lcd.imprimir ("Velocidad del ventilador:"); // Mostrar los datos
lcd.imprimir (fanLcd); // Muestra la velocidad del ventilador
lcd.imprimir ("%"); // Mostrar los datos
retraso (200); // tiempo para el cual los datos se mostrarán en LCD
lcd.clare (); // borde la pantalla LCD
int temperation () // nombre de función
valor = anicoGread (Vout); // Lectura del valor del sensor
tempc = valor*0.48828125; // Convertir los valores del sensor a Celsius de grado
return tempf = tempc*9/5+32; // Convertir los valores en Fahrenheit
Para diseñar un ventilador controlado por temperatura, hemos compilado el código Arduino de tal manera que primero hemos definido la biblioteca de LCD y asignado Pins Arduino para la pantalla LCD. A continuación, hemos definido variables y los respectivos pines Arduino para el sensor de temperatura y el ventilador para interactuarlas con Arduino Uno.
Dado que estamos tomando la temperatura en Fahrenheit, también hemos definido los límites mínimo y máximo para la temperatura de 86 Fahrenheit a 127 Fahrenheit.
Primero en la función de configuración, hemos asignado modos PIN a los pines Arduino definidos anteriormente y luego al VCC y el PIN de tierra del sensor de temperatura. Después de eso, las dimensiones de la pantalla LCD se inicializan y el nombre del proyecto se muestra en la pantalla LCD.
En la función de bucle primero se llama a la función de temperatura para obtener el valor de la temperatura y luego si la condición se usa para verificar si la temperatura es menor que la temperatura mínima. En este caso, el ventilador no girará, entonces hay otra condición IF que usa y operación y verifica si la temperatura está entre el rango dado de la temperatura.
Hemos usado el función de mapa Para escalar la velocidad del ventilador con los valores de temperatura en el rango de 0 a 100 y luego ese valor se da al pin Arduino del ventilador usando Analogwrite () función, y hace que el ventilador gire a una velocidad respectiva.
Luego, los datos de la temperatura y la velocidad del ventilador se muestran en el LCD utilizando el lcd.imprimir() función. Además, para convertir los valores del sensor en el grado Celsius, hemos utilizado la escala de 0.Aumento de 01V en el voltaje por grado centenigrado.
Entonces, si el voltaje es de 1 voltio, entonces la temperatura será de 100 grados, por lo que aquí para el sensor, tenemos un máximo de 5 voltios para que la temperatura sea 500 en 5 voltios. Sin embargo, el valor analógico máximo para el sensor es 1023, lo que significa 5 voltios y para eso hemos dividido la temperatura máxima por valor analógico máximo. También hemos convertido la temperatura en Fahrenheit y el concepto para la conversión puede ser clara de la tabla a continuación:
Cambio por grado Celsius = (temperatura máxima/valor analógico máximo);
0.488 = (500/1023);
Temperatura en grados = valor analógico*0.488;
Temperatura en fahrenheit = temperatura en grados*9/5+32;
Simulación
Aquí en este proyecto, hemos creado una simulación en el software de Porteous. En la simulación publicada a continuación, vemos que estamos aumentando la temperatura manualmente. Entonces, la velocidad del ventilador sigue aumentando a medida que aumentamos la temperatura:
Conclusión
Los tableros Arduino se pueden usar para hacer una variedad de proyectos de bricolaje y eso brinda a los principiantes una mejor comprensión del funcionamiento de los circuitos. Del mismo modo, para comprender el funcionamiento de los dispositivos también podemos crear sus circuitos de una manera muy fácil. En esta guía hemos hecho un ventilador automático que depende de los valores del sensor de temperatura. Los ventiladores controlados por temperatura se utilizan principalmente en los dispositivos que necesitan enfriamiento adecuado a altas temperaturas y el ejemplo más común es las PC o computadoras portátiles de escritorio.