Отображение значений из функции на GLCD

Я новичок в Arduino и пробую свой первый Pro Mini. Мне удалось найти код DS1302 на github, который работает отлично. Моя проблема заключается в попытке добавить код LM35 для отображения данных о температуре и времени.

Кажется, код не запускает функции Цельсия и Фаренгейта. Я прикрепил свой код. Любая помощь будет оценена по достоинству.

//Требуемая библиотека - http://www.rinkydinkelectronics.com/library.php?id=5
//Запись в блоге - http://overskill.alexshu.com/ds1302-real-time-clock-w-arduino/

#include "U8glib.h"
#include <DS1302.h>
#include <PreciseLM35.h>
//целое число с плавающей точкой pinLM35 = A0;
const int pinLM35 = A0;
PreciseLM35 lm35(pinLM35, DEFAULT);

DS1302 rtc(2, 3, 4);
U8GLIB_ST7920_128X64 u8g(13, 11, 12, U8G_PIN_NONE); 

void setup(void) {
  rtc.halt(false);
  rtc.writeProtect(false);

  // Следующие строки можно закомментировать, чтобы использовать значения, уже сохраненные в DS1302
  // После того, как вы прошьете Arduino правильным временем.

  //rtc.setDOW(FRIDAY); // Установить день недели на ПЯТНИЦУ
  //rtc.setTime(12, 0, 0); // Устанавливаем время на 12:00:00 (24-часовой формат)
  //rtc.setDate(6, 8, 2010); // Устанавливаем дату на 6 августа 2010 г.

  // назначить значение цвета по умолчанию
  if (u8g.getMode() == U8G_MODE_R3G3B2)
    u8g.setColorIndex(255); // белый
  else if (u8g.getMode() == U8G_MODE_GRAY2BIT)
    u8g.setColorIndex(3); // максимальная интенсивность
  else if (u8g.getMode() == U8G_MODE_BW)
    u8g.setColorIndex(1); // пиксель включен
}

void draw(void) {
  u8g.setFont(u8g_font_04b_03);
  u8g.drawStr( 2,5, "******************************");
  u8g.drawStr( 13,10, "Arduino Pro Mini Control ");
  u8g.drawStr( 24,20, (rtc.getTimeStr()));
  u8g.drawStr( 1,20, "TIME: ");
  u8g.drawStr(70,20,  "Temp (C): ");
  u8g.drawStr (80,20, (lm35.readCelsius()));
  u8g.drawStr( 25,30, rtc.getDOWStr());
  u8g.drawStr(70,30, "Temp (F): ");
  u8g.drawStr(3,30, "DAY: ");
  u8g.drawStr(80,30, (lm35.readFahrenheit()));
  u8g.drawStr( 24,40, rtc.getDateStr());
  u8g.drawStr(1,40, "DATE: ");
  u8g.drawStr(70,40, "AREF : ");
  u8g.drawStr(80,40, (lm35.readPreciseAref()));
  u8g.drawStr( 15,55, "DS1302 Real Time Clock");
  u8g.drawStr( 2,65, "********************************");
}

void loop(void) {
  // цикл изображения
  u8g.firstPage();
  do {
    draw();
  } while(u8g.nextPage()); //u8g.nextPage()
  // перестраиваем картинку после некоторой задержки
  delay(500);
}

, 👍0

Обсуждение

Пробовали ли вы отправить вывод функций на последовательный монитор и посмотреть, связана ли проблема с библиотекой отображения или функциями?, @Code Gorilla

Я использовал этот код: u8g.setPrintPos(110,20);, @Michael Bennett