Связь между моим кодом Arduino и моим Python, похоже, не работает. Помогите мне, пожалуйстаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Связь между моим кодом Arduino и моим Python, похоже, не работает. Помогите мне, пожалуйста

Сообщение Anonymous »

Мне нужно использовать данные, собранные с датчика, подключенного к Arduino Uno, в коде Python. Это основной вопрос о передаче состояния digitalPin в мой код Python. Сначала я хотел попробовать свои силы в организации двусторонней связи: от Python к Arduino, а затем от Arduino к Python. Итак, я попробовал сыграть в пинг-понг, когда Python отправлял команду, а Arduino отправлял обратно 0, если она не достигла, или 1, если она сработала. Дело в том, что я вижу тест команды в Arduino, но обратные данные не работают.
Вот мой код Arduino:

Код: Выделить всё

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

void loop() {

if (Serial.available() > 0) {  // check if there's data from python
String command = Serial.readStringUntil('\n');  // read python command
Serial.println(command);  // show command in Arduino monitor
Serial.write("command\n");
if (command == "test") {  // if command is "test"
Serial.write(1);}  // Envoie 1 en tant que byte
else {
Serial.write(0);}  // Envoie 0 en tant que byte
Serial.flush();
}
}
А вот мой код на Python:

Код: Выделить всё

import serial
import time

capt = serial.Serial('COM5',9600,timeout=5)

def testcomm(test):
out = 0
com = (test + '\n').encode()  # Send test command with end ligne indicator \n
print(f"Commande envoyée : {com}")
capt.write(com)  # send command to Arduino
time.sleep(4)
# Check if there's data
if capt.in_waiting > 0 :
testout = capt.readline()  # read
print(f'testout val (raw): {testout}')  # show raw
if testout:
out = testout.strip()  # clean answer
print(f'testout val (cleaned): {out}')
else:
print("Doesn't work")

return out

test1 = testcomm('test')
capt.close()
И вот результат в моей консоли Python:

Код: Выделить всё

Commande envoyée : b'test\n'
Doesn't work
Если здесь есть кто-то, кто может мне помочь... я в отчаянии.
Я проверил, работает ли командная строка сама по себе внутри монитора Arduino, она работает, и он возвращает 1, но на самом деле я не могу прочитать это в Python.
Я также попробовал read(), readline() и readlines() на всякий случай.
Я пробовал много разных вещей , но я не уследил, извините, и тоже учился pyserial параллельно, поэтому многие мои попытки были просто странными.
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/793 ... ork-help-m
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»