Սկիզբ » Ժեշտ » ՊՐՈՊՈՐՑԻՈՆԱԼ  ՂԵԿԱՎԱՐՄԱՄԲ ԹԵՐՄՈՍՏԱՏ  PIC12F675 ՄԻԿՐՈԿՈՆՏՐՈԼԼԵՐՈՎ և ՀԵՌԱԽՈՍԻ ԷԿՐԱՆՈՎ

ՊՐՈՊՈՐՑԻՈՆԱԼ  ՂԵԿԱՎԱՐՄԱՄԲ ԹԵՐՄՈՍՏԱՏ  PIC12F675 ՄԻԿՐՈԿՈՆՏՐՈԼԼԵՐՈՎ և ՀԵՌԱԽՈՍԻ ԷԿՐԱՆՈՎ

| Հուլիս 22, 2014 | Մեկնաբանված չէ |

Սարքը իրենից ներկայացնում է հզորության կարգավորիչ, որը ղեկավարվում է միկրոկոնտրոլլերի միջոցով: Ի տարբերություն ռելեային ջերմակարգավորիչների , որոնք աշխատում են ջեռուցիչի պարբերաբար միացման-անջատման սկզբմունքով , այս սարքը  միավոր ժամանակում ջեռուցիչից վերցնում է  այնքան  ջերմաքանակ որը համեմատական է  կարգավորված և ռեալ  ջերմաստիճանների տարբերությանը: օրինակ երբ  ջերմաստիճանների  տարբերությունը  հավասար է 5-ի  ,սարքը ջեռուցիչը  միացնում է իր հզորության 50  տոկոսի չափով, 3-ի դեպքում՝ 30 տոկոսի չափով : Այս  հատկության շնորհիվ հնարավոր է դառնում ապահովել ջերմաստիճանի ավելի մեծ ճշտություն: termostat cxem

Տրված և ռեալ ջերմաստիճանների տարբերություն Ջեռուցիչի հզորություն  %
0 0%
1 10%
2 20%
3 30%
4 40%
5 50%
6 60%
7 70%
8 80%
9 90%
10 100%
10-ից մեծ 100%

ՍԱՐՔԻ ԱՇԽԱՏԱՆՔԻ ՍԿԶԲՄՒՆՔԸ Հոսանքը միացնելուց հետո միկրկոնտրոլլոերը 1 անգամ կատարելով իր ներքին մոդուլների ինիցիլիզացիան ,անցնում է անվերջ ցիկլի որտեղ 1. ընդունում և մշակում է ջերմատվիչի LM35-ի  ազդակը, և ստացված տվյալը ջերմաստիճանի տեսքով տպում է էկրանին: 2.Էկրանին տպում է տրված կարգավորված ջերմաստիճանը 3 SET կոճակի սեղման դեպքում ցիկլիկ կերպով փոփոխում է տրված կարգավորվելիք ջերմաստիճանը 4.Էկրանին տպում է ջերմաստիճանների տարբերությունը ,որը փաստացի հզորության չափն է տոկոսներով   Փոփոխական հոսանքի 0-ով անցման ժամանակ միկրոկոնտրոլլերը անցնում է ընդհատման ,որտեղ էլ վերը նշված տվյալների հիման վրա ձևավորում է սիմիստորի ղեկավարման ազդանշան: որպես էկրան օգտագործվել է Motorola  115  հեռախոսի էկրանը (Տես նկարը): foto termostat   ՋԵՐՄ բառի դիմաց տպվում է ռեալ ջերմաստիճանը,իսկ ԿԱՐԳ  նշանակւմ է Կարգավոված ջերմաստիճան:  Վերջին թիվը  նշված ջերմաստիճանների տարբերությունն է, փաստացի ջեռուցիչից վերցրած հզորության չափը: Ստորև բերված է  միկրոկոնտրոլլերի ծրագիրը ,գրված Basic  ծրագրավորման լեզվով,  հուսով եմ որ ծրագրի  առանձին մոդուլներ ձեզ պետք կգան սեփական նախագծերում:

************************************************************

program TERMOSTAT

include “out8”

include “tarer”

SYMBOL kn= gpio.3

symbol vix=gpio.0

dim cnt as word

dim cc,pz,t1,t2,set_temp,term,kk as byte

dim per,k as short

‘*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*–*-*-*-*-*-*–*-*-**

‘*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

‘*********************LCD-INIT*****************************

‘**********************************************************

sub procedure initlcd ‘C115

soft_i2c_config(gpio,4,5)

soft_i2c_start

soft_i2c_write(0x78)

soft_i2c_write(0x00)

soft_i2c_write(0x2e)

soft_i2c_write(0x21)

soft_i2c_write(0x12)

soft_i2c_write(0xc0)

soft_i2c_write(0x0b)

soft_i2c_write(0x20)

soft_i2c_write(0x11)

soft_i2c_write(0x0c)

soft_i2c_write(0x40)

soft_i2c_write(0x80)

soft_i2c_stop

end sub

‘***************************************

‘***************************************

‘************GOTO (X,Y)*****************

