1

可能重复:
Arduino 的 Pyserial 问题 - 适用于 Python shell 但不适用于程序

所以我刚给自己买了一个Arduino Uno,现在我正在尝试使用USB与它通信。我已经让它与 Arduino IDE 提供的串行监视器一起工作,现在我正在用Python对其进行测试。

当从 USB 读取数据时,程序应该使板上的 LED 闪烁。

我这样做的方式是:

#!/usr/bin/env python
import serial

ser = serial.Serial("/dev/ttyACM0", 9600)
ser.write("something")

这不起作用,但在交互式 shell 中执行每个步骤都有效:

>>> import serial
>>> ser = serial.Serial("/dev/ttyACM0", 9600)
>>> ser.write("something")

我试过在关闭之前在脚本中使用超时,但这没有帮助。我究竟做错了什么?

4

1 回答 1

1

我希望这个链接对你有帮助:arduino-python

--- 已编辑 ---- 我的道歉

这个概念是从 python 脚本向 arduino 发送一些东西。因此,arduino 可以将其解释为打开或关闭 LED 的命令。

在 Python 空闲

>>> import serial
>>> ser = serial.Serial('com7', 9600)
>>> ser.write('ON')

同时在arduino:

int LedPin = 13;
char msg = ' ';

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

void loop()
{
  while (Serial.available()>0)
  {
    msg = Serial.read();
  }

  if (msg=='ON')
  {
    digitalWrite(LedPin, HIGH);
    msg=' ';
  } 
  else if (msg=='ON')
  {
    digitalWrite(LedPin, LOW);
  }

}
于 2012-12-14T01:58:47.997 回答