

Práctica educativa del Circular FAB para comprender el control de cargas de 12V con Arduino Mega, MOSFET IRLZ44N, lámparas T10 W5W y fuente ATX reciclada. Un proyecto aplicado, documentado y replicable.
FILA SUPERIOR (1-12):
FILA INFERIOR (13-24):
// ════════════════════════════════════════════════════════ // SEMÁFORO — Arduino Mega + IRLZ44N + Lámparas T10 W5W // // Hardware real: // · Arduino Mega 2560 // · 3× MOSFET IRLZ44N (N-canal, logic-level, TO-220) // · 3× Resistencia 220Ω en serie con cada Gate // · 3× Lámpara T10 W5W 12V (posición moto/coche) // · Fuente ATX: // Cable amarillo (+12V) → polo+ lámparas // Cable negro (GND) → Source MOSFETs + GND Mega // Cable verde (PS_ON) → puentear a GND para arrancar // // Conexión por canal: // Mega pin ──R220Ω──► Gate IRLZ44N // ATX +12V ─────────► T10 polo+ // T10 polo– ─────────► Drain IRLZ44N // Source IRLZ44N ────► GND común (ATX negro + GND Mega) // // Pines: ROJO=3 · AMARILLO=5 · VERDE=6 (todos PWM en Mega) // ════════════════════════════════════════════════════════ // ── Pines de control (PWM disponible para futuro dimming) ── const int PIN_ROJO = 3; const int PIN_AMARILLO = 5; const int PIN_VERDE = 6; // ── Tiempos del ciclo (ms) ───────────────────────────────── const unsigned long T_VERDE = 20000UL; // 20 s const unsigned long T_AMARILLO = 3000UL; // 3 s const unsigned long T_ROJO = 20000UL; // 20 s // ────────────────────────────────────────────────────────── void setup() { pinMode(PIN_ROJO, OUTPUT); pinMode(PIN_AMARILLO, OUTPUT); pinMode(PIN_VERDE, OUTPUT); apagarTodo(); // Gates a LOW al arrancar — lámparas OFF Serial.begin(9600); Serial.println("=== Semaforo Arduino Mega ==="); Serial.println("IRLZ44N x3 | T10 W5W 12V | ATX PSU"); Serial.println("Iniciando ciclo..."); } // ────────────────────────────────────────────────────────── void loop() { // ── 🟢 VERDE — paso libre ───────────────────────────── Serial.println("[VERDE] ON → Gate D6 HIGH"); digitalWrite(PIN_VERDE, HIGH); delay(T_VERDE); digitalWrite(PIN_VERDE, LOW); Serial.println("[VERDE] OFF → Gate D6 LOW"); // ── 🟡 AMARILLO — precaución ────────────────────────── Serial.println("[AMARILLO] ON → Gate D5 HIGH"); digitalWrite(PIN_AMARILLO, HIGH); delay(T_AMARILLO); digitalWrite(PIN_AMARILLO, LOW); Serial.println("[AMARILLO] OFF → Gate D5 LOW"); // ── 🔴 ROJO — stop ─────────────────────────────────── Serial.println("[ROJO] ON → Gate D3 HIGH"); digitalWrite(PIN_ROJO, HIGH); delay(T_ROJO); digitalWrite(PIN_ROJO, LOW); Serial.println("[ROJO] OFF → Gate D3 LOW"); } // ── Apaga los tres Gates ─────────────────────────────────── void apagarTodo() { digitalWrite(PIN_ROJO, LOW); digitalWrite(PIN_AMARILLO, LOW); digitalWrite(PIN_VERDE, LOW); }