Arduinoに接続されたLEDの明るさをキーストロークで変更するプログラムを作成しようとしています。 c - シリアルポートの通信部分は完了しましたが、Arduinoの部分にいくつかの問題があります。ArduinoのLEDの明るさをcで文字を入力して変更しようとしています
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);
}
}
は、私たちは「B」を入力したときに、我々は「A」および減少を入力すると、明るさが増加したいが、Bが入力されたときにAを入力し、15ずつ増加されたときに何が起こるの明るさの変化にランダムです。あなたはBが私たちの意図と全く反対に作用し、Aはランダムであることが分かります。私たちは何を間違っていますか?
は、明るさを調整コード*後に境界テスト*を移動し、明るさに代わりにint型 – OldProgrammer
ファーストの文字を作ってみます。そうしないと、analogWriteに0〜255以外の値が送信されてしまいます。私は、より具体的なアドバイスをするためにArduinosにはあまりよく慣れていませんが、これはどのシステムでも一般的な問題です。 – Torp
合意。輝度が250の場合、輝度> 255の場合は輝度が15ずつ増加し、この値がAnalogOutputに書き込まれます。 –