在python中写入arduino使用的串行端口时出现问题(用于打开灯光/移动伺服等…)

2024-09-30 01:18:50 发布

您现在位置:Python中文网/ 问答频道 /正文

在用python编写串行端口时,我很难指示我的Arduino执行不同的if语句

我现在有一个LED和电阻器通过GND和~5个数字管脚串联在一起。我想在使用python访问串行端口(在我的例子中是COM6)并写入串行端口“1”时打开LED,在写入串行端口“2”时关闭LED

Arduino代码:

void setup()
{
  pinMode(5, OUTPUT);
  digitalWrite(5, LOW);
  Serial.begin(9600);

}

void loop() 
{
  if (Serial.available() > 0)
  {
    if (Serial.read() == '1')
    {
     digitalWrite(5, HIGH);
     delay(100);
    }
    else if (Serial.read() == '2')
    {
      digitalWrite(5, LOW);
      delay(100);
    }
  }
}

终端中的Python代码:

In[1]: import serial
In[2]: ser1 = serial.Serial('COM6', 9600)
In[3] ser1.write('1'.encode())
Out[3]: 1

(另外,我也不太明白ser1.write(…)命令返回的是什么,如果我在参数中尝试其他值,则该数字将改变…)

当我尝试使用

ser1.write('1'.encode())

LED灯亮起,快乐的日子

但是,当我尝试通过写入python终端来关闭它时:

ser1.write('2'.encode())

LED不会熄灭。。。?救命啊


Tags: 端口代码inledifserial数字arduino

热门问题