Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 27 maja 2020, o 09:42


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
 Tytuł: Wykres na LCD
PostNapisane: 27 mar 2020, o 13:06 
Offline
Użytkownik

Dołączył(a): 22 mar 2014
Posty: 52
Pomógł: 0

Witam, tak jak w temacie próbuję zrobić wykres na wyświetlaczu lcd ssd1963.
Wykres ma przedstawiać zmiany temperatury w czasie.
Do tego celu stworzyłem sobie strukturę która zawiera w sobie tablicę do przechowywania wyników temperatury, i dwie zmienne do których zapisywana jest minimalna i maksymalna temperatura w danym przedziale czasowym.
Wykres ma wyglądać tak:
Obrazek
Tablica do której zapisuję sobie wyniki pomiaru (co 30min jest zapis pomiaru) zawiera 9 pomiarów.
I teraz tak, nie chodzi mi o to aby ktoś mi pomagał zapisywać te wyniki czy coś w tym stylu, ponieważ to wszystko mam zrobione.
Mi chodzi tylko o a by pomógł mi ktoś te wyniki przedstawić na wykresie, a dokładnie obliczyć wartość współrzędnej "y" dla danego pomiaru.
Wykres powinien się skalować za pomocą tych zmiennych min i max temperatury.
Górny punkt wykresu na lcd ma y=226 (max temp), a dolny to y=356 (min temp).
Temperatura 10stC w tablicy pomiarów zapisywana jest jako 100, a np: 18,3stC jako 183.
Jeżeli jest ktoś kto umiałby to obliczać to prosiłbym o pomoc, bo stoję w tym miejscu i nic dalej nie mogę zrobić.

Pozdrawiam, Mateusz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 mar 2020, o 18:10 
Offline
Użytkownik

Dołączył(a): 17 mar 2020
Posty: 32
Pomógł: 4

zerknij po sieci jak to inni robią np tu: https://www.instructables.com/id/Drawing-Charts-in-OLED-Displays-Based-on-SSD1306-D/

i tu fajnie wygląda też: https://rydepier.wordpress.com/2015/07/30/joystick-weather-clock-using-oled-display/

a pewnie też na tym forum są jakieś projekciki tego typu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 mar 2020, o 19:33 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 535
Pomógł: 135

mateusz19955 napisał(a):
Wykres powinien się skalować za pomocą tych zmiennych min i max temperatury.

Nie jestem pewien, co dokładnie masz na myśli, jeśli chodzi o to skalowanie. Jeżeli (teoretycznie) temperatura przez dłuższy czas będzie utrzymywać się na równym poziomie i różnica między wartościami min i max okaże się mniejsza od 1 stopnia, to chcesz to wyskalować na całą dostępną wysokość wykresu (czyli 356-226=130 pikseli)? Pytam, bo w rezultacie małe wahania temperatury rzędu dziesiątych stopnia mogą być wtedy wyrażone dość stromymi zboczami. Taki wykres nie będzie się różnił wizualnie od innego, w którym różnica temperatur min i max będzie wynosiła np. 15 stopni.

Nie napisałeś też, o jaki mikrokontroler i język programowania chodzi.

_________________
Miksowanie kodu C i ASM przy użyciu GCC



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 mar 2020, o 20:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2015
Posty: 55
Pomógł: 1

andrews napisał(a):
Nie napisałeś też, o jaki mikrokontroler i język programowania chodzi.


Nazwa działu, gdzie został utworzony wątek mówi sama za siebie. Proszę zobaczyć.

------------------------ [ Dodano po: 42 minutach ]

Co do postawionego problemu, należy zastosować mapowanie wartości. Przykładowo dane jest:

T [*C] | y[px]
100 -> 226
110 -> ?
198 -> 356

Obliczenia y dla temperatury 110:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


y = (110-100)*(356-226)/(198-100)+239 = 239px



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 7 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO