Asi 8 let jsem využíval služeb venkovního
teploměru s čidlem PT100 a sestaveného obvodu s 7107 a 7seg. displeji 14,2mm.
Nevýhodou byla špatná kalibrace (v domácích podmínkách hůře realizovatelné) a taky malý displej
(přece jenom bez brejlí toho moc nevidím :-)
Proto jsem se rozhodl pro stavbu nového teploměru, tentokrát s digitálními čidly DS18B20 (které jsou kalibrovány od výrobce), displeji s výškou znaku 25mm, procesorem ATmega8 a
jako bonbónek analogový teploměr z 5ks RGB LED, plynule měnící barvu a výšku sloupce dle teploty.
Rozsah teplot je od -55°C (testováno jen na -20°C) do 99°C (omezeno programem).
Funkce:
Jádrem celého teploměru je ATmega8 v SMD provedení. Po přečtení teplot z čidel a v závislosti na nastavení programu vyšle data na posuvné registry a zobrazí hodnotu
na displejích. Zároveň si neustále hlídá intenzitu osvětlení z foto-odporu a podle toho spíná tranzistory T4 a T5, čímž přemostí diody D6 a D7 v sérii napájení +5V
k společným anodám displejů. Snížením napětí (asi o 0,7 nebo 1,4V) klesne i jas a s tím i odběr proudu.
RGB teploměr je ovládán 3 kanály PWM regulací přes T1-T3 a spol. anody LEDek jsou spínány posuvným registrem IO5. I zde je jas svitu LEDek regulován, ale tentokrát pomocí PWM.
Na regulaci jasu displejů už nezbyl na ATmega8 žádný volný PWM kanál, vyřešila by to volba výkonnějšího procesoru s vícero PWM kanály a menší úprava programu ... snad někdy.
Nastavení teploměru se prování pomocí 4 tlačítek.
V režimu zobrazování teploty mají tlačítka následující význam:
SW2 - přepínání In/Out teploty (neaktivní v případě nastavení automatického střídání teploty)
SW3 - zobrazí Lo °C a po 0,5s MINimální naměřenou teplotu (při výpadku napájení se maže)
SW4 - zobrazí Hi °C a po 0,5s MAXimální naměřenou teplotu (při výpadku napájení se maže)
V menu mají tlačítka následující význam:
SW1 - vstup do menu, přeskočení položek nebo opuštění menu
SW2 - Enter - potvrzení zvolené hodnoty
SW3 - mínus - krok zpět
SW4 - plus - krok vpřed
- Tlačítkem SW1 se dostaneme do menu nastavení - zobrazí se SEt a čeká buď na další stisk SW1 - opustí menu nebo stisk SW4, čímž skočí na tEP
- tEP - stiskem SW2 zvolím, pak se zobrazí out°C, stisk SW4 in °C, stisk SW4 oboj - tedy vybírám si zobrazovanou teplotu.
Při oboj se periodicky střídá zobrazení In a Out teploty po několika sekundách.
- °C - stiskem SW2 zvolím, pak se zobrazí Ano°C, stisk SW4 Ne °C. Zde se vybírá (potvrzením SW2) zda se zobrazí znak °C. S jedinou vyjímkou, a to při záporné hodnotě
např. -11.5 by s už znak nevešel na displej, proto se automaticky vypustí, ale stoupne-li teplota a uvolní se místo jednoho segmentu, tak se zase automaticky zobrazí °C
- LEd - stiskem SW2 zvolím, pak se zobrazí Ano , stisk SW4 Ne . Zde se vybírá (potvrzením SW2) zapnutí RGB teploměru. (barvy jsou míchány dle náčrtku a počet rozsvícených LED je závislý na teplotě)
Zvolené hodnoty se ukládají do paměti a jsou aktivní i po výpadku napájení.
Konstrukce:
Teploměr je na jednostranné DPS s větším množstvím drátových propojek, hlavně pod displeji. Většina součástek je SMD, takže je potřeba pevná ruka a trocha trpělivosti při
osazování, zvláště procesoru odporů k RGB LEDkám, kde pod nimi vedou i 2 cesty.
Pozor při osazení DIS4, ten je oproti ostatním otočený !!! Protože se na něm zobrazuje znak °C.
Kondenzátory jsem umístil naležato, aby nepřevyšovaly přes displej. Naopak tlačítka jsou vyvýšené pomocí pinů z precizní patice. Foto-odpor je taktéž připájený do úrovně
displejů, aby líp zachytával intenzitu osvětlení.
Pod stabilizátor je třeba dát chladič (použil jsem kus hliníku a dopiloval dle okolních součástek), protože při maximálním osvětlení a zapnutých RGB LED s napájením 12V
už celkem dost topí. To byl taky jeden z důvodů umístit čidlo vnitřní (In) teploty částečně ven z krabičky (vypilovanou dírou v levém horním rohu) a zajištěné tavným lepidlem.
Protože poblíž stabilizátoru čidlo už po pár minutách snímalo i vyzařované teplo s chladiče a to značně zkreslovalo měřenou teplotu (klidně i o pár °C).
Použité RGB LEDky bylo potřeba přebrousit jemným šmirglem, mezi ně jsem umístil přepážky, aby se tolik nepřenášelo světlo k okolním LED a nakonec jsem je zalil do
tavného lepidla, pro zmatnění a rozptylu barev.
Teploměr jsem umístil do krabičky Z 28 (KP 17), není sice úplně ideální (má zkosené díly, proto jsem je musel otočit, aby se krabička srovnala).
Displej je krytý kouřovým plexisklem a RGB teploměr mléčným plexisklem. Obě plexiskla přesně padnou do děr v krabičce a pro jistotu jsou zevnitř zakápnuta tavným lepidlem.
Nakonec jsem na krabičku nalepil potištěnou samolepku přelepenou (mimo displej) ještě průhlednou samolepící fólií. Vnitřek písmene o v nápisu teploměr je vystřihnutý,
protože za ním je foto-odpor snímající intenzitu osvětlení.
Teploměr by měl fungovat i při neosazení IO5, RGB LED a součástek okolo nich - ve schématu označeno fialovou čárou, ale nezkoušel jsem (nechtělo se mi odpájet součástky).
Spotřeba:
Napájení adaptér 12V/0,5A v sérii s 3x1N4007, odběr v závislosti na zobrazené teplotě a osvětlení (hodnoty jsou přibližné) ...
0,25A 5V při plném osvětlení
0,15A 4,3V
0,05A 3,6V
Při 5V a R=68ohm jde na segment displeje 16mA, při 4,3V I=8,6mA a při 3,6V I=3mA
Program:
Nelze rozhodně brát jako nějaké dílo hodné programátora, při čtení teploty z čidel jsem se inspiroval ze ukázkových programů Bascomu a internetu,
zbytek je tak nějak poslepovaný (hlavně překombinované menu) aby to nějak fungovalo. Dokonce se mi povedlo zaplnit Atmegu8 až po strop.
Po zapnutí napájení se zobrazí na displeji
PAJA (klasika u mých konstrukcí :-), procesor si osahá čidla a načte se teplota, která ovšem po zapnutí ukazuje
na 85°C, proto je tam prodleva 1s, po které se pokračuje v normální činnosti. Toto je z důvodu nezobrazení a nezaznamenání této "blbosti" do Max teploty.
Hlavní program kontroluje stav tlačítek, pak jednou za 10 kontrol přečte teplotu z čidel, změří intenzitu osvětlení a dle nastavení zobrazí požadovanou teplotu a
případně i RGB LED.
Dojde li k odpojení nebo poruše čidla za provozu, tak to program pozná a na displeji bliká
Err1 nebo
Err2
Při zobrazení program kontroluje zda je na místě desítek 0, jestli ano tak ji nezobrazí. Dál kontroluje zda se má zobrazit znak °C, to ještě za podmínky větší
záporné teploty např. -12.5 tento znak automaticky vypustí (nevešel by se na displej) a při oteplení se zase automaticky vrátí.
Okomentovaný výpis programu pro teploměr z BASCOMu

