Помогите разобраться со скетчем. Не показывает текущую температуру.
#include <OneWire.h>
#include <DallasTemperature.h>
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);
//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);
int position = 0;
int temp_max = 35;
#define pin_plus 5
#define pin_minus 4
#define pin_rele 7
#define ONE_WIRE_BUS 12
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress tempDeviceAddress; // Устройство для хранения адреса датчика
int temperatura;
int plus, minus;
unsigned long previousMillis = 0;
//Интервал измерения температуры
const long interval = 10000;
void draw()
{
//Прямоугольник для текущей температуры
u8g.drawRFrame(0, 17, 84, 46, 2);
u8g.setFont(u8g_font_profont29 );// u8g_font_fub20
//Обновление температуры на дисплее.
u8g.setPrintPos(9, 50);
u8g.print(temperatura);
//Символ градуса
u8g.drawCircle(51, 33, 3);
u8g.drawStr( 56, 50, "C");
u8g.setFont(u8g_font_tpss);
u8g.drawRBox(0, 0, 128, 18, 0);
u8g.setColorIndex(0);
u8g.drawStr( 5, 11, "Temperature Controller");
u8g.setColorIndex(1);
u8g.drawRFrame(86, 17, 42, 46, 2);
if (temp_max <= temperatura)
{
//Температура выше заданной температуры.
u8g.drawRBox(86, 17, 42, 22, 2);
u8g.setColorIndex(0);
u8g.drawStr(96, 33, "SET");
u8g.setColorIndex(1);
//Включить релейный выход
digitalWrite(pin_rele, LOW);
}
else
{
//Температура ниже заданной температуры.
u8g.drawRFrame(86, 17, 42, 22, 2);
u8g.drawStr(96, 33, "SET");
//Выключить релейный выход
digitalWrite(pin_rele, HIGH);
}
//Обновляет максимальное значение температуры на экране.
u8g.setPrintPos(100, 55);
u8g.print(temp_max);
u8g.drawCircle(120, 47, 2);
u8g.setColorIndex(1);
}
void setup(void)
{
Serial.begin(9600);
pinMode(pin_rele, OUTPUT);
pinMode(pin_plus, INPUT);
pinMode(pin_minus, INPUT);
sensors.begin();
}
void loop(){
unsigned long currentMillis = millis();
//Таймер для считывания значения температуры
if (currentMillis - previousMillis >= interval)
{
sensors.requestTemperatures();
float temperatureC = sensors.getTempC(tempDeviceAddress);
previousMillis = currentMillis;
}
//Тестовая кнопка для повышения температуры
plus = digitalRead(pin_plus);
if (plus == 1)
{temp_max++;}
while (digitalRead(pin_plus) == 1)
{delay(100);}
//Тестовая кнопка для понижения температуры
minus = digitalRead(pin_minus);
if (minus == 1)
{temp_max--;}
while (digitalRead(pin_minus) == 1)
{delay(100);}
u8g.firstPage();
// Вызов процедуры рисования экрана
do
{
draw();
}
while ( u8g.nextPage() );
delay(50);
}