У меня проблема.Недавно я купил плату 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);
}
}
Мой светодиод работает нормально.Я попытался с примером Fade, предоставленным Arduino, и он работает ..
Я проверил, правильно ли программа отправляет данные.Да, это.Он возвращает то же, что я отправил ранее.
Он должен получить отправленное значение и установить 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))
Спасибо всем !!:)