我遇到了问题。我最近买了一块Arduino Uno板。我试图做一些有趣的事情,比如控制我的电脑输入。我曾经用Python pySerial和程序如下:Arduino和pySerial问题
arduino = serial.Serial(portaCOM, 9600, timeout = 1)
... in loop ->
arduino.write(value)
def sliderUpdate(self, event):
pos = self.slider.GetValue()
arduino.write(pos)
time.sleep(.1)
print arduino.readline()
try:
arduino = serial.Serial(portaCOM, 9600, timeout = 1)
except:
print "Errore di connessione alla porta seriale"
写值应值发送到我的主板虽然USB。 装上船的程序是:
const int ledPin = 11;
byte brightness;
void setup(){
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop(){
while(Serial.available()){
brightness = Serial.read();
Serial.print(brightness);
analogWrite(ledPin, brightness); //LED doesn't refresh the brightness
delay(10);
}
}
我的LED正常工作。我尝试了Arduino提供的Fade示例,并且它正在工作..
我检查了程序是否正确发送数据。是的。它返回我之前发送的相同内容。
它应该检索发送的值并设置analaogWriter(pin, VALUE)
,但有些出错或无法正常工作。
我该如何解决这个问题?
解决方案
Arduino的代码
const int ledPin = 11;
byte valoreLed;
void setup(){
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop(){
while(Serial.available()){
valoreLed = Serial.read();
analogWrite(ledPin, valoreLed);
delay(20);
}
}
Python脚本代码:
pos = self.slider.GetValue()
arduino.write(chr(pos))
谢谢大家! :)
你能详细说明它在做什么吗? led保持点亮?它保持关闭吗?你从python发送什么值?你可以在python中添加一个读取以确保这个值被回显给你吗? – superfro 2010-11-30 22:07:53
你也可以发布更多的python代码,你可能没有com端口正确 – superfro 2010-11-30 22:16:14
我试图设置一个led的值... - LED保持点亮?那么当我发送第一个数据的led是,并保持相同的价值,即使我改变它.. - 我是从蟒蛇发送Int -print arduino.readline()这很有趣..它的返回我发送了相同的值...但它没有正确设置“analogWriter(pin,value)”中的值 – fran 2010-11-30 22:17:05