🚚 Envío GRATIS en compras sobre $30.000 | Retiro en Curauma, Valparaíso | 📞 +56 9 65214463
Proyecto Arduino con Python comunicación serial PySerial
Arduino 10 de August de 2025 · 3 min de lectura

Cómo Integrar Arduino con Python: Guía Completa

Aprende a comunicar Arduino con Python usando PySerial. Controla LEDs, lee sensores y procesa datos en tiempo real combinando hardware y software.

Combinar Arduino con Python es una de las integraciones más poderosas en el mundo maker. Arduino es insuperable para interactuar con el mundo físico —leer sensores, controlar motores, encender LEDs— pero tiene limitaciones de memoria y procesamiento. Python, en cambio, es perfecto para análisis de datos, machine learning y automatización avanzada.

¿Por qué usar Arduino con Python?

La combinación permite aprovechar lo mejor de ambos mundos: la capacidad de Arduino para controlar hardware en tiempo real, y el ecosistema de Python para procesamiento de datos e interfaces gráficas.

  • Análisis de datos de sensores en tiempo real con pandas y matplotlib
  • Integración con librerías de machine learning como scikit-learn
  • Interfaces gráficas con tkinter o PyQt
  • Automatización de sistemas complejos
  • Control remoto de dispositivos Arduino

Herramientas Necesarias

  • Placa Arduino Uno R3 con cable USB
  • Python 3.x instalado en tu computador
  • Librería PySerial: pip install pyserial
  • Arduino IDE para cargar el sketch inicial

PySerial: La Librería Clave

PySerial es el puente entre Python y Arduino. Instálala con un simple comando:

pip install pyserial

Una vez instalada, Python puede leer y escribir datos al puerto serie USB donde está conectado tu Arduino.

Proyecto Real: Controlar un LED desde Python

Paso 1: Código en Arduino (C++)

Carga este sketch en tu Arduino Uno. Quedará esperando comandos por el puerto serie:

const int LED_PIN = 13;

void setup() {
  Serial.begin(9600);
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    char cmd = Serial.read();
    if (cmd == '1') digitalWrite(LED_PIN, HIGH);
    if (cmd == '0') digitalWrite(LED_PIN, LOW);
  }
}

Paso 2: Código en Python

Desde tu computador, este script de Python envía comandos al Arduino:

import serial
import time

# Windows: 'COM3' | Linux/Mac: '/dev/ttyUSB0' o '/dev/tty.usbmodem*'
arduino = serial.Serial('COM3', 9600, timeout=1)
time.sleep(2)  # Espera a que Arduino inicie

print("Encendiendo LED...")
arduino.write(b'1')
time.sleep(2)

print("Apagando LED...")
arduino.write(b'0')
arduino.close()

Leer Datos de Sensores con Python

El flujo inverso también funciona: Arduino envía datos de sensores y Python los procesa. Por ejemplo, leer el sensor DHT11:

# Arduino envía: Serial.println(temperature);
# Python lee:
while True:
    if arduino.in_waiting > 0:
        data = arduino.readline().decode('utf-8').strip()
        print(f"Temperatura: {data}°C")

Aplicaciones Avanzadas

  • Dashboard en tiempo real: Grafica temperatura del DHT11 con matplotlib
  • Control por gestos: Usa la cámara del PC con OpenCV para controlar Arduino
  • Automatización del hogar: Scripts Python que reaccionan a sensores de tu Arduino
  • Data logging: Guarda lecturas de sensores en CSV o base de datos SQLite

Troubleshooting Común

  • Puerto no encontrado: Verifica el nombre en Arduino IDE → Herramientas → Puerto
  • Sin datos: Asegúrate que el baudrate en Python (9600) coincide con el del Arduino
  • Caracteres extraños: Agrega .strip() al leer la línea serie

Consigue tu Arduino Uno R3 SMD con cable USB en Especificar.cl. Envíos a todo Chile con Chilexpress y Starken.

Compartir: WhatsApp
Escríbenos por WhatsApp