Правильно ли утверждение?
if(temperature < baselineTemp)else{
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}else if(temperature >= baselineTemp+2 && temperature < baselineTemp+4){
digitalWrite(2, HIGH)
digitalWrite(3, LOW)
digitalWrite(4, LOW)
}else if(temperature >= baselineTemp+4 && temperature < baselineTemp+6){
digitalWrite(2, HIGH)
digitalWrite(3, HIGH)
digitalWrite(4, LOW)
}else if(temperature >= baselineTemp+6){
digitalWrite(2, HIGH)
digitalWrite(3, HIGH)
digitalWrite(4, HIGH)
1 ответ
▲ 1
Нет, первые строки должны быть такими:
if(temperature < baselineTemp) {
digitalWrite(2, LOW);
Поэтому else
следует удалить; после первого условия if
и последующих условий else
или else if
могут быть размещены операторы.
В следующий раз выровняйте свой код, выделив его и нажав Ctrl-K.
Кроме того, ваш код можно значительно упростить.
Отсюда следующие требования (реверс-инжиниринг):
- контакт 2 имеет ВЫСОКИЙ уровень, если температура >= baselineTemp + 2, иначе НИЗКИЙ уровень
- контакт 3 имеет ВЫСОКИЙ уровень, если температура >= baselineTemp + 4, иначе НИЗКИЙ уровень
- контакт 4 имеет ВЫСОКИЙ уровень, если температура >= baselineTemp + 4, иначе НИЗКИЙ уровень
Поэтому весь код можно записать так:
digitalWrite(2, temperature >= baselineTemp + 2 ? HIGH : LOW);
digitalWrite(3, temperature >= baselineTemp + 4 ? HIGH : LOW);
digitalWrite(4, temperature >= baselineTemp + 6 ? HIGH : LOW);
,
@Michel Keijzers
Смотрите также:
- Arduino синтаксический анализ строки с использованием sscanf
- Объяснить функцию pulseIn с помощью arduino и ультразвукового датчика
- Проблемы с Serial.read()
- Node.js не может распознавать символы из последовательного порта
- GPS автономный робот
- Создание формулы
- Arduino зуммер кодовая последовательность не срабатывает
- Кодировщик Морзе работает не так, как ожидалось на Arduino UNO