sub procedure xy(dim x,y as byte)

dim x1 as byte

dim y1 as byte

x1=x

y1=y

soft_i2c_start

soft_i2c_write(0x78)

soft_i2c_write(0x00)

soft_i2c_write(0x20)

soft_i2c_write(x1+0x80)

soft_i2c_write(y1+0x40)

soft_i2c_stop()

end sub

sub procedure dataa(dim dat as byte)

soft_i2c_start()

soft_i2c_write(0x78)

soft_i2c_write(0x40)

soft_i2c_write(dat)

soft_i2c_stop()

end sub

sub procedure lcdclr

for cnt=0 to 912

dataa(0)

next cnt

end sub

‘************************************************************************************************************

‘*********——PRint_TIV———-**X,Y KETUM TPUM E  TIVY*************************

sub procedure print_tiv(dim x as byte,dim y as byte,dim tiv as byte)

intcon.inte=0

intcon.inte=0

xy(x,y)

for cc=0 to 7

dataa(outx8[8*tiv+cc])

next cc

intcon.inte=1

intcon.inte=1

end sub

””””””””””””””””””””””””’

‘******************************************************

sub procedure bcdd(dim num as byte)

intcon.inte=0

intcon.inte=0

t2=num mod 10

t1=num div 10

intcon.inte=1

intcon.inte=1

end sub

‘******************INTRRUPT*************

sub procedure interrupt

if intcon.intf=1 then

intcon.inte=0

intcon.inte=0

 

if k>=0  then

k=k-1

vix=1

end if

if k<0 then

if pz>0 then

pz=pz-1

vix=0

end if

end if

if pz=0 then

k=per

if k>10 then k=10

end if

pz=10-k

end if

”———————————–

”———————————–

intcon.inte=1

intcon.inte=1

intcon.intf=0

end if

end sub

””””””””MAIN PROGRAM””””””””””””””””””””””””””””

‘***************CPU_INIT+DEFAULT set_temp,K,PZ*****************

main:

delay_ms(100)

osccal=30

set_temp=20

k=10

pz=10-k

trisio=%00000110

option_reg.intedg=1

cmcon=7

ansel=%01010010

initlcd

lcdclr()

‘==========================================================

‘==========================================================

for mm=1 to 100

xy(0,0)

for kk=0 to 100

dataa(%00000101)

next kk

xy(0,7)

for kk=0 to 100

dataa(%00010101)

next kk

‘*******************************************************************************************

‘*****************PRINT TEMPERATURE*****************************************

xy(3,1)

for  kk=0 to 3

for cc=0 to 7

dataa(tarerx8[8*kk+cc])

next cc

dataa(0)

dataa(0)

next kk

 

‘*******************************************************************************************

‘*****************PRINT SET_TEMPERATURE**********************************

xy(3,3)

for  kk=4 to 7

for cc=0 to 7

dataa(tarerx8[8*kk+cc])

next cc

dataa(0)

dataa(0)

next kk

 

 

 

‘***************MAIN CYCLE***************

‘*************************************************

while true

‘*************TEMPERATURE READ/KORREKT***

term=adc_read(1)/2

if term>30 then

term=30

end if

if term<5 then

term=5

end if

‘***************************************

‘********KOCHAKI SEXMMAN STWUGWUM (set_temp)************

if kn=0 then

set_temp=set_temp+1

if set_temp>30 then’ maximum 75%

set_temp=5

end if

if set_temp<5 then

set_temp=5

end if

end if

 

‘***************************************

‘***********HZORUTJAN CHAPI STACUM(PER)*

per=set_temp-term

if per<0 then per=0

end if

if per>10 then

per=10

end if

‘************************************************************

‘*****LCD-TO TEMPERATURE REAL***********

bcdd(term)

print_tiv(50,1,t1)

print_tiv(60,1,t2)

‘***************************************

‘*****LCD-TO TEMPERATURE SET*************

bcdd(set_temp)

print_tiv(50,3,t1)

print_tiv(60,3,t2)

‘***************************************

‘*****LCD-TO PERIOD(POWER-%)************

bcdd(per)

print_tiv(50,5,t1)

print_tiv(60,5,t2)

‘***************************************

‘***************************************

‘————————————————————————

intcon.inte=1

intcon.gie=1

delay_ms(200)

next mm

 

wend

end

 

ՊՐՈՊՈՐՑԻՈՆԱԼ  ՂԵԿԱՎԱՐՄԱՄԲ ԹԵՐՄՈՍՏԱՏ  PIC12F675 ՄԻԿՐՈԿՈՆՏՐՈԼԼԵՐՈՎ և ՀԵՌԱԽՈՍԻ ԷԿՐԱՆՈՎ, 10.0 out of 10 based on 1 rating

Բաժին: Ժեշտ

Կիսվել , տարածել , պահպանել

VN:F [1.9.20_1166]
Rating: 10.0/10 (1 vote cast)

Մեկնաբանեք

Կհաստատվեն միայն մեսրոպատառ հայերենով գրած մեկնաբանությունները

267