This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Mostrando las entradas con la etiqueta Proyecto Arduino. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Proyecto Arduino. Mostrar todas las entradas

lunes, 9 de septiembre de 2024

Proyecto Nivel Principiante: Controlador de Ventilador Basado en Temperatura con Velocidad Variable - Tutorial Paso a Paso

Proyecto Nivel Principiante: Controlador de Ventilador Basado en Temperatura con Velocidad Variable - Tutorial Detallado

🌡️ Proyecto Nivel Principiante: Controlador de Ventilador Basado en Temperatura con Velocidad Variable 🌬️

¡Bienvenidos a otro proyecto educativo emocionante con Arduino! Hoy, vamos a construir un "Controlador de Ventilador Basado en Temperatura con Velocidad Variable". Este proyecto es ideal para quienes desean aprender cómo controlar un motor DC (ventilador) en función de la temperatura medida por un sensor, ajustando la velocidad del ventilador automáticamente según el calor detectado. 🚀

Aprende a construir un controlador de ventilador con Arduino utilizando un sensor de temperatura TMP36 y un motor DC con velocidad variable.

Enlace al Proyecto en Tinkercad - Controlador de Ventilador

Explora cómo funciona este proyecto y experimenta con el circuito interactivo en Tinkercad. Haz clic en el siguiente enlace para acceder: Controlador de Ventilador - Proyecto en Tinkercad.

Componentes Necesarios

Para llevar a cabo este proyecto, necesitarás los siguientes componentes:

  • 1 x Arduino Uno
  • 1 x Sensor de Temperatura TMP36
  • 1 x Motor DC (como Ventilador)
  • 1 x Transistor NPN (ej. 2N2222 o BC547)
  • 1 x Diodo de protección (ej. 1N4007)
  • 1 x Resistencia 220Ω
  • Fuente de Alimentación Externa (9V o 12V)
  • Protoboard y Cables de Conexión

Todos los materiales necesarios los encontrarás en los siguientes enlaces:

Configuración del Circuito

Diagrama de Conexión

Conexiones:

  • Sensor de Temperatura TMP36:
    • Pin 1 (VCC) del TMP36 a 5V de Arduino.
    • Pin 2 (Vout) del TMP36 a pin A0 de Arduino.
    • Pin 3 (GND) del TMP36 a GND de Arduino.
  • Conexión del Motor DC con el Transistor:
    • Colector del Transistor (C) al terminal negativo del Motor DC.
    • Emisor del Transistor (E) a GND.
    • Base del Transistor (B) conectada al pin 9 de Arduino a través de una resistencia de 220Ω.
    • Terminal positivo del Motor DC a +9V o +12V (fuente externa).
    • Conectar un diodo de protección (1N4007) en paralelo al motor, con el cátodo al positivo del motor y el ánodo al colector del transistor.

Código para Controlar el Ventilador con Arduino

¡Aquí tienes el código completo! Puedes copiarlo fácilmente haciendo clic en el botón "Copiar Código".


// Definición de pines
const int tempPin = A0;  // Pin de entrada del sensor de temperatura TMP36
const int fanPin = 9;    // Pin de control del ventilador (PWM) conectado a la base del transistor NPN

// Variables
int tempValue = 0;  // Valor leído del sensor de temperatura
float temperatureC = 0;  // Temperatura en grados Celsius
int fanSpeed = 0;  // Velocidad del ventilador

void setup() {
  pinMode(tempPin, INPUT);  // Configuración del pin del sensor de temperatura como entrada
  pinMode(fanPin, OUTPUT);  // Configuración del pin del ventilador como salida
  Serial.begin(9600);  // Iniciar la comunicación serie para la depuración
  Serial.println("Sistema de Control de Ventilador Iniciado");
}

