2015-10-28 3 views
0

Я хочу привести 3 переменные датчика, которые все время меняются на мой интерфейс python.Интерфейс arduino python с несколькими переменными

Я пытаюсь с помощью этого тестового кода, он не работает, что я делаю неправильно?

Arduino:

void setup() { 
    Serial.begin (9600); 
} 

void loop() { 
    Serial.print(random(1,3)); 
    Serial.print(random(3,5)); 
    Serial.print(random(5,7)); 
} 

Python:

canvas.create_text(190, 150, text=ser.readline(1), fill="gray", font="Helvetica 45 bold",tag="T1") 

Как я могу получить несколько переменных обновления все время? прямо сейчас я просто получаю первый, и он не обновляется

+0

где вы называете 'обновление'? –

+0

Спасибо, я пропустил это. но когда я помещаю update() мой кодовый сбой. Есть идеи? –

ответ

1

Почему вы используете функцию readline, чтобы читать только один байт? Так как вы хотите несколько значений, разделяя переменные (например) в пространстве, а затем использовать readline хранить их все и split отделить их:

PS: обратите внимание, что последняя на самом деле println

Arduino :

void loop() { 
    Serial.print(random(1,3)); 
    Serial.print(" "); 
    Serial.print(random(3,5)); 
    Serial.print(" "); 
    Serial.println(random(5,7)); 
} 

Python:

allitems=ser.readline() 
separateditems=allitems.split(); 
canvas.create_text(190, 150, " - ".join(separateditems), fill="gray", font="Helvetica 45 bold",tag="T1") 

в этом примере я помещаю элементы в separateditems (так separateditems[0] равен random(1,3), separateditems[1] равен random(3,5) и separateditems[2] равен random(5,7)). Затем я присоединился к ним, чтобы отобразить «случайные (1,3) - случайные (3,5) - случайные (5,7)». В любом случае вы можете делать все, что хотите, с собранными данными.

Тогда я ВЫ НАСТОЯТЕЛЬНО предлагаю вам установить задержку внутри loop, чтобы избежать отправки слишком большого количества данных. Я предлагаю положить delay(100); в конце или, если вам нужно делать другие вещи во время ожидания, см. Пример «Bounce without delay».

+1

Спасибо за помощь! –

Смежные вопросы