Zde je návrh plošného spoje o rozměrech 127 x 71 mm.
Seznam použitých součástek :
R1-R6,8,11-17,
19-25,27-32,34 - 68 SMD vel. 1206 (28ks)
R7,R9,35-37 - 4k7 SMD vel. 1206 (5ks)
R10,18,26,33,
42,45,48,51,54 - 470 SMD vel. 1206 (9ks)
R38,R39 - 100
R40 - VT43N1 FOTO odpor
R41,44,47,50,53 - 220 SMD vel. 0805
R43,46,49,52,55 - 680 SMD vel. 1206
R56,57,59 - 10k
R58 - 10k SMD vel. 1206
P1 - 5k TRIMR - PT6V
C1-C4, C7-C10 - 100n SMD vel. 1206 (8ks)
C5 - 470M/25V
C6 - 100M/16V
T1-T3 - BC817
T4, T5 - IRFD9120
D1-D5 - HB5-40ARAAGCABC (TME) RGB LED - spol. anoda
D6, D7 - 1N4007 SMD
DIS1-4 - HD-AA16RD červený, 25mm, apol anoda
IO1-5 - 74HC595D SMD - SO16
IO6 - 7805 + chladič
IO7 - DS18B20 TO-92
IO8B - PSH02-03W + protikus a na kablík druhé čidlo DS18B20
IO9 - MEGA8-16AU TQFP32
ISP - MLW06G
K1 - ARK500/2
SW1-SW4 - P-B1720 + piny z precizní patice na zvednutí tlačítek (16pinů)

PaJa
© PaJa-trb 2011-
E-mail