¡PROYECTO INTEGRADOR 2! - Estación de Control Térmico

¡Lo lograron, equipo! Bienvenidos a la misión final del segundo parcial. Aquí es donde todo lo aprendido cobra sentido. Dejarán de ser estudiantes que siguen tutoriales para convertirse en integradores de sistemas. Vamos a diseñar y construir un dispositivo completamente funcional y automático que podría usarse en un invernadero, un terrario o una incubadora.

🎯 El Reto: Construir una estación de control de clima que:

🧠 La Lógica del Proyecto: Control por Niveles

Este sistema no tiene una sola decisión, sino una jerarquía. Usaremos la estructura if / else if / else para crear diferentes niveles de acción en base a los umbrales del código:

🔌 El Circuito: La Integración Maestra

Vamos a combinar de forma maestra el circuito de potencia por transistor visto en el Tomo 7 (LM35 + Transistor TIP120) con el circuito de control industrial digital analizado en el Tomo 8 (Pantalla LCD I2C + Módulo de Relé).

Componentes Necesarios:

📝 Instrucciones Exactas de Conexión (Según el Diagrama):

  1. Sistema de Alimentación y Tierra Común (Los Rieles de Energía):
    • Fuente de Poder (Plug DC 12V): El positivo (+) va a la entrada IN+ del reductor y se extiende (cable rojo largo) al positivo del ventilador de 12V. El negativo (-) va a la entrada IN- del reductor.
    • Módulo Reductor (LM2596): Asegúrate de que esté regulado a 5V. Conecta su salida positiva (OUT+) al riel positivo superior de la protoboard, y su salida negativa (OUT-) al riel negativo superior.
    • Alimentación Arduino: Conecta el pin 5V de Arduino al riel positivo inferior y el pin GND al riel negativo inferior.
    • ¡Tierra Común! Une el riel negativo superior con el riel negativo inferior usando un cable negro. Nota: Los rieles positivos superior e inferior NUNCA deben unirse entre sí, ya que manejan fuentes independientes.
  2. Pantalla LCD 16x2 con I2C:
    • GND ➜ Al riel negativo superior (GND común).
    • VCC ➜ Al riel positivo superior (5V externos del reductor).
    • SDA ➜ Al pin analógico A4 de Arduino (cable naranja).
    • SCL ➜ Al pin analógico A5 de Arduino (cable gris).
  3. Sensor de Temperatura LM35:
    • Pin izquierdo (Vs) ➜ Al riel positivo inferior (5V estables y limpios de Arduino).
    • Pin central (Vout) ➜ Al pin analógico A0 de Arduino (cable azul).
    • Pin derecho (GND) ➜ Al riel negativo inferior (GND de Arduino).
  4. Módulo de Relé de 1 Canal (Control del Foco):
    • VCC ➜ Al riel positivo superior (5V del reductor).
    • GND ➜ Al riel negativo superior (GND común).
    • IN (Señal) ➜ Al Pin Digital 7 de Arduino (cable amarillo).
    • Lado de Potencia (120V AC): La FASE de la toma de corriente va al tornillo central (COM). El cable de retorno que va al foco se conecta al tornillo superior (NO). El NEUTRO va directo de la pared hacia el foco.
  5. Etapa de Potencia con Transistor TIP120 (Control del Ventilador):
    • Base (Pin 1, izquierdo): Va a la resistencia de 1kΩ, y el otro extremo de esta va al Pin Digital 9 de Arduino (cable rosa).
    • Colector (Pin 2, central): Se une al cable negativo (negro) del ventilador de 12V y al ánodo (lado completamente negro) del diodo 1N4007.
    • Emisor (Pin 3, derecho): Conecta un cable negro directo al riel negativo superior (GND común).
    • Línea de Fuerza (12V): El cable positivo (rojo) del ventilador y el cátodo (lado con franja plateada) del diodo 1N4007 van conectados al positivo directo de 12V que viene del Plug DC.

⚡ Diagrama de armado

Diagrama de conexiones completo del Proyecto Integrador 2 con regulador Buck LM2596, LM35, LCD I2C, Relé y TIP120

💡 Conceptos Clave de la Misión

🧠 El Código: El Sistema Operativo del Clima

Código Arduino

/*
 * PROYECTO INTEGRADOR 2: Estación de Control Térmico
 * Descripción: Controla un ventilador de 12V y una alarma de foco según la temperatura.
 * Por: Profe Campos
 * CECyTEM 05 Guacamayas
*/

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// --- PINES ---
const int pinSensor = A0;
const int pinVentilador = 9; // Controla la base del transistor TIP120
const int pinFoco = 7;       // Controla la señal del módulo de relé

// --- UMBRALES ---
const float UMBRAL_VENTILADOR = 30.0;
const float UMBRAL_PELIGRO = 38.0;

// --- OBJETOS ---
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  pinMode(pinVentilador, OUTPUT);
  pinMode(pinFoco, OUTPUT);
  
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Control de Clima");
  lcd.setCursor(0, 1);
  lcd.print("    V 1.0");
  delay(2000);
  lcd.clear();
}

void loop() {
  // --- LECTURA Y CÁLCULO DE TEMPERATURA (LM35) ---
  int valorSensor = analogRead(pinSensor);
  float voltaje = (valorSensor / 1023.0) * 5.0;
  float temperatura = voltaje * 100.0;

  // --- LÓGICA DE CONTROL POR NIVELES ---
  if (temperatura < UMBRAL_VENTILADOR) {
    // Nivel 1: Normal
    lcd.setCursor(0, 0);
    lcd.print("Temp: ");
    lcd.print(temperatura, 1); // Muestra 1 decimal para estabilidad visual
    lcd.print(" C   ");
    lcd.setCursor(0, 1);
    lcd.print("Estado: Normal  ");
    
    digitalWrite(pinVentilador, LOW);  // Ventilador OFF
    digitalWrite(pinFoco, LOW);        // Foco OFF

  } else if (temperatura >= UMBRAL_VENTILADOR && temperatura < UMBRAL_PELIGRO) {
    // Nivel 2: Enfriando
    lcd.setCursor(0, 0);
    lcd.print("Temp: ");
    lcd.print(temperatura, 1);
    lcd.print(" C   ");
    lcd.setCursor(0, 1);
    lcd.print("Estado: Ventila ");

    digitalWrite(pinVentilador, HIGH); // Ventilador ON (TIP120 activo)
    digitalWrite(pinFoco, LOW);        // Foco OFF

  } else {
    // Nivel 3: Peligro
    lcd.setCursor(0, 0);
    lcd.print("!!! ALERTA !!!  ");
    lcd.setCursor(0, 1);
    lcd.print("Temp: ");
    lcd.print(temperatura, 1);
    lcd.print(" C Danger");

    digitalWrite(pinVentilador, HIGH); // Ventilador ON
    digitalWrite(pinFoco, HIGH);       // Foco ON (Alarma de potencia activa)
  }

  delay(1000); // Muestreo cada segundo
}

🚀 ¡Inténtalo Tú Mismo! (Retos)

¡Felicidades, Integradores! Han completado el segundo parcial y han demostrado un dominio impresionante. Pasaron de encender un simple LED a construir un sistema de control autónomo, robusto y con múltiples niveles de acción. Han manejado señales analógicas, digitales, comunicación I2C y control de alta potencia.

Lo que tienen en sus manos es un prototipo real, la base de la automatización industrial. ¡Están perfectamente preparados para los desafíos del último parcial!

¡El límite es su imaginación! - Profe Campos