es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

enviando datos desde Arduino a Raspberry a través de USB serial

Estoy enviando datos desde Arduino a mi Raspberry Pi3 modelo B a través de la comunicación serial USB. Leo los datos de Arduino con un código en Python que me imprime los datos, pero cuando imprimo los datos, este es mi resultado:

b'5\r\n'
b'6\r\n'
b'7\r\n'
b'8\r\n'
b'9\r\n'
b'10\r\n'
b'11\r\n'

Este es mi código en Arduino:

int a = 0;
void setup(){
        Serial.begin(9600);
}

void loop(){
        Serial.println(a);
        delay(500);
        a++;
}

Y este es mi código en Python:

import serial

while True:
    ser = serial.Serial('/dev/ttyACM0', 9600)
    valore = ser.readline()
    print(valore)

¿Cómo puedo imprimir solamente los números?

Muchas gracias 🙂

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para imprimir solo los números de los datos en serie recibidos del Arduino en la Raspberry Pi, puedes modificar el código de Python de la siguiente manera:

    import serial
    
    while True:
        ser = serial.Serial('/dev/ttyACM0', 9600)
        valore = ser.readline().decode().strip()
        if valore.isdigit():
            print(valore)
    

    Aquí, hemos agregado .decode() para decodificar los bytes recibidos del Arduino, luego usamos .strip() para eliminar cualquier carácter no deseado como \r y \n. Luego verificamos si la cadena restante solo contiene dígitos usando el método .isdigit(), y si es así, lo imprimimos en la consola.

Comments are closed.