SVETELEKTRO

18. júla 2016   Verzia pre tlač Verzia pre tlač

Dvojitý časovač pre osvitku DPS


niki31

Uvedený časovač bol postavený ako ovládací modul pre obojstrannú osvetľovaciu jednotku na plošné spoje. Uplatnenie ale môže nájsť aj v mnohých iných zariadeniach. Modul obsahuje dva samostatné časovače, každý ovláda samostatný opticky oddelený triakový spínač. Spustiť časovač je možné tlačítkom alebo externým spínačom.

Časovač pracuje v režime  odpočítavania. Po spustení sú výstupné spínače zopnuté, po vypršaní času sa spínače rozopnú a záťaž sa odpojí. Modul časovača sa skladá z dvoch samostatných dosiek plošných spojov. Na prvej, hornej doštičke je osadený LCD displej 2×16 znakov s radičom HD44780. Ďalej tlačítka, konektor ICSP, piezo-menič a súčiastky okolo. Na dolnej doske je osadený napájací zdroj  230V na 5V a  triakové spínače so spínaním v nule. Spodnú doštičku je možné nahradiť alebo vynechať podľa potreby, bez nutnosti upravovania dosky displeja. Nakoľko je na prepojovacom konektore vyvedený vstup napájania +5V a jednotlivé digitálne výstupy časovačov. Na internete je síce hromada zapojení časovačov ale žiadne zapojenie nevyhovovalo mojím požiadavkám. Hlavne preto že program väčšinou neobsahoval zdrojový kód a  keď obsahoval, tak bol tak  „dorobený“ že sa v ňom vyzná iba jeho autor. V tomto článku popíšem elektrické zapojenie modulu, ďalej popíšem ovládanie modulu. Heslovite popíšem program nakoľko podrobný popis by zabral asi 50 strán výkladu. Priložím schému zapojenia, osadenie dosiek plošných spojov, program aj so zdrojovým kódom v ASM pre prípadné úpravy a tabuľku ovládania časovača.


Technické údaje:

  • Napájacie napätie: sieť 230V~
  • Koncový spínač: triak, spínanie v nule, 400V/6A ~
  • Max. nastaviteľný čas: 59 hod. : 59 min. : 59 sek.
  • Počet pamäťových miest: 10

 
Najprv popíšem ovládanie časovača. Ako som už písal hore jedná sa o časovač na ktorom sa nastaví čas a po spustení beží odpočet až do vypršania nastaveného času. Počas odpočtu sú koncové spínače zopnuté a záťaž je pod napätím, v mojom prípade UV trubice. Keď čas vyprší, (dosiahne hodnotu 00:00:00) koncové spínače sa rozopnú a odpoja záťaž. Časovanie je možné zapnúť iba v prípade že je v čítačoch prednastavený nejaký čas. Časovač má  pamäť pre uloženie 10 časov  ktoré je možné následne kedykoľvek vyvolať ako rýchlu predvoľbu.
 

Ovládanie

