15-08-2023, 20:13
Witam
Mój pierwszy projekt z wyświetlaczem OLED uruchomiłem i było by wszystko ok tylko jest jeden niuans. Mianowicie wyświetlacz wiesza się i nie pokazuje aktualnych odczytów, mimo to program sterujący działa poprawnie. Wyświetlacz działa 24/7 więc gdzie mogę szukać błędu aby cały czas się odświeżał?
Oto mój kod sterujący wyświetlaczem:
Mój pierwszy projekt z wyświetlaczem OLED uruchomiłem i było by wszystko ok tylko jest jeden niuans. Mianowicie wyświetlacz wiesza się i nie pokazuje aktualnych odczytów, mimo to program sterujący działa poprawnie. Wyświetlacz działa 24/7 więc gdzie mogę szukać błędu aby cały czas się odświeżał?
Oto mój kod sterujący wyświetlaczem:
Kod:
#include <U8glib.h>
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI
void setup() {
}
void loop() {
u8g.firstPage(); //wyczyszczenie ekranu i przygotowanie do wyświetlenia nowej strony
do {
u8g.setFont(u8g_font_helvR08); //wybranie czcionki
u8g.drawStr(0,10,"Bojler");
u8g.drawStr(117,10,"\xB0"); //znak stopni celcjusza
u8g.drawStr(121,10,"C");
u8g.drawStr(0,20,"Pompka");
u8g.drawStr(117,20,"\xB0");
u8g.drawStr(121,20,"C");
u8g.drawStr(0,60,"Przeplyw");
u8g.drawStr(0,30,"Praca");
u8g.setPrintPos(95,10); //ustawienie miejsca wyświetlania odczytu
u8g.print(tempBB); //wyświetlenie odczytu
u8g.setPrintPos(95,20);
u8g.print(tempPP);
u8g.setPrintPos(95,60);
u8g.print(flowCount);
u8g.setPrintPos(95,30);
u8g.print(praca);
u8g.setPrintPos(60,10);
u8g.print(b);
u8g.setPrintPos(60,20);
u8g.print(p);
u8g.setPrintPos(60,30);
u8g.print(czas);
}
while(u8g.nextPage());
u8g.firstPage();
if (aktualnyCzas - przeplyw >= 500UL){
flowCount = 0;
przeplyw = aktualnyCzas;
}
}
void flowISR() {
flowCount++; // zwiększ liczbę impulsów o 1
}