Спойлер
// 8.868 Kb, без СО2#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme; // I2C
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
#include "RTClib.h"
RTC_DS3231 rtc;
char daysOfTheWeek[7] [12] = {
"Boc\272pece\275\270e",
"\250o\275e\343e\273\304\275\270\272",
"B\277op\275\270\272 ",
"Cpe\343a ",
"\253e\277\263ep\264 ",
"\250\307\277\275\270\345a ",
"Cy\262\262o\277a ",
};
void setup() {
Wire.begin();
lcd.begin(20,4);
lcd.init(); // Сброс экрана
lcd.clear(); // Очистка экрана
lcd.backlight(); // Включение подсветки
}
void loop() {
//DS3231S
DateTime now = rtc.now(); // читаем дату-время
lcd.setCursor(0, 0); // Выводим время
if (now.hour() < 10) lcd.print("0");
lcd.print(now.hour(), DEC);
lcd.print(":");
if (now.minute() < 10) lcd.print("0");
lcd.print(now.minute(), DEC);
lcd.print(":");
if (now.second() < 10) lcd.print("0");
lcd.print(now.second(), DEC);
lcd.setCursor(0, 1); // Выводим дату
if (now.day() < 10) lcd.print("0");
lcd.print(now.day(), DEC);
lcd.print(".");
if (now.month() < 10) lcd.print("0");
lcd.print(now.month(), DEC);
lcd.print(".");
lcd.print(now.year() - 2000); // Год в двузначном формате???
lcd.setCursor(0, 2); // Выводим день недели на псевдорусском
lcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
// BME280 *************************************************
lcd.setCursor(13, 0);
//lcd.print(bme.readTemperature()); // Выводит температуру с датчика
lcd.print(rtc.getTemperature()); // Это просто экран оживить. Врёт аж на градус, иногда на 2.
lcd.print('\337');
lcd.print("C");
lcd.setCursor(11, 1);
//lcd.print(bme.readPressure() / 100.0F);
//lcd.print("kP");
//----------------
//lcd.print(bme.readPressure() * 0.000750061683F);
lcd.print("mm");
lcd.setCursor(13, 2);
//lcd.print(bme.readHumidity());
lcd.print(" %");
// Пока мусор
lcd.setCursor(13, 3);
lcd.print("1400 CO");
}
До СО2 пока не добрался - застрял на 280-й.
Всё, что закомментировано под кучей звёздочек и ставит меня в тупик.
Стоит раскомментировать хоть одно обращение к BME280 и Нано уходит в циклический перезагруз.
Сегодня ночью эксперименты довели до того, что сбилось время на 3231 и Нано перестала принимать код. Делает вид (светодиодами) что принимает, потом сверяет и ... возвращается к старому. Автоматическая коррекция времени с компом перестала работать. Я уж грешным делом режил, что спалил что-нибудь, т.к. и 168-я и 320-я - одни и теже симптомы. 3 штуки 3238 и ни одна не синхронизирует время при прошивке с компом.
Единственное, что помогло - откат Винды на 4 дня назад - заработала прошивка.
Я, конечно, буду комп перебирать и апгрейдит и Винду переустанавливать, но не сегодня.
Ведь сам код проги с Виндой не связан!
Подскажите, что я упустил, ведь вчера вечером тах хорошо всё шло и ВДРУГ баз и перезагруз по кругу.
П.С. за образец исходника к BME280 брал пример из встроенного архива.
П.П.С. Вроде (не уверен) я какую то библиотеку подключил, когда дописывал что то и после этого началось. Ну это совсем предположение - не компилится без любой, а раньше работало...