Časovač sa ovláda štyrmi tlačítkami, pričom každé rozpoznáva krátke a dlhé stlačenie. Pozri obr.2. Po zapnutí napájania je zobrazené na displeji základné menu časovača, pozri obr.1. Krátkym stlačením niektorého z  tlačítiek, môžeme ovládať funkcie vyznačené v hornom modrom pruhu. Tj. Spustiť alebo pozastaviť odpočet, vynulovať horné počítadlo, vynulovať dolné počítadlo, prednastaviť čas dve minúty do oboch čítačov času. Čas dve minúty používam na osvit vo väčšine prípadov preto som ho použil ako rýchlu predvoľbu. Ak sa stlačí niektoré nulovanie počas odpočtu, čítač času sa okamžite vynuluje a  rozopne sa príslušný koncový spínač, zatiaľ čo druhý časovač beží ďalej. Dlhým stlačením (podržaním asi na 2 sekundy) tlačítka, sa prejde na ďalšie menu, v závislosti od zmačknutého tlačítka. Smer prechodu a  kam vyznačujú šípky na obr.2. Dlhým podržaním KEY1 sa vykoná funkcia SET a prejde sa na menu 2. Vzhľad menu 2 je rovnaký ako menu 1, až na to že v tomto menu bliká na displeji údaj,  ktorý bude po stlačení tlačítka plus alebo mínus menený. Opätovným stláčaním KEY1 (MOVE –>) sa ukazovateľ posúva na ďalšiu hodnotu. Tlačítkom plus alebo  mínus sa hodnota zvýši alebo zníži o jedna, stlačením KEY4  (+30) sa k hodnote na displeji pripočíta 30. Podržaním KEY1 (OK) sa nastavená hodnota prenesie do čítačov času. Podržaním ESC sa vykoná návrat z menu 2 do menu 1, bez ovplyvnenia aktuálne nastaveného času. Dlhým stlačením tlačítka KEY4 (MEM) je možné vyvolať menu 3. Pozri obr.3. Na displeji sa zobrazuje číslo pamäťového miesta a časy ktoré sú na tomto mieste uložené. Tlačítkami plus a mínus sa posúva číslo pamäťového miesta, medzi hodnotou 0 až 9.  Stlačením KEY1 (OK) sa nastavená hodnota prenesie do čítačov času. Stlačením ESC sa vykoná návrat z menu 3 do menu 1, bez ovplyvnenia aktuálne nastaveného času. Podržaním tlačítka KEY2 v menu 1 sa prejde opäť na menu 3 ale v režime ukladania do pamäti. Na displeji je text ako na obr.3. Zobrazovaný je čas ktorý sa bude ukladať do pamäti. Tlačítkami plus a mínus sa vyberie pamäťové miesto kde sa uloží nová hodnota času. Stlačením KEY1 (OK) sa nastavená hodnota uloží na vybrané miesto. Stlačením ESC sa odíde z menu 3, bez uloženia času do pamäti.
Pozn.: Ak je odpočet spustený externým spínačom, tak odpočet zastavíme iba vynulovaním počítadla alebo rozopnutím spínača. Ak je spínač zopnutý a do čítača sa vloží nový čas, odpočet začne okamžite.
 
Schéma zapojenia:  
Elektrické zapojenie je veľmi jednoduché, celé zariadenie je riadené mikrokontrolérom PIC16F88. Ovládacie tlačítka sú pripojené k portu A, rezistory R2,R3,R4,R16 sú zdvíhacie a udržiavajú na tlačítkach napätie 5V. Tlačítka sú typu TC-0111 s krátkym časom odskoku, pod 1mS. Na vývode RA4 IC1 je pripojená sirénka s  frekvenciou tónu okolo 4khz. Pozor, nie piezomenič! Na konektor SV1 sa pripája spínač pre spustenie časovača. V mojom prípade sa jedná o dverný spínač osvitky. Odpočet  sa automaticky spustí  po zatvorení osvitky. Konektor SV2 je ICSP rozhranie pre naprogramovanie mikrokontroléra priamo v obvode. Pre tento účel sú vyhradené piny RB6 a  RB7. LVP programovanie nieje podporované. Cez D1 a rezistor R1 je na vývode MCLR udržiavané napätie 5V,  R1 obmedzuje prúd pri resetovaní mikrokontroléra kedy je na vývode MCLR 0V. Pri programovaní, keď je na MCLR napätie +12V, je D1 uzavretá a bráni prenikaniu rušenia do napájacej vetvy zdroja. Voľba  mikrokontroléra padla na typ PIC16F88 pretože obsahuje interný oscilátor ktorý nepotrebuje externé súčiastky. Vývody OSC1, OSC2 sú použité ako výstupy pre ovládanie koncových spínačov časovača. Rezistory R13 a R9 chránia výstupy pred preťažením. Filtračný kondenzátor C4 je tantalový kvôli veľkosti puzdra. Modul displeja je pripojený k mikrokontroléru pomocou 4 bitovej dátovej zbernice. Atypicky k vývodom RB0..RB3, práve kvôli uvoľneniu vývodov RB6 a RB7 pre ICSP programovanie. Deličom z rezistorov R8, R11 sa nastavuje kontrast displeja. R11 bude možno treba upraviť podľa konkrétneho vzorku  displeja, napätie by sa malo pohybovať okolo 0.7V. Prúd tečúci podsvetlením displeja je obmedzovaný rezistorom R20 na asi 60mA,  napätie sa pohybuje okolo 4.1V. Prúd bude takisto treba nastaviť pre každý kus zvlášť. Niektoré moduly už majú obmedzovací rezistor priamo na doske plošného spoja. V tom prípade sa môže nahradiť R20 drôtovou prepojkou. Pozor na polaritu napájania podsvetlenia! Vývody číslo 1-14 mávajú spravidla na všetkých moduloch rovnaké zapojenie. Vývody 15 a 16  bývajú umiestnené napravo ale aj naľavo a v rôznej polarite. Niektoré moduly majú spájkovacie body ktorými sa polarita dá meniť.

