2012-12-13 86 views
0

可能重複:
Pyserial problem with Arduino - works with the Python shell but not in a programArduino的串行通信和Python

所以我只是給自己買了一個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") 

我一直在使用超時嘗試關閉前的腳本,但沒有幫助。我究竟做錯了什麼?

+0

啊,真棒。我搜索了1-2個小時左右,但還沒有找到這篇文章。謝謝! – Binsh

回答

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); 
    } 

} 
+1

你也應該包括一些解釋,張貼鏈接不會做太多的答案。這將是一個很好的評論。 –