//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(13, 3); lcd.print("1400 CO");
}
Что имею: Nano-168 (пока мучаю её и Нану 328), DS3231, BME280 и датчик CO2 До СО2 пока не добрался - застрял на 280-й.
Всё, что закомментировано под кучей звёздочек и ставит меня в тупик. Стоит раскомментировать хоть одно обращение к BME280 и Нано уходит в циклический перезагруз. Сегодня ночью эксперименты довели до того, что сбилось время на 3231 и Нано перестала принимать код. Делает вид (светодиодами) что принимает, потом сверяет и ... возвращается к старому. Автоматическая коррекция времени с компом перестала работать. Я уж грешным делом режил, что спалил что-нибудь, т.к. и 168-я и 320-я - одни и теже симптомы. 3 штуки 3238 и ни одна не синхронизирует время при прошивке с компом. Единственное, что помогло - откат Винды на 4 дня назад - заработала прошивка. Я, конечно, буду комп перебирать и апгрейдит и Винду переустанавливать, но не сегодня. Ведь сам код проги с Виндой не связан!
Подскажите, что я упустил, ведь вчера вечером тах хорошо всё шло и ВДРУГ баз и перезагруз по кругу.
П.С. за образец исходника к BME280 брал пример из встроенного архива. П.П.С. Вроде (не уверен) я какую то библиотеку подключил, когда дописывал что то и после этого началось. Ну это совсем предположение - не компилится без любой, а раньше работало...
Попробовал тот пример, из которого использовал код - всё отлично выводится в терминал. after 1 hour 22 minutes 13 seconds:[/color][/size] Сейчас провожу эксперимент "наоборот" - взял пример и модернизирую его под мои нужды. Есть у меня большое подозрение, что конфликтуют библиотеки "родные" и Adafruit или виснет BME280 при столь частом и быстром обращении...
Добавлено after 4 hours 9 minutes 44 seconds: Всё, разобрался. Я случайно выкинул инициализацию bme280. Да и опрашивал её слишком часто - по паспорту влажность измеряется около 1 сек, хотя реально быстрее - у меня около 0,3с вышло. Да и весть код переписал и отформатировал.
Теперь хочу разбить программу на 3 части по расширениям: bme280, ds3231 и MH-Z19, что бы раз в секунду или по желанию их "дёргать" из основной программы.
bool status; // default settings bme280 status = bme.begin(); if (!status) { lcd.setCursor(13, 0); lcd.println("BME280 error!"); while (1);} }
void loop() {
// DS3231S DateTime now = rtc.now(); // читаем дату-время // Выводим время lcd.setCursor(0, 0); x = now.hour(); if (x < 10) lcd.print("0"); lcd.print(x); lcd.print(":"); x = now.minute(); if (x < 10) lcd.print("0"); lcd.print(x); lcd.print(":"); x = now.second(); if (x < 10) lcd.print("0"); lcd.print(x); // Выводим дату lcd.setCursor(0, 1); x = now.day(); if (x < 10) lcd.print("0"); lcd.print(x); lcd.print("."); x = now.month(); if (x < 10) lcd.print("0"); lcd.print(x); lcd.print("."); lcd.print(now.year() - 2000); // Год в двузначном формате??? // Выводим день недели на псевдорусском lcd.setCursor(0, 2); lcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения