Arduino Polska Forum
Lcd 128x64 i ds 18b20 - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Wyświetlacze (https://forum.arduinopolska.pl/dzial-wy%C5%9Bwietlacze)
+--- Wątek: Lcd 128x64 i ds 18b20 (/watek-lcd-128x64-i-ds-18b20)



Lcd 128x64 i ds 18b20 - Endriu - 17-03-2020

Witam wszystkich użytkowników Arduino .

Posiadam arduino uno z trzema czujnikami ds 18b20 i wyświetlaczem Lcd 128 x 64 . Problem polega na tym że podczas wyswietlania pomiaru wartość zmienia sie po pól cyfry ( powstają dziwne znaki ), czcionki wielkości 15 punktów , druga sprawa czy jest możliwość wyświetlenia temp z ds 18b20 z jednym miejcem po przecinku z zachowaniem dużej dokładności ?

Kod:
// End of constructor list
#define ONE_WIRE_BUS 7
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

void setup(void) {
  u8g2.begin();
  // Inicjacja czujnika
  sensors.begin();

}

void loop(void) {
  u8g2.setFont(u8g2_font_5x7_tr);
  u8g2.firstPage();
  do {
    u8g2.setCursor(5, 8);
    u8g2.print(F("TEMP 10 PULKA"));
u8g2.setCursor(79, 8);
    u8g2.print(F("TEMP DNIA"));
    u8g2.setFont(u8g2_font_4x6_tf);
 
    u8g2.setCursor(10, 33);
    u8g2.print(F("TEMP"));
    u8g2.setCursor(11, 40);
    u8g2.print(F("KEG"));
    u8g2.setCursor(40, 33);
    u8g2.print(F("TEMP"));
    u8g2.setCursor(37, 40);
    u8g2.print(F("SRODEK"));
    u8g2.setCursor(72, 33);
    u8g2.print(F("TEMP"));
    u8g2.setCursor(67, 40);
    u8g2.print(F("GLOWICA"));
    u8g2.setCursor(98, 33);
    u8g2.print(F("CISNIEN"));
    u8g2.setCursor(107, 40);
    u8g2.print(F("ATM"));
   
    u8g2.setFont(u8g2_font_luBS14_tf);
    u8g2.setCursor(9, 24);
    sensors.requestTemperatures();
    u8g2.print(sensors.getTempCByIndex(1));
    u8g2.setFont(u8g2_font_balthasar_titling_nbp_tn);
    u8g2.setCursor(4, 59);
    u8g2.print(sensors.getTempCByIndex(1));
    u8g2.setCursor(37,59);
    u8g2.print(sensors.getTempCByIndex(2));
 
  } while ( u8g2.nextPage() );
   delay(100);
Z góry dziękuje za wszystkie sugestie .


RE: Lcd 128x64 i ds 18b20 - DVDmulti - 17-03-2020

Zacznij od odświeżania ekranu co 500ms, bo teraz pewnie nie nadąża z odświeżaniem, bo musi to robić w każdej pętli.
Użyj biblioteki Timers bo dość prosta jest.