gpt4 book ai didi

Python 串行写入 Arduino 与 Arduino 串行监视器串行写入不同

转载 作者:行者123 更新时间:2023-12-01 03:42:00 27 4
gpt4 key购买 nike

我有一个 Python 脚本,它将字符串 test 写入 Arduino 串行端口。如果 arduino 收到 test 字符串,它应该回复一个字符串 ok 并且 LED 13 应该像 up..

问题:当使用 Arduino 串行监视器将 test 写入串行端口时,Arduino 按预期回复 ok 并且 LED # 13 亮起。

但是,当 Python 脚本将 test 写入同一串行端口时,没有任何反应。 Arduino 不回复串口并且 LED #13 不亮。

有什么想法可以修复Python脚本以获得Arduino的ok响应和LED 13点亮吗?

Arduino 草图

int ledPin = 13;


void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}


void loop() {

while(Serial.available() == 0) { }

if(Serial.readString() == "test\r\n") {
Serial.print("ok\r\n");
digitalWrite(ledPin, HIGH);
}

readString = ""; // Clear recieved buffer
delay(100);
}

Python 脚本

port = 'COM5'
ser = serial.Serial(
port=port,
baudrate=9600,
timeout=5
)

serial.write("test\r\n")

response = serial.readline()
print response

最佳答案

port = 'COM5'
ser = serial.Serial(
port=port,
baudrate=9600,
timeout=5
)

# you need to sleep after opening the port for a few seconds
time.sleep(5) # arduino takes a few seconds to be ready ...

#also you should write to your instance
ser.write("test\r\n")
# and give arduino time to respond
time.sleep(0.5)
response = self.serial.readline()
print response

如果您不想等待固定的秒数,您可能需要等待ser.cts(清除发送)

关于Python 串行写入 Arduino 与 Arduino 串行监视器串行写入不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39456630/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com