問題が発生しました。最近、ArduinoUnoボードを購入しました。コンピューターからの入力を制御するような面白いものを作ろうとしました。pySerialでPythonを使用しましたが、プログラムは次のとおりです。
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))
みなさん、ありがとうございました!! :)