Wir versuchen, ein Programm, das die Helligkeit einer LED mit unserem Arduino mit Tastenanschlägen ändert. Der c-serielle Port-Kommunikationsteil ist fertig, aber wir haben einige Probleme mit dem Arduino-Teil.Versuchen, die Helligkeit einer LED in Arduino durch Eingabe von Zeichen in c ändern
int LedPin = 3;
int brightness = 90;
char deger;
void setup() {
Serial.begin(9600);
pinMode(LedPin, OUTPUT);
}
void loop() {
if(Serial.available()>0)
deger = Serial.read();
if(deger== 'C') {
brightness = 0;
analogWrite (LedPin, brightness);
} //to set the brightness to 0 after an error
if(deger== 'A') {
if(brightness>=255)
brightness = 0;
brightness=brightness+15; // to increase led brightness by 15 with every entry
analogWrite (LedPin, brightness);
}
if(deger== 'B') {
if(brightness<=0)
brightness = 254;
brightness=brightness-15; //to decrease led brightness by 15 with every entry
analogWrite (LedPin, brightness);
}
}
Wir wollen, dass die Helligkeit zu erhöhen, wenn wir ‚A‘ und Abnahme geben, wenn wir ‚B‘ eingeben, aber was passiert, ist, ändert sich die Helligkeit zufällig, wenn A eingegeben und erhöht sich um 15, wenn B eingegeben wird. Sie können sehen, dass B völlig entgegengesetzt zu unseren Absichten handelt und ein A zufällig ist. Was machen wir falsch?
versuchen, ein Zeichen anstelle eines int – OldProgrammer
Zuerst zu machen Helligkeit, die Grenzen Test * nach * den Code bewegen, der die Helligkeit anpasst. Andernfalls senden Sie Werte außerhalb von 0-255 an analogWrite. Ich bin mit Arduinos nicht genug vertraut, um spezifischere Ratschläge zu bekommen, aber das ist ein generisches Problem auf jedem System. – Torp
Einverstanden. Wenn in Ihrem Fall die Helligkeit 250 ist, ist die Bedingung Helligkeit> 255 falsch, dann werden Sie die Helligkeit um 15 erhöhen und diesen Wert in den Analogausgang schreiben. –