Не меняется цвет светодиода

Maria09
Offline
Зарегистрирован: 27.09.2019

#Привет, помогите найти ошибку. Светодиод не меняет цвет при смене значений с датчика

}

#define analogPin A0 // аналоговый выход MQ135 подключен к пину A0 Arduino
#define digitalPin 3 // цифровой выход подключен к пину 3
#define RED 9 // Присваиваем имя RED для пина 9
#define GREEN 10 // Присваиваем имя GREEN для пина 10
#define BLUE 11 // Присваиваем имя BLUE для пина 11



void setup() {

Serial.begin(9600); // инициализация последовательного порта
pinMode(analogPin, INPUT); // режим работы аналогового пина
pinMode(digitalPin, INPUT); // режим работы цифрового пина
delay(1000); //

pinMode(RED, OUTPUT); // Используем Pin9 для вывода
pinMode(GREEN, OUTPUT); // Используем Pin10 для вывода
pinMode(BLUE, OUTPUT); // Используем Pin11 для вывода
}

void loop() {
float analogValue; // для аналогового значения C02
short digitalValue; // для цифрового значения CO 2
analogValue = analogRead(analogPin); // чтение аналогового значения
digitalValue = digitalRead(3); // чтение цифрового значения

if (digitalValue <= 500) {
digitalWrite(GREEN, HIGH); // Включаем зеленый свет
digitalWrite(RED, LOW);
digitalWrite(BLUE, LOW);
}
else if (digitalValue < 1000){
digitalWrite(BLUE, HIGH); // Включаем синий свет
digitalWrite(GREEN, LOW);
digitalWrite(RED, LOW);
}

if (digitalValue >= 1000){
digitalWrite(RED, HIGH); // Включаем красный свет
digitalWrite(GREEN, LOW);
digitalWrite(BLUE, LOW);
}
Serial.print("Уровень СО2: "); // вывод аналогового значения СО2 в последовательный порт
Serial.println(analogValue);

delay(1); //

}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А пояснить как вообще код работает, и что в нём делается, что там за датчик и что (и где) должно меняться? Не судьба? Что происходит? Каким цветом горит? С чего Вы взяли, что он не меняется?

Всё это самим догадываться?

Maria09
Offline
Зарегистрирован: 27.09.2019

датчик СО2 определяет уровень газа в комнате. Если значение нормальное, горит зеленый. Если до 1000, то горит синий. Выше 1000 - красный

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Если у тебя даччик MQ135, то у него значения выше 200 поднимаюца, тока если взбзднешь рядом, ни на что другое он одэкватно не реагирует

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

А чё тут пояснять. Зелёным он всегда горит.  digitalValue  может быть только 0 или 1 а его в строке 27 на <500 сравнивают. Ну, а как ему быть? Меньше, конечно - вот он зелёным и загорается. А строки с №32 по №42 можно просто выбросить - они никогда не срабатывают.

Maria09
Offline
Зарегистрирован: 27.09.2019

есть идеи по модернизации кода? 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Maria09 пишет:

 Если значение нормальное, горит зеленый. Если до 1000, то горит синий. Выше 1000 - красный

Вам уже объяснили, что бывает только digitalValue  0 и 1 вот он у Вас и горит зелёным, т.к. всегда меньше 500.

И, кстати, Вы нам этого так и не сказали - что горит зелёным всё время. Учитесь задавать вопросы.

Maria09
Offline
Зарегистрирован: 27.09.2019

со значениями все в порядке

b707
Offline
Зарегистрирован: 26.05.2017

Maria09 пишет:

датчик СО2 определяет уровень газа в комнате. Если значение нормальное, горит зеленый. Если до 1000, то горит синий. Выше 1000 - красный

Мария, вы сигнал с датчика читаете командой digitalRead() (строка 25).

А вы в курсе, что оператор digitalRead() возвращает только 0 и 1 ? - какие тысячи. о чем вы...

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Maria09 пишет:

есть идеи по модернизации кода? 

Какие идеи? ты переменные перепутал(а). Поставь нормально и вся идея.

Вот скажи, только честно НАХРЕНА ты в строке 24 читаешь переменную analogValue? Чтобы напечатать её в строке №44? И всё? Больше она тебе точно ни зачем не нужна?

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Maria09 пишет:

со значениями все в порядке

С какими значениями? Которые ты в строке 44 печатаешь?

Так ты печатаешь одну переменную, а сравниваешь другую!

b707
Offline
Зарегистрирован: 26.05.2017

Maria09 пишет:

со значениями все в порядке

ну тогда значит все работает верно, что вы от нас хотите еще?

Maria09
Offline
Зарегистрирован: 27.09.2019

все, нашла косяки. всем спасибо

p.s. это моя первая программа на С++

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Не понял!? А "чмоки"?