Control Arduino UNO desde Python 3 – Envío de Comandos y Demo LED
Componentes y materiales
| Componente | Cantidad |
|---|---|
| Arduino UNO | 1 |
| Cable USB A-B | 1 |
Descripción del proyecto
Ejemplo mínimo de comunicación serie entre Python 3 y Arduino: encender/apagar el LED integrado (pin 13) enviando comandos '1' y '0' desde la consola Python.
¿Por qué este tutorial?
Muchos tutoriales usan Python 2; este está probado con Python 3.7+ y la librería pyserial.
Instalación
- Instala Python 3.x desde python.org.
- Instala pyserial:
pip install pyserial
Código Arduino
Sube este sketch antes de ejecutar el script Python.
int dataFromUser = 0;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
}
void loop() {
if(Serial.available() > 0) {
dataFromUser = Serial.read();
}
if(dataFromUser == '1') {
digitalWrite(LED_BUILTIN, HIGH);
} else if(dataFromUser == '0') {
digitalWrite(LED_BUILTIN, LOW);
}
}
Código Python 3
import serial
import time
# Ajusta 'COM1' a tu puerto (Windows: COMx, Linux/Mac: /dev/ttyUSBx o /dev/ttyACMx)
arduino = serial.Serial(port='COM1', baudrate=9600, timeout=1)
time.sleep(2) # Espera reinicio Arduino al abrir puerto
print("Escribe 1 para ENCENDER LED, 0 para APAGAR, q para salir")
while True:
cmd = input("> ").strip()
if cmd == 'q':
break
if cmd in ('1', '0'):
arduino.write(cmd.encode())
print(f"LED {'ENCENDIDO' if cmd == '1' else 'APAGADO'}")
else:
print("Comando no válido. Usa 1, 0 o q.")
arduino.close()
Notas importantes
- El Arduino se reinicia al abrir el puerto serie; el
time.sleep(2)espera a que esté listo. - En Linux/Mac, usa permisos adecuados para el puerto serie (
sudo usermod -a -G dialout $USER). - Este patrón escala a proyectos complejos: JSON, protocolos binarios, etc.
Esquemáticos
Solo necesitas el Arduino y el cable USB.
Proceso de manufactura
- Integración MQTT fluida: sensores NodeMCU DHT22 con Raspberry Pi 3 B+ como broker
- Facilitar la comunicación sordo‑ciego usando 1Sheeld y Arduino
- Crea Animaciones y Juegos en LCD 16×2 con Arduino UNO
- SERENA: Sistema de Alarma Personalizado Arduino Mega 2560 con Pantalla TFT LCD Táctil
- Construye un Voltímetro Inteligente con Arduino y Smartphone – Proyecto DIY Fácil
- Autómatas Celulares en Tiempo Real con Arduino y Pantalla OLED 128x64
- Construye una Radio FM Compacta con Arduino Nano y RDA5807M
- MKR1000 con DHT22: Monitorización de Temperatura y Humedad en Tiempo Real a Azure
- Construye un Portátil Raspberry Pi 3 y Arduino: Guía Paso a Paso
- Construye tu Propio Robot Asistente IA con Arduino y Python
- Sensores para Arduino: Tipos, Aplicaciones y Proyectos Reales