46. Aplicación 2: Envió de datos de Arduino(Potenciómetro) hacia Python

 🚀 Errores comunes al comunicar Arduino con Python (y cómo solucionarlos)

¡Hola comunidad! 👋
En esta clase práctica nos enfrentamos a uno de los problemas más frecuentes al trabajar con comunicación serial entre Arduino y Python: el puerto bloqueado.


⏯️ Miniatura de la clase

0:00 / 9:56


🔍 ¿Qué sucede?

Al intentar ejecutar nuestro script en Python (usando Spyder), a veces aparece un error:

Error 13 - Acceso denegado
O simplemente no recibimos datos.

¿La razón? El puerto serial (COM) que queremos usar ya está abierto en otro programa.


🛠️ Posibles causas y soluciones

  1. Hercules abierto: Si tienes Hercules activo, cierra la conexión del puerto.

  2. Monitor Serial de Arduino abierto: Cierra el monitor desde el IDE de Arduino.

  3. Script anterior no cerrado correctamente: A veces, aunque cerremos Spyder, el puerto sigue ocupado.

👉 Solución rápida:

  • Desconecta y reconecta el USB del Arduino.

  • Verifica que ningún software esté usando el puerto.


📌 Consejo clave

"Cuando veas Error 13, piensa: ¿dónde más está abierto este puerto?"


🐍 Código mínimo en Python para leer datos

python
import serial

puerto = serial.Serial('COMX', 9600)  # Reemplaza COMX

while True:
    dato = puerto.readline().decode().strip()
    print(dato)

⚠️ Errores por no usar time.sleep()

Si olvidas agregar un pequeño delay en el bucle, la lectura puede volverse inestable o mostrar valores incorrectos (como "23.000" en lugar de "1023").

Solución:

python
import time

while True:
    dato = puerto.readline().decode().strip()
    print(dato)
    time.sleep(0.1)  # Pequeña pausa para estabilidad

🔄 Control de cierre automático

Puedes programar que el puerto se cierre bajo ciertas condiciones (ej: cuando el valor supere 1000):

python
while True:
    dato = int(puerto.readline().decode().strip())
    print(dato)
    if dato >= 1000:
        puerto.close()
        print("Conexión cerrada")
        break

💡 Reflexión final

En el mundo real, los errores son parte del aprendizaje. Cometerlos nos ayuda a entender mejor cómo funcionan las herramientas. ¡No te rindas!


👉 ¿Te ha pasado esto? ¡Comenta tu experiencia!
👉 ¿Tienes otro error común? ¡Compártelo!

Comentarios

Entradas populares de este blog

¿Qué es el Modelo OSI?

bit -El codigo ASCII

38. Tema 1: Protocolos de comunicación.