Arduino串口通信和Python

时间:2012-12-13 21:41:52

标签: python arduino

  

可能重复:
  Pyserial problem with Arduino - works with the Python shell but not in a program

所以我得到了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")

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

1 个答案:

答案 0 :(得分:0)

我希望此链接可以帮助您: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);
  }

}