Проблема при проверки скетча Аrduino
всем привет я решил сделать чтобы на экран выводилось время и температура и давление но при проверки скетча пишет
exit status 1
Compilation error: exit status 1
из-за чего может быть ошибка помогите кто сможет
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
#include <GyverBME280.h>
#include <Wire.h>
#include <TimeLib.h>
#include <DS1307RTC.h>
#include <GyverOLED.h>
GyverOLED<SSD1306_128x64, OLED_NO_BUFFER> oled;
GyverBME280 bme;
void setup() {
Serial.begin(9600);
delay(200);
oled.init();
oled.clear();
// запуск датчика и проверка на работоспособность
if (!bme.begin(0x76)) Serial.println("Error!");
}
void loop() {
tmElements_t tm;
oled.setScale(2);
oled.setCursor(0, 1);
print2digits(tm.Hour);
oled.write(':');
oled.setCursor(36, 1);
print2digits(tm.Minute);
oled.write(':');
oled.setCursor(69, 1);
print2digits(tm.Second);
oled.setScale(1);
oled.setCursor(0, 4);
oled.print("Temperature ");
oled.setCursor(18, 4);
oled.print(bme.readTemperature());
oled.setCursor(0, 5);
oled.print("Pressure ");
oled.setCursor(18, 5);
oled.print(bme.readPressure() / 139.0F);
delay(1000);
}
void print2digits(int number) {
if (number >= 0 && number < 10) {
oled.write('0');
}
oled.print(number);
}
По дате
По Рейтингу
Исправленный вариант кода с добавлением чтения времени из RTC:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
#include <GyverBME280.h>
#include <Wire.h>
#include <TimeLib.h>
#include <DS1307RTC.h>
#include <GyverOLED.h>
GyverOLED<SSD1306_128x64, OLED_NO_BUFFER> oled;
GyverBME280 bme;
void setup() {
Serial.begin(9600);
delay(200);
oled.init();
oled.clear();
// запуск датчика и проверка на работоспособность
if (!bme.begin(0x76)) Serial.println("Error!");
}
void loop() {
tmElements_t tm;
if (RTC.read(tm)) { // читаем время из RTC
oled.clear();
oled.setScale(2);
oled.setCursor(0, 1);
print2digits(tm.Hour);
oled.write(':');
oled.setCursor(36, 1);
print2digits(tm.Minute);
oled.write(':');
oled.setCursor(69, 1);
print2digits(tm.Second);
oled.setScale(1);
oled.setCursor(0, 4);
oled.print("Temperature ");
oled.setCursor(18, 4);
oled.print(bme.readTemperature());
oled.setCursor(0, 5);
oled.print("Pressure ");
oled.setCursor(18, 5);
oled.print(bme.readPressure() / 139.0F);
} else {
oled.clear();
oled.setCursor(0, 0);
oled.print("RTC read error");
}
delay(1000);
}
void print2digits(int number) {
if (number >= 0 && number < 10) {
oled.write('0');
}
oled.print(number);
}
Ваш код для Arduino с OLED-дисплеем и датчиком BME280 почти готов, но есть одна важная ошибка: переменная tm (типа tmElements_t) не инициализирована, поэтому часы не будут отображаться корректно.
Чтобы получить текущее время с модуля RTC (DS1307), нужно вызвать функцию RTC.read(tm), которая заполнит структуру tm текущим временем.