Pre túto konštrukciu treba vybrať modul s konektorom vľavo dole a vývody pre podsvetlenie musia byť napravo. Vývod +5V podsvetlenia musí byť vpravo na kraji konektora, ako je to vyznačené na výkrese plošného spoja. Schéma napájacieho zdroja +5V a výkonových spínačov je na obr.5.  Zdroj je klasický so stabilizátorom typu 7805. Transformátor je určený do plošného spoja a má výkon 4.5VA. Ochrannú poistku a sieťový vypínač treba doplniť pri montáži do skrinky. Koncový spínač tvorí triak ktorý je ovládaný optotriakom so spínaním v nule. R7 obmedzuje prúd optotriakom. Dióda LED1 indikuje zopnutie koncového stupňa. Prúd diódou v LED1 a OP1 je obmedzený rezistorom R15. Dióda LED1 musí byť dimenzovaná na prúd 20mA, preto som použil vysoko svietivé ledky. Prúd okolo 15mA je potrebný pre spoľahlivé otvorenie optotriaku. Podľa použitých LED diód bude treba upraviť hodnotu odporu rezistorov R15 a R17.  Zenerova dióda D2 a D3 tvorí napäťové prispôsobenie bázy tranzistora k výstupu mikrokontroléra. Napätie na výstupe mikrokontroléra sa pohybuje pri Log.0 okolo 0.8V, pri tomto napätí je tranzistor už dávno zopnutý. Preto treba toto napätie znížiť použitím zenerových diód. Pred výrobou plošných spojov treba zhromaždiť súčiastky a  návrh dosky prípadne upraviť. Hlavne podľa typu použitých chladičov.
 
Tab.1  zoznam súčiastok

R1,R2,R3,R4,R8,R16 2K2 C4 47u/10V
R5,R6 100R C5,C6 100n
R7,R10,R12,R14,R18,R19 390 C7 470u/10V
R9,R13 1K C8 470u/25V
R15,R17 56R D1,D4,D5 1N4148
R20 18R D2,D3 2V7
B1 mostík 1A W005M (tme) X1 ARK500/6
IC1 PIC16F88-I/P OP1,OP2 MOC3041
IC2 7805 Q1,Q2 BC237
LCD1 ATM1602, PC1602-LRU LED1,LED2  20mA
S1,S2,S3,S4 Napr. 1301.9307     (tme) SG1 KPE242, BPT-14X (tme)
SV1 PSH02-02WG       (gme) SV3 PRSL04          (PRSL20)
SV2 PSH02-04WG       (gme) SV4 SIL-04PZ      (SIL-05PZ)
T1,T2 TIC206M,   BT136-600E    
TR1 4.5VA-EI382 1189 HAHN  (4.5W/9V) KK1 HS-135-38
CHL1,CHL2 Napr. SK437-30STS2    

 
Všetky súčiastky sa dajú kúpiť vo firme GME  a  TME.

Firmware pre mikrokontrolér

