我有问题。我最近买了一块Arduino Uno板。我试着做一些有趣的事情,比如控制我电脑的输入。我将 Python 与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))
谢谢大家!!:)