Не открывается порт ардуино

По активации функции openCom() порт ардуино не подключается. В видео уроке от AlexGyver ардуино перезагружалась и отправляла данные, в моём случае ничего из этого нет.

Пробовал менять setBaudRate() на 9600 бод, но не помогло. Вводил название порта вручную, прямо в функцию, но тоже не помогало.

from PyQt5 import QtWidgets, uic
from PyQt5.QtSerialPort import QSerialPort, QSerialPortInfo
from PyQt5.QtCore import QIODevice

app = QtWidgets.QApplication([])
win = uic.loadUi("test_gui.ui")
win.setWindowTitle("LED controll")

serial = QSerialPort()
serial.setBaudRate(115200)
ports = QSerialPortInfo().availablePorts()
portList = []
for port in ports:
    portList.append(port.portName())
win.coms.addItems(portList)

def openCom():
    print("open")
    serial.setPortName(win.coms.currentText())
    serial.open(QIODevice.ReadWrite)
win.btn_connect.clicked.connect(openCom)
def closeCom():
    print("close")
    serial.close()
win.btn_close.clicked.connect(closeCom)

def onRead():
    rx = serial.readLine()
    print(rx)
serial.readyRead.connect(onRead)

#подключение кнопок для управления светодиодом
def on():
    print("on")
    serial.write("1".encode())
win.btn_on.clicked.connect(on)
def off():
    print("off")
    serial.write("0".encode())
win.btn_off.clicked.connect(off)

win.show()
app.exec()

Всем заранее спасибо


Ответы (1 шт):

Автор решения: Vanyamba Electronics
  1. По умолчанию бод-рейт Arduino 57600.
  2. Порт должен быть правильно инициализирован.

Попробуйте после подключения Arduino запустить Arduino IDE. Закройте IDE и запустите ваш скрипт. Если порт открылся успешно, значит порт не был предварительно инициализирован.

Посмотреть текущие параметры порта можно командой stty -a -F /dev/ttyUSB0.

Arduino IDE его инициализирует, и вам нужно перед открытием порта задать порту те же параметры.

→ Ссылка