Sto provando a leggere i valori del potenziometro da un arduino usando python. Ma i miei valori di lettura seriale sono strani.Python non legge valori corretti dall'uscita seriale arduino
codice Python:
import serial
ser = serial.Serial('COM12')
print ("connected to: " + ser.portstr)
count = 1
while True:
for line in ser.read():
print(str(count) + str(': ') + str(line))
count = count + 1
ser.close()
Codice Arduino:
int potpin = 0; // analog pin used to connect the potentiometer
int val = 0; // variable to store the value coming from the sensor
int oldVal = 0; // used for updating the serial print
void setup()
{
Serial.begin(9600);
}
void loop()
{
val = analogRead(potpin);
val = map(val, 0, 1023, 0, 179);
if(val != oldVal)
{
Serial.print(val); // print the value from the potentiometer
oldVal = val;
}
delay(100);
}
qualche uscita Python: Questa uscita è venuto da una scala, lento aumento sul potenziometro, non ho mai girato verso il basso in qualsiasi punto .
1: 56
2: 57
3: 49
4: 48
5: 49
6: 49
7: 49
8: 50
9: 49
10: 51
Quando si esegue il terminale seriale arduino ottengo valori che vanno da 0-179. Perché Python non sta ottenendo i valori corretti dalla porta seriale?
Grazie
EDIT:
risolto il problema. 48-55 sono i valori ascii per 1-9, quindi è questione di cambiare il codice Python per stampare il carattere e non il valore. Tuttavia questo causa un altro problema in quanto stampa singole cifre. ad esempio, il numero "10" viene fornito come singolo "1" e "0". Questo è semplicemente risolto usando Serial.write invece di Serial.print nello sketch arduino. Ciò significa anche che riceverai un byte che è il tuo numero e non il valore ascii del numero, quindi non devi convertire la riga di lettura da un valore in ascii.
Spero che questo aiuti.
+1 per pubblicare il codice sorgente e per pubblicare la soluzione trovata. – jwygralak67
Invece di modificare la domanda con la risposta, è possibile inviare la soluzione come risposta e quindi accettare la propria risposta. Questo rende chiaro alle persone che trovano la domanda che esiste una soluzione. – Craig