Я использую Python 3.2, пытаясь связаться с Arduino через последовательный порт. Из документации я понял, что Arduino Serial.Read () читает отдельные байты. Однако, когда я попытался реализовать это, Serial.Read () считывает все отправленные мной числа. Вот код для моих Python и Arduino
Например, у меня есть значение 412 для отправки в Arduino.
Python:
xCoordint = 412
xCoordConverted = "%03d" % (xCoordint)
xCoord = [int(i) for i in str(xCoordConverted)]
xSingleDigit0 = chr(int(xCoord[0] + 48))
xSingleDigit1 = chr(int(xCoord[1] + 48))
xSingleDigit2 = chr(int(xCoord[2] + 48))
ser.write (bytes(xSingleDigit0, 'UTF-8'))
ser.write (bytes(xSingleDigit1, 'UTF-8'))
ser.write (bytes(xSingleDigit2, 'UTF-8'))
Ардуино:
char joinCharX[3] ;
int n_avail = Serial.available();
if(n_avail>0){
for (int i=0;i<3; i++){
joinCharX[i] = Serial.read();
}
int xCoords = atoi(joinCharX);
Serial.print(joinCharX[0]);
При возврате joinCharX [0] равен 412, а не 4. Мне было интересно, почему это так и как мне вернуть его для чтения 1 отдельного байта за раз?