void loop() {
  tempValue = analogRead(tempPin);  // Leer el valor del sensor de temperatura

  // Conversión a temperatura en grados Celsius para TMP36
  temperatureC = (tempValue * (5.0 / 1024.0) - 0.5) * 100.0;
  
  // Mostrar la temperatura en el monitor serie
  Serial.print("Temperatura: ");
  Serial.print(temperatureC);
  Serial.println(" °C");

  // Control del ventilador basado en la temperatura
  if (temperatureC > 30.0) {  // Si la temperatura es mayor a 30°C
    fanSpeed = map(temperatureC, 30, 50, 128, 255);  // Ajustar velocidad del ventilador (50% a 100%)
    analogWrite(fanPin, fanSpeed);  // Controlar la velocidad del ventilador
    Serial.print("Ventilador: ON a velocidad ");
    Serial.println(fanSpeed);
  } else {
    analogWrite(fanPin, 0);  // Apagar el ventilador
    Serial.println("Ventilador: OFF");
  }

  delay(1000);  // Espera 1 segundo antes de la siguiente lectura
}

        

Explicación del Código

A continuación, explicamos cada línea del código para ayudarte a comprender su funcionamiento y a desarrollar un pensamiento crítico sobre su estructura y lógica:

  1. Sensor de Temperatura TMP36: Conectado al pin A0 de Arduino, mide la temperatura ambiente. La salida analógica del TMP36 se convierte a temperatura en grados Celsius.
  2. Motor DC (Ventilador): Controlado por un transistor conectado al pin 9 de Arduino. Se utiliza una señal PWM para variar la velocidad del ventilador en función de la temperatura medida.
  3. Control de Velocidad Variable del Ventilador: Si la temperatura medida es mayor a 30°C, el ventilador se enciende automáticamente y ajusta su velocidad según el calor detectado, variando de un 50% a 100% de su capacidad. Si la temperatura es menor o igual a 30°C, el ventilador permanece apagado.

Problemas Comunes y Soluciones

  • El sensor de temperatura no da lecturas precisas: Asegúrate de que el sensor TMP36 esté correctamente conectado y que el código esté configurado para el rango de temperatura adecuado.
  • El ventilador no se enciende: Verifica que el transistor esté conectado correctamente y que el pin 9 de Arduino esté generando una señal PWM.
  • El ventilador siempre está a la misma velocidad: Asegúrate de que la función map() esté configurada correctamente y que la temperatura varíe dentro del rango esperado.

Desafío para el Usuario

¿Cómo podrías modificar el proyecto para que el ventilador tenga más niveles de velocidad en función de rangos de temperatura más específicos? ¡Déjanos tu idea en los comentarios!

Podrías agregar más condiciones if y else if para establecer diferentes velocidades según la temperatura. Por ejemplo, podrías establecer velocidades de 25%, 50%, 75% y 100% según rangos de temperatura como 25-30°C, 30-35°C, 35-40°C, y 40-50°C.


// Modificación para múltiples niveles de velocidad del ventilador

void loop() {
  tempValue = analogRead(tempPin);
  temperatureC = (tempValue * (5.0 / 1024.0) - 0.5) * 100.0;
  
  Serial.print("Temperatura: ");
  Serial.print(temperatureC);
  Serial.println(" °C");

  if (temperatureC > 40.0) {
    analogWrite(fanPin, 255);  // 100% velocidad
  } else if (temperatureC > 35.0) {
    analogWrite(fanPin, 191);  // 75% velocidad
  } else if (temperatureC > 30.0) {
    analogWrite(fanPin, 128);  // 50% velocidad
  } else if (temperatureC > 25.0) {
    analogWrite(fanPin, 64);   // 25% velocidad
  } else {
    analogWrite(fanPin, 0);    // Apagar ventilador
  }

  delay(1000);
}

        

¡Espero que disfrutes creando este proyecto tanto como yo disfruto compartiéndolo contigo! Recuerda que la práctica hace al maestro, así que sigue experimentando y adaptando este código a nuevas ideas. ¡Nos encantaría ver tus creaciones! 🚀

Si te ha gustado este artículo, por favor compártelo y suscríbete a nuestro blog para más proyectos interesantes. ¡Hasta la próxima aventura tecnológica!