Código Arduino y vídeo para controlar un relé por USB desde la línea de comandos de PowerShell
En este tutorial exploraremos cómo controlar un relé usando un Arduino y un módulo USB a UART, todo mediante comandos de Windows PowerShell. Esta configuración te permite encender y apagar una luz de forma remota enviando comandos específicos a través de la línea de comandos. Al final de esta guía tendrás un sistema funcional que puede controlar dispositivos de CA de forma segura y eficaz.

Utilizaremos las capacidades de comunicación serie del Arduino para escuchar comandos enviados desde PowerShell. Los comandos específicos serán enteros que corresponden a encender y apagar el relé. Este proyecto requiere un manejo cuidadoso de la tensión de CA, por lo que se deben observar precauciones de seguridad durante todo el proceso. Para mayor aclaración, asegúrate de ver el video completo (en el video en 00:00).
Hardware explicado
Los componentes principales implicados en este proyecto incluyen la placa Arduino, el módulo USB a UART y el relé. La placa Arduino actúa como el cerebro de la operación, procesando comandos seriales y controlando el relé en consecuencia. El módulo USB a UART facilita la comunicación entre la placa Arduino y tu ordenador, permitiendo introducir comandos desde PowerShell.
El relé actúa como un interruptor que controla el flujo de electricidad hacia la luz. Cuando el relé se activa, cierra el circuito, permitiendo que la corriente fluya y la luz se encienda. Cuando se desactiva, abre el circuito, cortando la alimentación y apagando la luz. Esto permite el control seguro de dispositivos de alto voltaje desde un sistema de bajo voltaje.
Detalles de la ficha técnica
| Fabricante | FTDI |
|---|---|
| Número de pieza | FT232R |
| Voltaje lógico/E/S | 3.3 V / 5 V |
| Tensión de alimentación | 4.5 V a 5.5 V |
| Corriente de salida (por canal) | 50 mA |
| Corriente de pico (por canal) | 100 mA |
| Guía de frecuencia PWM | No aplica |
| Umbrales lógicos de entrada | 0.3 V (bajo), 0.7 V (alto) |
| Caída de voltaje / RDS(on)/ saturación | 0.5 V máx. |
| Límites térmicos | 125 °C |
| Paquete | LQFP de 32 pines |
| Notas / variantes | Convertidor USB a UART |
- Asegúrese de que los niveles de voltaje sean adecuados para el relé y el módulo UART.
- Utilice un disipador de calor si se espera que el relé maneje cargas elevadas.
- Verifique dos veces todas las conexiones antes de encender el sistema.
- Mantenga el módulo alejado de la humedad y de materiales conductores.
- Utilice una conexión a tierra común para todos los componentes para evitar picos de tensión.
Instrucciones de cableado


Comience conectando el pin VCC del módulo de relé al pin de 5V del Arduino. A continuación, conecte el pin GND del relé a uno de los pines de tierra del Arduino. El pin de control (etiquetado como IN o similar) del relé debe conectarse al pin digital 8 del Arduino.
Para el módulo USB a UART, conecta el pin TX al pin RX del Arduino y el pin RX del módulo al pin TX del Arduino. Asegúrate de conectar el pin de tierra (GND) del módulo USB al mismo GND que el Arduino para garantizar una referencia común. Esta configuración permite una comunicación fluida entre el Arduino y tu computadora a través de PowerShell.
Ejemplos de código y guía paso a paso
byte RX_Value = 0; // stores received byte
#define relay 8 // pin 8 for relay
int comON = 6; // code to turn ON the light
int comOFF = 2; // code to turn OFF the light
En este extracto, definimos la variableRX_Valuepara almacenar el comando recibido del monitor serie. Elrelayestá configurado en el pin 8, y definimos dos comandos:comONpara encender la luz ycomOFFpara apagarlo.

void setup() {
Serial.begin(9600); // Start serial communication at 9600 baud
pinMode(relay, OUTPUT); // Set relay pin as output
digitalWrite(relay, HIGH); // Turn the relay OFF initially
}
En elsetup()En la función, inicializamos la comunicación serie a 9600 baud, que debe coincidir con la configuración en PowerShell. El pin del relé se configura como salida y lo ponemos en HIGH para asegurarnos de que el relé esté apagado al iniciar el programa.

if (Serial.available()) {
RX_Value = Serial.read(); // Read the incoming byte
if (RX_Value == comON) {
digitalWrite(relay, LOW); // Turn the relay ON
} else if (RX_Value == comOFF) {
digitalWrite(relay, HIGH); // Turn the relay OFF
}
}
Este fragmento de código muestra cómo el programa escucha los datos seriales entrantes. Si se recibe un comando que coincidecomON, el relé se activa, encendiendo la luz. Por el contrario, sicomOFFse recibe, el relé se desactiva, apagando la luz. Este bucle continúa, permitiendo un control receptivo desde PowerShell.
Demostración / Qué esperar
Cuando la configuración esté completa y el código se haya cargado, deberías poder abrir PowerShell y enviar los comandos para controlar la luz. Al escribir el comando correspondiente, el relé debería activarse de inmediato, encendiendo o apagando la luz según se desee. Ten cuidado al manipular dispositivos de corriente alterna; asegúrate de que no haya cables vivos expuestos durante las pruebas.
Marcas de tiempo del vídeo
- 00:00- Introducción y visión general del proyecto
- 02:30- Explicación del cableado
- 05:00- Revisión del código
- 08:15- Demostración de un comando de PowerShell
- 10:45- Conclusión y consejos de seguridad
Cosas que podrías necesitar
-
Amazonas
-
Amazonas
-
eBay
-
AliExpressPurchase 1 channel 5V KY-019 relay from AliExpresss.click.aliexpress.com
Recursos y referencias
Aún no hay recursos.
Archivos📁
Archivo de Fritzing
-
4-Channel 5v Relay module
application/zip0.02 MB -
FT232-AZ-USB-to_TTL-serial-adapter
application/zip0.01 MB
Otros archivos
-
¿Dónde comprar este módulo?
robojax-usb-relay-powershell_scripts.zip