• 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
Wyświetlacz OLED 1306 + LM35
#3
(23-10-2017, 19:53)kaczakat napisał(a): Witam

W pętli głównej powinieneś czyścić wyświetlacz i wysyłać wynik temperatury, bo mogą się nakładać wyniki poprzednie jeśli nowe są krótsze. Czyli powtórz część kodu z setup. Można też czyścić tylko wybrane wiersze/zakresy ekranu by działało szybciej i tylko tę część odświeżać, ale tego się nauczysz później.
Jeśli działa wyświetlanie "napisu" to zamień najpierw wynik temperatury na "napis" i zobacz czy pomoże. Zwykle funkcje obsługują wysyłanie napisów, akurat "Serial.print()" jest bardzo rozbudowana i sama sobie zamienia int, float na napisy i wysyła, ta z oleda niekoniecznie taka musi być.
Kod:
String napis=String(temperatura);
i potem
Kod:
display.println(napis);
String występuje tu jako typ danych String i jako funkcja String() do konwertowania na napisy.
Dodatkowo podejrzewam, że nie ma sensu używać float do tej temperatury, ten czujnik ma pewnie dokładność +/-2oC, można więc użyć typu int. 

Kod:
a = analogRead(A0); //Odczytanie napięcia z czujnika temperatury
a = (a * 488)/1000;
//i potem
display.println(a);
To da ten sam wynik tylko jako liczbę całkowitą.
 
Możesz zobaczyć czy z int'ami sobie rodzi ta funkcja display.println();. Zysk to również większa szybkość i mniej kodu wynikowego. Na AVR lepiej unikać float.

Można też podzielić tę liczbę po mnożeniu na część całkowitą dzieląc przez 1000 i potem resztę wyświetlić jako sklejony napis, ale  i tak zadziała szybciej i da pewnie mniej kb kodu niż użycie float: 
Kod:
a = analogRead(A0); //Odczytanie napięcia z czujnika temperatury
String napis=(String((a*488)/1000)+"."+ String((a*488)%1000)));
//i potem
display.println(napis);
 
Odpowiedź
  


Wiadomości w tym wątku
Wyświetlacz OLED 1306 + LM35 - przez Seba_Tyb - 20-10-2017, 16:40
RE: Wyświetlacz OLED 1306 + LM35 - przez kaczakat - 23-10-2017, 19:53
RE: Wyświetlacz OLED 1306 + LM35 - przez Seba_Tyb - 24-10-2017, 13:17
RE: Wyświetlacz OLED 1306 + LM35 - przez Seba_Tyb - 24-10-2017, 13:20

Skocz do:


Przeglądający: 1 gości