Проблема с отправкой строки с Python в Arduino через последовательный порт
Я хочу отправить строку 50 на Arduino через последовательный порт, Arduino UNO, кажется, взаимодействует с портом COM25, но не получает строку должным образом:
import serial # if you have not already done so
ser = serial.Serial('COM25')
ser.baudrate = 9600
ser.write(b'50')
ser.close()
Кстати, код Arduino правильный, я проверил его с другими программами последовательного порта. Как я могу исправить приведенный выше код?
@floppy380, 👍5
Обсуждение1 ответ
Лучший ответ:
Ардуино AVR (Uno, Nano, Mega) имеют функцию автоматического сброса. При открытии USB-соединения цепь вокруг USB сбрасывает MCU. После сброса загрузчик секунду ждет новой загрузки. Если загрузка не происходит, загрузчик запускает текущий скетч.
Команда serial.Serial()
в Python открывает USB-соединение. При этом Arduino сбрасывается и ждет в загрузчике, пока вы отправляете данные. Данные не поступают в ваш скетч. Добавьте двухсекундное время ожидания после serial.Serial()
в Python.
Спасибо за этот ответ. Это сводило меня с ума. В качестве альтернативы я добавил строку в Arduino setup() для отправки байта и ждал, пока это произойдет в Python, чтобы все началось., @SaTa
- Программирование Arduino с использованием Python, а не C/C ++
- Не удается связаться с ардуино с помощью python (Windows)
- Последовательная связь Arduino с Python: отправка массива
- Построение графика на Python с использованием Tkinter Canvas
- Отправьте несколько значений int из Python в Arduino, используя pySerial
- Построение графика данных датчика Arduino в реальном времени на Processing, MatLab или Python
- Обработка времени чтения в Python с помощью pySerial
- Как отправить целое число через pyserial с Python на Arduino и получить тот же результат?
serial.Serial()
сбрасывает Uno, и после этого он некоторое время находится в загрузчике. добавить задержку/сон после серийного.Последовательный, @JurajЯ не понимаю; так как я могу отправить строку в Python, как это делается в HyperTerminal? Мой код Ard работает с HyperTerminal, но я искал целый день и не смог найти код, работающий для Python., @floppy380
вам нужно подождать 2 секунды, пока не будет отправлено что-то через этот последовательный порт из Python. Serial Monitor также сбрасывает Arduino при открытии соединения. При открытии окна, не перед каждой отправкой данных, @Juraj