Arduino Светодиод горит когда число четное
Если я отправляю в порт число больше десяти, светодиод должен загораться, но он загорается когда число четное. И судя по всему я где-то просто туплю.
int ledPin = 13;
void setup(){
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop (){
Serial.read();
if (Serial.read() > 10){
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
}
else{}
}
Ответы (1 шт):
Автор решения: Vanyamba Electronics
→ Ссылка
void loop (){
if (Serial.available()) {
if (Serial.read() > 10) {
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
}
}
}
Имейте в виду, что если вы отправляете данные через Монитор порта Arduino IDE, отправляя строку "10\r\n", то читать данные нужно иначе:
void loop() {
int n = read_int();
if (n > 10) {
... // код светодиода
}
}
int read_int() {
int n = 0;
while (true) {
while (Serial.available() == 0) {}
char ch = Serial.read();
if (ch == '\n')
return n;
if (ch >= '0' && ch <= '9')
n = n * 10 + ch - '0';
}
}
