Dvoubodový termostat a spínací hodiny

vloženo:27.09.2014   aktualizováno:5.04.2016

Teplotní čidla: 2x DS18B20 na 1-wire sběrnici.
Rozsah: -55 ... +125°C, rozlišení 0,1°C.
Přesnost: ±0,5°C v pásmu –10 ... +85°C.
Spínací hodiny: denní, týdenní režim.
Výstupy: 3x relé, přepínací kontakty AC250V/8A.

Ovládání.
  Tlačítka (+) a (-) slouží při běžném zobrazení k procházení MENU, listování dopředu nebo dozadu. Chceme-li rychle vrátit první displej, nemusíme ho hledat, stačí stisknout tlačítko (N). A jestliže 30 sekund nestiskneme žádné tlačítko, dojde k návratu na první displej automaticky.
  Nastavování zahájíme nebo ukončíme tlačítkem (S). Jakmile začne nějaký údaj blikat, mají tlačítka (+)(-)(N) funkce, podle kterých jsou pojmenované. A navíc, držení tlačítka má opakovací efekt, jako rychle přerušované stisknutí.

Základní zobrazení, první displej.

  Správně nastavený čas, datum a den v týdnu je důležitý předpoklad pro správnou funkci spínacích hodin. Reálný čas generuje program (s přesností odvozenou od frekvence krystalu), proto by napájení mikroprocesoru mělo být zálohováno. Pokud přesto dojde k vypnutí napájení, čas se zastaví a sekundy vynulují. Časové údaje, krom sekund, se ale neztratí. Všechna důležitá data, nejen časová, se ukládají do paměti EEPROM, kde vydrží i při vypnutém napájení.
(S) zahájit nastavení času (podržet 2s.)
(+)(-) změnit údaj (sekundy se vynulují, a po dobu držení tlačítka jsou zastavené)
(N) následující údaj (hodiny -> minuty -> sekundy -> den -> datum -> měsíc -> a zpět na hodiny)
(S) ukončit nastavování

Termostat.


  Každému čidlu je přiřazena nastavitelná referenční teplota a hystereze. Ref. teplotu můžeme nastavit v plném rozsahu senzorů, od -55 do 125°C s rozlišením 0,1°C, hysterezi od 0 do 25,5°C. Výstupní relé Re1 a Re2 (obě nezávisle) můžeme nakonfigurovat jak pro topení, tak pro chlazení.
(S) zahájit nastavení referenční teploty
(+)(-) změnit údaj
(N) následující údaj (Ref.teplota -> Hystereze -> a zpět)
(S) ukončit nastavování

Spínací hodiny.

  Pro ovládání časového relé RSH máme k dispozici 12 položek spínacích hodin. Můžeme tedy zadat až 12 různých časů. Při editaci položky zadáme požadovaný stav relé ZAP nebo VYP, potom hodiny a minuty, a nakonec vybereme den, nebo dny v týdnu, kdy má relé přepnout. Pokud nevybereme žádný den, bude položka neaktivní. Takto nastavíme všechny nevyužité položky.
(S) zahájit nastavení položky spínacích hodin
(+)(-) změnit údaj
(N) následující údaj (ZAP/VYP -> hodiny -> minuty -> den v týdnu -> a zpět)
(S) ukončit nastavování
  Kontrola času probíhá jednou za minutu. Jako první se kontroluje den v týdnu, potom minuty, a nakonec hodiny. Pokud všechno souhlasí, přepne časové relé do požadovaného stavu.

Ruční provoz.

  Displej v ručním provozu ukazuje okamžité stavy výstupů ovládající relé. Vlastní ruční provoz ale začíná až po stisknutí tlačítka (S). Stavy výstupů začnou blikat a od té chvíle reagují pouze na příslušná tlačítka. (+) přepíná RT1, (-) RT2, (N) RSH. Výstupy zůstanou v těchto stavech tak dlouho, dokud nestiskneme tlačítko (S). Potom displej přestane blikat a výstupy opět reagují podle termostatu či spínacích hodin.
(S) zahájení ručního provozu
(+) přepne RT1
(-) přepne RT2
(N) přepne RSH
(S) ukončit ruční provoz

Vybrat znak kroužek.

  Zobrazovací LCD moduly mají různé znakové sady. Pokud se místo kroužku (°C) zobrazí něco jiného, máte možnost prohledat celou znakovou sadu vašeho displeje. ASCII kód vybraného znaku se uloží do paměti EEPROM, takže vyhledávání už nebude nutné opakovat.
(S)+(N) zahájení prohledávání, pouze z prvního displeje (2s. podržet obě tlačítka současně)
(+)(-) prohledávání
(S) konec prohledávání

Vyhledávání identifikačních kódů.

  Po každém zapnutí napájení proběhne vyhledávání připojených senzorů. Pokud budou obě čidla nová, přiřazení pozic bude podle jejich ID kódů, menší T1, větší T2. Jiné to ale bude při výměně jednoho čidla. Nové čidlo zaujme pozici toho předchozího (vadného), takže sávající čidlo vždy zůstává na své pozici.

Porucha, Test DS18B20.

  Za běžného provozu může dojít k chybné komunikaci s čidlem. Při ojedinělé chybě se nic neděje, platí poslední načtená teplota. Až několik, po sobě jdoucích chyb, vede k nápisu Porucha. A trvá-li chyba déle, aktivuje se testovací režim.

  Zde program neustále prohledává 1-wire sběrnici a zobrazuje sériová čísla nalezených senzorů, přitom bliká signalizační LED E.S.
  Testovací režim ukončíme podržením tlačítka (S), a není-li 256 sekund stisknuto žádné tlačítko, ukončí se automaticky.

Regulace termostatu, ovládání výstupů.

RT1=1 při, T1 <= Ref.1 
RT1=0 při, T1 => Ref.1 + Hys.1
RT2=1 při, T2 <= Ref.2
RT2=0 při, T2 => Ref.2 + Hys.2
  Výstupy mikroprocesoru RT1 a RT2 ovládají silová relé Re1 a Re2. Třetí výstupy mikroprocesoru RT3 ovládá relé RSH, spínací hodiny.

Schéma, plošný spoj, seznam součástek a vlastně celý hardware najdete zde:
Rozdílový termostat RT2DS

Program (PIC16F1847):
TSH_09.HEX (14,8 kB)

Hlavička zdrojového kódu, nastavení programovacích pojistek:
TSH.asm.txt (3,6 kB)