우리는 Arduino에 연결된 LED의 밝기를 키 스트로크로 변경하는 프로그램을 만들려고합니다. c-serial 포트 통신 부분은 끝났지 만 Arduino 부분에 몇 가지 문제가 있습니다.문자를 입력하여 Arduino의 LED 밝기를 변경하려고 시도했습니다.
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를 입력하면 입력하고 (15)에 의해 증가 될 때 어떤 일이 밝기 변화 무작위입니다. B가 우리의 의도와 완전히 반대되는 것을 볼 수 있습니다. A는 무작위입니다. 우리가 뭘 잘못하고 있니?
시도 밝기 대신 INT – OldProgrammer
최초의 문자 만들기 위해 밝기를 조정 코드 * 후 경계 테스트 * 이동 :
둘째로 경우 내부를 수정합니다. 그렇지 않으면 0에서 255 사이의 값을 analogWrite로 보냅니다. 나는 Arduinos에 대해 더 구체적인 조언을하기에는 익숙하지 않지만, 이것은 어떤 시스템에서도 일반적인 문제이다. – Torp
동의. 밝기가 250 인 경우 밝기> 255가 거짓이면 밝기가 15 씩 증가하고 AnalogOutput에이 값을 씁니다. –