[PROJEKT] Wielokanałowy termometr i termostat z wyświetlaczem OLED [2]

Pierwszą część artykułu możesz przeczytać tu.

 

Działanie termometru

Do magistrali 1-wire można podłączać kilka sensorów. Teoretycznie ich liczba może być duża, ale ze względu na możliwości wyświetlania na zastosowanym wyświetlaczu nie powinno ich być więcej niż 4. Program dopuszcza maksymalnie 20 czujników.

Po wyzerowaniu mikrokontrolera są wykonywane inicjalizacje: wyświetlacza OLED, interfejsu I2C do komunikacji z pamięcią i magistrali 1-wire. Następnie jest wykonywana procedura FindDevices wyszukująca czujniki na magistrali i program przechodzi do wyświetlania jednego z trzech ekranów temperatury:

  • ekran 1 (poniżej), na którym wyświetlana jest ilość wykrytych czujników, kanał pomiarowy do którego dołączono funkcję termostatu i w kolejnych wierszach mierzone temperatury z dołączonych czujników,

02

  • ekran 2 (poniżej). Ten ekran jest przeznaczony do realizowania funkcji termometru domowego wyświetlającego 2 temperatury: wewnętrzna i zewnętrzną. Temperatura wewnętrzna jest odczytywana z pierwszego czujnika na liście, a temperatura zewnętrzna z drugiego czujnika na liście. Żeby ekran 2 działał poprawnie potrzebne jest dołączenie przynajmniej 2 czujników do magistrali,

03

  • ekran 3 (poniżej) spełnia funkcje termometru pokojowego z linijką przedstawiająca graficznie tendencje zmian temperatury w pomieszczeniu.

04

Po włączeniu zasilania z pamięci EEPROM jest odczytywany numer ekranu aktywnego przed wyłączeniem i taki sam ekran zostanie wyświetlony ponownie. Przełączanie pomiędzy ekranami jest wykonywane poprzez przyciskanie ośki impulsatora.

Do wyświetlania informacji na ekranie 1 jest wykorzystana najmniejsza czcionka 8x6pikseli. Nie jest to zbyt czytelne, ale można na ekranie zmieścić najwięcej informacji.

Na listingu 16 pokazano procedurę realizującą funkcje ekranu 1. Na początku z pamięci EEPROM są odtwarzane nastawy termostatu: temperatura progu, histereza i kanał termostatu. Potem jest wyświetlana liczba wykrytych czujników i kanał pomiarowy, do którego jest podłączony termostat. Pomiar temperatury i jej wyświetlanie jest realizowane w nieskończonej pętli. Pomiar temperatury jest wykonywany co 2 sekundy. Po każdym z cykli pomiarowych sprawdzany jest warunek zadziałania termostatu.

List. 16. Funkcja ekran 1

Ekran2 do wyświetlania mierzonych temperatur używa czcionki o średnim rozmiarze 16x10pikseli. Widoczność tak wyświetlanych informacji jest zadawalająca nawet z odległości kilku metrów. W założeniu ekran 2 ma pełnić funkcję domowego tremometru do pomiaru temperatury wewnętrznej i zewnętrznej. Rozdzielczość pomiaru została ograniczona do jednego miejsca po przecinku.

O autorze