Obslužný program je napísaný v assembleri v prostredí MPLAB v 8.8. Program využíva dva  prídavné  moduly. Prvý je modul pre čítanie a zápis do EEPROM  mikrokontroléra, s názvom  EEPROM.inc. Druhý je 4 bitový  ovládač displeja, názov súboru je HD44780.inc.  Oba moduly je možné využiť aj v iných projektoch. Ovládač lcd displeja podporuje iba 4 bitový mód, 8 bitový mód bol odstránený kvôli úspore pamäti. Čakacie slučky sú nastavené pre frekvenciu oscilátora 4Mhz. Pripojiť a ovládať je možné všetky druhy displejov s radičom HD44780, jedno až  štvorriadkové s maximálnym počtom znakov 80. Druh a parametre pripojeného displeja sa nastavia v hlavičke modulu. Popis ovládača displeja a zoznam podporovaných príkazov  bude priložený v dokumente „Popis modulu HD44780“  a popis ovládača EEPROM v dokumente  „Popis modulu EEPROM.
 
Pozor! V konfiguračnom slove je vypnutá podpora debugera, bit 11 je nastavený na log.1.
Samotný program je rozdelený na dve hlavné časti, prvá je slučka časovača  a druhá hlavná programová slučka. Obe slučky pracujú asynchrónne nezávisle jedna od druhej. Časovač TMR1 je využitý ako časová základňa pre spúšťanie časovej slučky, prerušenie nastáva každých 250mS. Celý kód časovej slučky sa nachádza v obsluhe prerušenia od TMR1. Slučka obsahuje dva časové okruhy, prvý sa vykonáva každých 250mS a druhý raz za sekundu. V časovom okruhu 250mS je ešte vložené nastavovanie príznaku T500mS. Jeho hodnota sa invertuje každých 500mS a obsluhuje blikanie časového údaja pri nastavovaní času.

Slučka 250mS sa stará o neustále zobrazovanie času z registrov HOD1,MIN1,SEC1,HOD2,MIN2,SEC2 na displeji. Pomyselne vytvára akýsi modul s rozhraním, ktoré tvoria už spomínané časové registre. Zápisom
Akejkoľvek hodnoty do niektorého z registrov sa táto hodnota najneskoršie do 250mS zobrazí na displeji.
Toto rozhranie obsahuje ešte aj register BLIK, ten obsahuje príznaky ktoré ovládajú blikanie jednotlivých časových údajov na displeji. Napríklad B_H1 ovláda blikanie času z registra HOD1.
Ďalej sa v 250mS intervale zisťuje, či je v čítači času nastavený nejaký čas. Informáciu o tomto stave nesú príznaky TIC1 a TIC2 „time in counter“, Log.1 indikuje že čítač obsahuje nejaký čas. Tieto príznaky sa využívajú v sekundovej slučke k blokovaniu odpočtu času ak sú čítače  na nule. Nakoniec je ešte jedna vec o ktorú sa stará 250mS slučka a to je vypínanie koncových spínačov ak dôjde odpočet až do nuly. O zapínanie sa stará sekundová slučka, po spustení odpočtu času.            

Ako druhá je jedno sekundová slučka. Po spustení odpočtu táto slučka zopne koncové spínače a znižuje obsah čítačov času. V každom  prechode odpočíta od nastaveného času jednu sekundu. Spustenie alebo zastavenie odpočtu sa ovláda príznakom TM.  Dosiahnutím hodnoty 00:00:00 odpočet skončí a príznak TM je automaticky zhodený. 
 
Programová slučka je síce najdlhšia časť programu ale zároveň najjednoduchšia. Hlavnú časť tvorí rutina INKEY. Táto rutina sníma stav tlačítiek klávesnice a v registri KEYS vracia nastavené príznaky podľa toho, aké tlačítko bolo stlačené. (KEY1,KEY2…)  Príznak KEY_LONG indikuje že sa jednalo o dlhé stlačenie.
Hlavná slučka teda sníma stav tlačítiek a podľa stavu nastavuje registre času a pod…
 
Nebudem to ďalej rozpisovať, jedná sa o veľmi jednoduchý a pomerne intuitívny program. Prípadný záujemca o podrobnosti, si môže prejsť zdrojový kód programu  ktorý je pomerne hojne okomentovaný.  
  
Balíček projektu k stiahnutiu.

Fotografie hotového výrobku

Ako sa vám páčil tento článok?
  • Páči sa mi (1)
  • Súhlasím (0)
  • Zábavné (0)
  • Informatívne (0)

Pridaj komentár