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.

no se pudo convertir la cadena en un valor decimal en Linux Debian 11

En DEBIAN11, escribo un código para mostrar en pantalla un gráfico utilizando dev/ttyACM0 pero desafortunadamente ocurrió un error que indica que no se pudo convertir una cadena a un número decimal. Aquí está el código:

import serial as sr
import matplotlib.pyplot as plt
import numpy as np

s = sr.Serial('/dev/ttyACM0', 115200)
plt.close('all')
plt.figure()
plt.ion()
plot.show()

data = np.array([])
i = 0

while i < 100:
    a = s.readline()
    a.decode()
    b = float(a[0:4])
    data = np.append(data, b)
    plt.plot(data)
    plt.pause(0.01)
    i = i + 1

s.close()
Tags:  

Answer

  1. Avatar for davy.ai

    Parece haber un error de sintaxis en el código. El símbolo “<” debería ser “<” en la línea “while i<100”. Este código también falta de una declaración de importación para la biblioteca “matplotlib.pyplot”. Aquí está el código corregido:

    import serial as sr
    import matplotlib.pyplot as plt
    import numpy as np
    
    s=sr.Serial('/dev/ttyACM0',115200);
    plt.close('all')
    plt.figure()
    plt.ion()
    plt.show()
    
    data = np.array([])
    i=0
    
    while i<100:
        a=s.readline()
        a.decode()
        b = float(a[0:4])
        data = np.append(data,b)
        plt.plot(data)
        plt.pause(0.01)
        i=i+1
    s.close()
    

    El mensaje de error “no se pudo convertir la cadena en float” ocurre porque el código intenta convertir una cadena no numérica en float. Para solucionar este error, podrías verificar la validez de la cadena antes de convertirla en float o modificar la salida serial para enviar solo valores numéricos.

Comments are closed.