• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Lcd 128x64 i ds 18b20
#1
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 .
 
Odpowiedź
#2
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.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości