从Arduino IDE输入响应,灯泡发光。但是,Python中的相同内容无效。
问题是什么?
Arduino IDE串行输入 - >响应行为应该与串行输入相匹配 - > Python代码的响应行为。
当使用输入13
写入串行端口时,引脚ON
上的LED灯泡应设置为HIGH
/ 1
。
Arduino代码:
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
char serialListener = Serial.read();
if (serialListener == 1) {
digitalWrite(13, HIGH);
} else if (serialListener == 0) {
digitalWrite(13, LOW);
}
}
}
Python代码:
import serial
ser = serial.Serial('COM3', baudrate=9600, timeout=1)
ser.close()
ser.open()
ser.write("1".encode())
答案 0 :(得分:1)
使用if (serialListener == 1)
,您需要一个值为1的字节
使用ser.write("1".encode())
,您将发送带有ASCII代码49的字符'1'
。
您需要在Arduino中修复比较以匹配您发送的内容,因此您要比较字符而不是字节值。
if (serialListener == '1') {
digitalWrite(13, HIGH);
} else if (serialListener == '0') {
digitalWrite(13, LOW);
}