

Práctica educativa del Circular FAB Jarandilla de la Vera para controlar el sentido de giro de un motor DC utilizando Arduino, un módulo de 2 relés, fuente externa de 12V y tres pulsadores de control.
| ELEMENTO | CONEXIÓN | DESCRIPCIÓN |
|---|---|---|
| Arduino D7 | IN1 / K1 | Controla el relé K1: giro adelante. |
| Arduino D8 | IN2 / K2 | Controla el relé K2: giro atrás. |
| Arduino 5V | VCC relé | Alimenta la lógica del módulo de relés. |
| Arduino GND | GND común | Debe unirse con GND del módulo y negativo de la fuente. |
| Arduino D2 | Botón adelante | Pulsador entre D2 y GND. INPUT_PULLUP. |
| Arduino D3 | Botón atrás | Pulsador entre D3 y GND. INPUT_PULLUP. |
| Arduino D4 | Botón STOP | Pulsador entre D4 y GND. INPUT_PULLUP. |
| Fuente +12V | COM K1 | Línea de alimentación positiva para el motor. |
| Fuente GND | COM K2 | Retorno/negativo de la alimentación del motor. |
| NO K1 / NO K2 | Motor M+ / M- | Salidas hacia los bornes del motor DC. |
// ════════════════════════════════════════════════════════ // INVERSOR DE GIRO — 2 relés + Arduino // Módulo relé activo bajo: LOW = activado / HIGH = apagado // Pines: D7=K1, D8=K2, D2=adelante, D3=atrás, D4=stop // ════════════════════════════════════════════════════════ #define RELE1 7 #define RELE2 8 #define BTN_FWD 2 #define BTN_BWD 3 #define BTN_STP 4 void setup() { Serial.begin(9600); pinMode(RELE1, OUTPUT); pinMode(RELE2, OUTPUT); pinMode(BTN_FWD, INPUT_PULLUP); pinMode(BTN_BWD, INPUT_PULLUP); pinMode(BTN_STP, INPUT_PULLUP); motorStop(); } void loop() { if (digitalRead(BTN_FWD) == LOW) { motorFwd(); delay(250); } if (digitalRead(BTN_BWD) == LOW) { motorBwd(); delay(250); } if (digitalRead(BTN_STP) == LOW) { motorStop(); delay(250); } if (Serial.available()) { char cmd = Serial.read(); if (cmd == 'f') motorFwd(); if (cmd == 'b') motorBwd(); if (cmd == 's') motorStop(); } } void motorFwd() { digitalWrite(RELE2, HIGH); delay(10); digitalWrite(RELE1, LOW); Serial.println("▶ ADELANTE"); } void motorBwd() { digitalWrite(RELE1, HIGH); delay(10); digitalWrite(RELE2, LOW); Serial.println("◀ ATRÁS"); } void motorStop() { digitalWrite(RELE1, HIGH); digitalWrite(RELE2, HIGH); Serial.println("■ STOP"); }