;-------------------------------; ; DS Termostat v1 ; ;-------------------------------; ; 1 až 15 teplotních senzorů ; ; DS18B20 ; ; rozsah -55 až +125°C ; ;-------------------------------; ; rozlišení 0,1°C ; ; v pásmu -9,9 až +99,9°C ; ; (okrajové rozlišení 1°C) ; ;-------------------------------; ; 3 výstupy ; ; topení, chlazení, ERR senzor ; ;-------------------------------; ;)S(2011.08 slovak@post.cz; ;-------------------------------; ; ;LED displej 3 místa, společné anody. ; ;Tlačítka, TlS(levé), TlM(střední), TlP(pravé). ; ;Animace: (po startu, resetu) ;Automatické přepínání teplot, nadpis(1,5s), teplota(5s). ;Jakékoliv tlačítko ukončí animaci, následuje ruční procházení. ; ;Ruční procházení menu: ;TlM/TlP Výběr položky nahoru/dolu. Držení tlačítka - rychlé procházení po nadpisech. ;TlS Nadpis právě zobrazované hodnoty. Držení tlačítka (2s) - nastavení mezí, nebo přepnout z teploty na Animaci. ; ;Menu: ;[°C1.] nadpis - teplota 1.čidla (TlM skok na poslední položku) ;[Hi.1.] nadpis - hodnota horní meze ;[Lo.1.] nadpis - hodnota dolní meze ; . ; . ; . ;[°CF.] nadpis - teplota 15.čidla ;[Hi.F.] nadpis - hodnota horní meze ;[Lo.F.] nadpis - hodnota dolní meze (TlP skok na první položku) ;Počet položek menu se automaticky upraví podle počtu vyhledaných DS senzorů. ;Čísla senzorů 10 až 15 jsou zobrazena v HEX tvaru. ; ;Chyba při čtení teploty: (Animace/Procházení) ;[Er.x.] x=číslo vadného senzoru. ; ;Nastavení: (rozsah mezí -55 až +125°C krok 0,1 v okrajovém pásmu krok 1) ;Vybrat požadovanou mez (TlP/TlM). ;TlS Držet (2s) hodnota začne blikat. ;TlP/TlM Upravit +/- (držení tlačítka zrychlí přičítání/odečítání). ;TlS Uložit hodnotu, návrat k procházení. ; ;Termostat: ;Každý senzor má své nastavitelné meze, [Hi.x.] horní, [Lo.x.] dolní. ;Horní mez mínus dolní mez = hystereze. ; ;Výstup B4, topení: ;B4 = 1 když alespoň jedna teplota =< dolní mez ;B4 = 0 když všechny teploty => horní meze ; ;Výstup A1, chlazení: ;A1 = 1 když alespoň jedna teplota => horní mez ;A1 = 0 když všechny teploty =< dolní meze ; ;výstup A3, ERROR senzor: ;A3 = 1 když některé čidlo má poruchu ;A3 = 0 když všechna (nalezená) čidla pracují ; ;Hledání DS obvodů na 1-Wire sběrnici: ;Vybrat některou teplotu (TlP/TlM). ;TlS+TlM Start vyhledávání. ;[0.dS] nalezenému obvodu je přiřazeno číslo 1 až 15 (0=žádný senzor). ;Sériové kódy (prvních 8 bitů) DS obvodů se ukládají do EEPROM, od nejmenšího po největší. ;Chyba při vyhledávání: ;[E.00] nebyl nalezen žádný DS obvod, vyhledávání se opakuje, bliká [E.00]. ;[E.02] dva nebo několik DS obvodů se stejným kódem, vyhledávání se opakuje, bliká [E.02]. Postupně odebírat obvody. ;Vyhledávání spustit jenom při odebrání, přidání, výměna vadného senzoru a po prvním zapnutí nového termostatu. ; ;Mikroprocesor PIC 16F88 ;RB7 Katoda f ;RB6 Katoda a ;RB5 Anoda A1 (znak vlevo) ;RB4 výstup Topení ;RB3 vstup/výstup sběrnice 1-Wire ;RB2 Katoda e, TlS ;RB1 Katoda d, TlM (-) ;RB0 Katoda T, TlP (+) ; ;RA7 Anoda A3 (znak vpravo) ;RA6 Anoda A2 (znak střední) ;RA5 vstup (nevyužito) ;RA4 Katoda g ;RA3 výstup ERROR senzor ;RA2 Katoda c ;RA1 výstup Chlazení ;RA0 Katoda b ;-------------------------------- LIST P=16F88, R=DEC, MM=ON ;Direktivy překladače include ;Definice názvů registrů ;Nastavení konfigurace procesoru: __CONFIG _CONFIG1,_CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _MCLR_OFF & _PWRTE_OFF & _WDT_ON & _INTRC_IO __CONFIG _CONFIG2,_IESO_OFF & _FCMEN_OFF ;-------------------------------- LIST P=16F628A, R=DEC, MM=ON ;Direktivy překladače include ;Definice názvů registrů ;Nastavení konfigurace procesoru: __CONFIG _BODEN_OFF & _BOREN_OFF & _CP_OFF & _PWRTE_OFF & _WDT_ON & _LVP_OFF & _MCLRE_OFF & _INTOSC_OSC_NOCLKOUT