Собрал метеостанцию, но показания с датчика СО2 постоянно 5000, при тесте датчики показывают все ОК. Отсоединяю датчик показания меняются на -1. Подскажите что не так ,может сам датчик?
Что это значит? И чем отличаются условия "при тесте" от тех условий, когда датчик показывает 5000?при тесте датчики показывают все ОК.
Вот код по такой доработке. Нужно добавить инициализацию порта для управления реле. И заменить функцию setLED. Собственно в нее добавлено 3 строчки, включения и выключения реле, в зависимости от цвета диода.Всем доброго времени суток! Прошу помощи в дополнении проекта Алекса https://alexgyver.ru/meteoclock/ часы-метеостанция с контролем СО2. Нужно в скетч добавить выход на реле включения вентилятора при загорании на выбор либо желтого либо красного цвета светодиода.
// Пины
// Пин подключения реле
#define RELE_PIN 10
void setLED(byte color) {
// сначала всё выключаем
if (!LED_MODE) {
analogWrite(LED_R, 0);
analogWrite(LED_G, 0);
analogWrite(LED_B, 0);
} else {
analogWrite(LED_R, 255);
analogWrite(LED_G, 255);
analogWrite(LED_B, 255);
}
switch (color) { // 0 выкл, 1 красный, 2 зелёный, 3 синий (или жёлтый)
case 0:
break;
case 1:
analogWrite(LED_R, LED_ON);
// Включаем реле
digitalWrite(RELE_PIN, HIGH);
break;
case 2:
analogWrite(LED_G, LED_ON);
// Выключаем реле
digitalWrite(RELE_PIN, LOW);
break;
case 3:
if (!BLUE_YELLOW) analogWrite(LED_B, LED_ON);
else {
analogWrite(LED_R, LED_ON - 50); // чутка уменьшаем красный
analogWrite(LED_G, LED_ON);
}
// Включаем реле
digitalWrite(RELE_PIN, HIGH);
break;
}
}
// ------------------------- НАСТРОЙКИ --------------------
// Час включения и выключения подсветки
#define BL_START 7
#define BL_STOP 1
// И исправленная функция отрисовки часов
// в конце добавил управление подсветкой
void drawClock(byte hours, byte minutes, byte x, byte y, boolean dotState) {
// чисти чисти!
lcd.setCursor(x, y);
lcd.print(" ");
lcd.setCursor(x, y + 1);
lcd.print(" ");
//if (hours > 23 || minutes > 59) return;
if (hours / 10 == 0)
drawDig(10, x, y);
else
drawDig(hours / 10, x, y);
drawDig(hours % 10, x + 4, y);
// тут должны быть точки. Отдельной функцией
drawDig(minutes / 10, x + 8, y);
drawDig(minutes % 10, x + 12, y);
// Управление подсветкой
// Для сов, которые засыпают после полуночи
#if (BL_STOP < BL_START)
if (BL_STOP <= hours && hours < BL_START) lcd.noBacklight();
else lcd.backlight();
#else
if (BL_START <= hours && hours < BL_STOP) lcd.backlight();
else lcd.noBacklight();
#endif
}
if (Serial.available() > 0) {
String buf_txt = Serial.readString();
if (buf_txt.substring(0,1) == "H"){
Serial.println("Set Hours -> "+buf_txt.substring(1,3));
}
if (buf_txt.substring(0,1) == "M"){
Serial.println("Set Minute -> "+buf_txt.substring(1,3));
}
}
Там с обратной стороны крутилка есть, ее надо покрутить потихоньку, пока не появятся циферки и станут максимально контрастными.Привет, нужна помощь) Экран дисплея ничего не показывает, тупо горит подсветка, адрес менял...
С чем это может быть связано?
Можно, я сделал. Для управления подсветкой нужно добавить еще один проводок для управление с помощью ШИМ сигнала с ардуино.вчера сделал. все здорово, спасибо., вопрос а можно сделать регулировку яркости дисплея? по времени а то ночью слишком яркий
Понял, спасибо. Это выглядит для меня немного контринтуитивно но я только начинаю, буду знать)tx -> rx и rx->tx
Это "приём" и "передача". Если приёмник соединить с приёмником, а передатчик с передатчиком, то какая будет связь? )
Какой-то странный скетч.
Добавил, без эффекта, все так же возвращает нули.@Vedro401, на схеме с последнего фото, как мне кажется,
не хватает перемычки gnd arduino-минус внешнего питания