2nd place in 2011 competition bascom.at.ua
Much were written about
this amazing " cubes ", has here is solved too to use given
miraculously. Idea was such, support micro-climate in cellar.
For conclusion of information
is used MELT 2х line 16 class, keys of
management with old motherboard 15N03H on 30 volts and ATMEGA 8 -
16PU.
Long hung around with code, on indicator were
removed numerals, well even close not reminded true importance. What turned out
to be, reasons 2, converter with 5 on 3,3 volts and recalculation itself got
data.
With first dared simply,
there is worker of the decision from DECODER’а http://we.easyelectronics.ru/part/datchik-temperatury-i-vlazhnosti-sht21.html
:
With code it happened to
to ask the help beside community, trivial errors from ignorance Bascom's, all we teach!
That was got.
The First cut-in, call
at in menu and choose the button upwards, downwards adjustment hours or limits
of the functioning(working) the ventilator and heating. After striking IN-
entering, all installed parameters are saved in memories MC. This 8 first cells
to memories.
At achievement upper придела to moisture is included ventilator, but at reduction
of the temperature - a heating.
The Ventilators use from
BP computer, heater this Car heater sittings of the car.
CHtob was a best return of the heat, glue her(it) on metallic the base 300*300
mm. If occurs change the ambiance, data and time, are sent on computer through
RS-485.
The Disappearings of the
feeding, in the same way оповещается through port RS-485.
(if adapt autonomous feeding from telephone or simply battery on 4,5 volts.)
Eats the block from 20 volts.
Certainly this not
masterpiece, but works as it is necessary.
Source code:
'*******************************************************************************
'* Description : SHT21_POD *
'* Revision : 1.0 *
'* Controller : ATMEGA8 *
'* Compiler : BASCOM-AVR 1.11.9.8 DEMO *
'* Author : 'AV_ , 2011 *
'* Web : HTTP://WWW *
'*******************************************************************************
'
'************************** Ňčď_ěčęđîęîíňđîëëĺđŕ *******************************
$regfile = "m8def.dat" 'Äë˙ POD ěĺăŕ8
$crystal = 4000000 'ęâŕđö 4 ĚĺĂÖ
$baud = 19200
'$lib "lcd4.lbx" 'čńďîëüçóĺě 4-áčňíîĺ ďîäęëţ÷ĺíčĺ äčńďëĺ˙ ń ďîěîůüţ ŕëüňĺđíŕňčâíîé áčáëčîňĺęč
$lib "mcsbyte.lbx"
$lib "ds1307clock.lib" 'ďîäęëţ÷ŕĺě áčáëčîňĺęó ds1307
$lib "modbus.lbx" 'ďîäęëţ÷ŕĺě áčáëčîňĺęó modbus
$hwstack = 40
$swstack = 16
$framesize = 32
$eeprom
'$sim
'*********************** ęîíôčăóđŕöč˙ ďîđňîâ ***********************************
Config Lcd = 16 * 2 ' ýęđŕí 16*2 (ëţáîé ń ęîíňđîëëĺđîě HD44780)
Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.1 , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5
Config Scl = Portc.5 'ďîäęëţ÷ŕĺě i2c SCL
Config Sda = Portc.4 'ďîäęëţ÷ŕĺě i2c SDA
Const Ds1307w = &HD0 'Ęîíńňŕíňű äë˙ đŕáîňű ń ds1307 çŕďčńü
Const Ds1307r = &HD1 'Ęîíńňŕíňű äë˙ đŕáîňű ń ds1307 ÷ňĺíčĺ
Config Portc.3 = Input 'íîăŕ "Power_pin"
Config Portc.0 = Output 'íîăŕ ęóäŕ ďîäęëţ÷ĺí âęëţ÷ŕňĺëü Q1
Config Portc.2 = Output 'íîăŕ ęóäŕ ďîäęëţ÷ĺí âęëţ÷ŕňĺëü Q2
Config Portd.2 = Output 'íîăŕ äë˙ ďĺđĺęëţ÷ĺíč˙ RS485 ďĺđĺäŕ÷ŕ ďđčĺě
Config Print = Portd.2 , Mode = Reset 'ďî đĺńĺňó
Config Serialin = Buffered , Size = 250 'Áóôĺđ RS485 ăäĺ âńĺ äĺđćčě
Cursor Off 'Âűęëţ÷ŕĺě ęóđńîđ
Cls 'Î÷čńňęŕ ýęđŕíŕ
'*** íŕńňđîčě ďîđň äë˙ ďîäęëţ÷ĺíč˙ ęíîďîę č äđ. óńňđîéńňâ (Q1,Q2,Drying îáîăđĺâ)
Set Portd.7 : Ok Alias Pind.7 'Óńňŕíîâęŕ"Set" âíóňđĺííčé đĺçčńěňîđ íŕ + ââîä
Set Portd.6 : Esc Alias Pind.6 'Óńňŕíîâęŕ"Set" âíóňđĺííčé đĺçčńěňîđ íŕ + ěĺíţ
Set Portd.4 : Up Alias Pind.4 'Óńňŕíîâęŕ"Set" âíóňđĺííčé đĺçčńěňîđ íŕ + âĺđő
Set Portd.5 : Down Alias Pind.5 'Óńňŕíîâęŕ"Set" âíóňđĺííčé đĺçčńěňîđ íŕ + íčç
Set Portd.3 : Fen Alias Pind.3 'Óńňŕíîâęŕ"Set" âíóňđĺííčé đĺçčńěňîđ íŕ + Drying
Power_pin Alias Pinc.3 'Power_pin íĺň!
Q1 Alias Portc.0 'íŕńňđîéęŕ ďîäęëţ÷ĺíč˙ Q1
Q2 Alias Portc.2 'íŕńňđîéęŕ ďîäęëţ÷ĺíč˙ Q2
Q1 = 0
Q2 = 0
'*********************** Ďĺđĺěĺííűĺ SHT-21 *************************************
Dim Data1 As Byte
Dim Data2 As Byte
Dim Crc As Byte
Dim Datat As Word
Dim Datah As Word
Dim T As Single
Dim H As Single
Dim T0 As Single 'Őđŕíčě äë˙ ńđŕâíĺíč˙
Dim H0 As Single 'Őđŕíčě äë˙ ńđŕâíĺíč˙
'***
Dim X1 As Byte 'Îáú˙âčňü áŕéňîâóţ ďĺđĺěĺííóţ X1(âđĺěĺííűĺ äŕí.)
Dim Ay As Byte 'Îáú˙âčňü áŕéňîâóţ ďĺđĺěĺííóţ Ay(öčęëŕ)
Dim J1 As Byte 'Îáú˙âčňü áŕéňîâóţ ďĺđĺěĺííóţ J1(ăîä)
Dim M1 As Byte 'Îáú˙âčňü áŕéňîâóţ ďĺđĺěĺííóţ M1(ěĺń˙ö)
Dim D1 As Byte 'Îáú˙âčňü áŕéňîâóţ ďĺđĺěĺííóţ D1(äĺíü)
Dim H1 As Byte 'Îáú˙âčňü áŕéňîâóţ ďĺđĺěĺííóţ H1(÷ŕń)
Dim Min1 As Byte 'Îáú˙âčňü áŕéňîâóţ ďĺđĺěĺííóţ Min1(ěčíóňŕ)
'************************* Óńňŕíîâî÷íűĺ ****************************************
Dim A As Integer 'Îáú˙âčňü öĺëóţ ďĺđĺěĺííóţ A
Dim B As Integer 'Îáú˙âčňü öĺëóţ ďĺđĺěĺííóţ B
Dim Tem1 As Single 'Îáú˙âčňü öĺëóţ ďĺđĺěĺííóţ Tem1
Dim Tem2 As Single 'Îáú˙âčňü öĺëóţ ďĺđĺěĺííóţ Tem2
Dim C As Integer 'Îáú˙âčňü öĺëóţ ďĺđĺěĺííóţ C
Dim D As Integer 'Îáú˙âčňü öĺëóţ ďĺđĺěĺííóţ D
Dim Vla1 As Single 'Îáú˙âčňü öĺëóţ ďĺđĺěĺííóţ Vla1
Dim Vla2 As Single 'Îáú˙âčňü öĺëóţ ďĺđĺěĺííóţ Vla2
'***************** Ďĺđĺěĺííűĺ Eeprom ĚĘ ďđîöŕ ********************************
Dim Ae As Eram Integer 'Îáú˙âčňü öĺëóţ ďĺđĺěĺííóţ â EEPROM Ae
Dim Be As Eram Integer 'Îáú˙âčňü öĺëóţ ďĺđĺěĺííóţ â EEPROM Be
Dim Ce As Eram Integer 'Îáú˙âčňü öĺëóţ ďĺđĺěĺííóţ â EEPROM Ce
Dim De As Eram Integer 'Îáú˙âčňü öĺëóţ ďĺđĺěĺííóţ â EEPROM De
A = Ae
B = Be
C = Ce
D = De
'*** Ďĺđĺěĺííűĺ ÷ŕńîâ ***
Dim Seco As Byte
Dim Mine As Byte
Dim Hour As Byte
Dim Day As Byte
Dim Dat As Byte
Dim Month As Byte
Dim Year As Byte
'***
'************************************Ďđîöĺäóđű**********************************
Declare Sub Sht21th 'Îáú˙âčňü ďđîöĺäóđó Ňĺđěîäŕň÷čęŕ
Declare Sub Up_Down() 'Îáú˙âčňü ďđîöĺäóđó Up_Down
Declare Sub Drying 'Îáú˙âčňü ďđîöĺäóđó Drying
Declare Sub Heating 'Îáú˙âčňü ďđîöĺäóđó Heating
'***
Deflcdchar 0 , 8 , 20 , 8 , 3 , 4 , 4 , 4 , 3 ' ăđŕäóń
Deflcdchar 1 , 32 , 4 , 4 , 14 , 14 , 31 , 31 , 14 ' Çíŕę âëŕćíîńňč
Deflcdchar 2 , 4 , 10 , 17 , 31 , 17 , 17 , 17 , 31 ' Çíŕę ďîäâŕëŕ
Deflcdchar 3 , 32 , 4 , 4 , 14 , 14 , 31 , 31 , 32 ' Çíŕę âĺđő
Deflcdchar 4 , 32 , 31 , 31 , 14 , 14 , 4 , 4 , 32 ' Çíŕę íčç
'ŕäđĺń ěčęđîńőĺěű-äŕň÷čęŕ SHT21 H80- çŕďčńü, H81- ÷ňĺíčĺ
'Ęîěŕíä äë˙ óďđŕâëĺíč˙ SHT21 âńĺăî 7:
'0xE3 - Čçěĺđčňü ňĺěďĺđŕňóđó. Ďđč ýňîě íŕ âđĺě˙ čçěĺđĺíč˙ ëčíč˙ SCL áóäĺň ďđčćŕňŕ ę çĺěëĺ.
'0xE5 - Čçěĺđčňü âëŕćíîńňü. Ëčíč˙ SCL ňŕę-ćĺ ďđčćčěŕĺňń˙ ę çĺěëĺ íŕ âđĺě˙ čçěĺđĺíč˙.
'0xF3 - Čçěĺđčňü ňĺěďĺđŕňóđó. Íŕ ýňîň đŕç äŕň÷čę íĺ ďđčćčěŕĺň ëčíčţ SCL íŕ âđĺě˙ çŕěĺđŕ.
'0xF5 - Čçěĺđčňü âëŕćíîńňü. Ëčíč˙ SCL íĺ ďđčćčěŕĺňń˙.
'0xE6 - Çŕďčńŕňü äŕííűĺ â ďîëüçîâŕňĺëüńęčé đĺăčńňđ.
'0xE7 - Ďđî÷čňŕňü äŕííűĺ čç ďîëüçîâŕňĺëüńęîăî đĺăčńňđŕ.
'0xFE - Ďĺđĺçŕăđóçčňü äŕň÷čę.
'******** Ďđîöĺäóđŕ *********
Begin:
Cls
Lcd "*** SHT-21 *** "
Do
Gosub Clock 'óçíŕĺě âđĺě˙
Gosub Sht21th 'óçíŕĺě ňĺěďĺđŕňóđó č âëŕćíîńňü
Waitms 900 'ňîđěîçčě
Gosub Xx
Call Heating 'Âűçâŕňü ďîäďđîăđŕěěó(ďđîöĺäóđó) "Heating"
Call Drying 'Âűçâŕňü ďîäďđîăđŕěěó(ďđîöĺäóđó) "Drying"
Cls 'âűâîäčě âđĺě˙ č âńĺ îńňŕëüíîĺ
Lcd Chr(2) ; Fusing(t , "#.#") ; Chr(0) ; " " ; Chr(1) ; Fusing(h , "#.#") ; "%"
Locate 2 , 1
Lcd " " ; Hour ; ":" ; Mine ; " " ; Dat ; "/" ; Month ; "/" ; Day
If Esc = 0 Then Goto Meni 'ęíîďî÷ęč ěĺíţ
Loop
End
'*** SHT-21T ňĺěďĺđŕňóđŕ ***
Sub Sht21th:
I2cstart
I2cwbyte &H80 'ŕäđĺń ěčęđîńőĺěű-äŕň÷čęŕ SHT21
I2cwbyte &HE3 'âűáîđ čçěĺđĺíč˙ ňĺěďĺđŕňóđű â íîđěŕëüíîě đĺćčěĺ
Waitms 100 'čçěĺđĺíčĺ
I2cstart
I2cwbyte &H81 '÷ňĺíčĺ đĺçóëüňŕňŕ čçěĺđĺíč˙
I2crbyte Data1 , Ack 'ďđčĺě ńňŕđřĺăî áŕéňŕ, ćäĺě ńëóäóţůčé áŕéň
I2crbyte Data2 , Ack 'ďđčĺě ěëŕäřĺăî áŕéňŕ
I2crbyte Crc , Nack 'ďđčĺě áŕéňŕ ęîíňđîëüíîé ńóěěű (ěîćíî íŕ íĺăî çŕáčňü)
I2cstop 'ęîíĺö îáůĺíč˙
'***Ń÷čňŕĺě***
Datat = Data1
Shift Datat , Left , 8 'ńäâčă íŕ 8 áčň
Datat = Datat + Data2
T = Datat * 175.72
T = T / 65536
T = T - 46.85
'***Âńĺ***
'*** SHT-21H âëŕćíîńňü ***
'Sht21h:
I2cstart
I2cwbyte &H80 'ŕäđĺń ěčęđîńőĺěű-äŕň÷čęŕ SHT21
I2cwbyte &HE5 'âűáîđ čçěĺđĺíč˙ âëŕćíîńňč â íîđěŕëüíîě đĺćčěĺ
Waitms 100 'čçěĺđĺíčĺ
I2cstart
I2cwbyte &H81 '÷ňĺíčĺ đĺçóëüňŕňŕ čçěĺđĺíč˙
I2crbyte Data1 , Ack 'ďđčĺě ńňŕđřĺăî áŕéňŕ, ćäĺě ńëóäóţůčé áŕéň
I2crbyte Data2 , Ack 'ďđčĺě ěëŕäřĺăî áŕéňŕ
I2crbyte Crc , Nack 'ďđčĺě áŕéňŕ ęîíňđîëüíîé ńóěěű (ěîćíî íŕ íĺăî çŕáčňü)
I2cstop 'ęîíĺö îáůĺíč˙
'***Ń÷ĺň***
Datah = Data1
Shift Datah , Left , 8 'ńäâčă íŕ 8 áčň
Datah = Datah + Data2
H = Datah * 125
H = H / 65536
H = H - 6
'***Âńĺ***
End Sub
'*** Ńđŕâíčâŕĺě äŕííűĺ ***
Xx:
If T <> T0 Then
T0 = T : Print Fusing(t , "#.#") ; "C " ; Hour ; ":" ; Mine ; " " ; Dat ; "/" ; Month ; "/" ; Dat
If H <> H0 Then
H0 = H : Print Fusing(h , "#.#") ; "% " ; Hour ; ":" ; Mine ; " " ; Dat ; "/" ; Month ; "/" ; Dat
If Power_pin < 1 Then
Print "*ÍĹŇ ĎČŇŔÍČß* NO voltages " ; Hour ; ":" ; Mine ; " " ; Dat ; "/" ; Month ; "/" ; Dat
End If
End If
End If
Return
'*** îďđĺäĺë˙ĺě ňĺęóůĺĺ âđĺě˙
Clock: 'ńňŕíäŕđňíŕ˙ đŕáîňŕ ń RTC ds1307 ďî čçâëĺ÷ĺíčţ äŕííűő
I2cstart
I2cwbyte Ds1307w
I2cwbyte &H00
I2cstart
I2cwbyte Ds1307r
I2crbyte Seco , Ack
I2crbyte Mine , Ack
I2crbyte Hour , Ack
I2crbyte Day , Ack
I2crbyte Dat , Ack
I2crbyte Month , Ack
I2crbyte Year , Nack
I2cstop
Seco = Makedec(seco) : Mine = Makedec(mine) : Hour = Makedec(hour)
Day = Makedec(day) : Dat = Makedec(dat) : Month = Makedec(month) : Year = Makedec(year)
Return
'*** Ěĺíţ
Meni:
Cls
Rem Óńň. âđĺěĺíč
Lcd "©cż. łpeĽe˝¸ " ; Chr(3)
Locate 2 , 1
Rem Óńň. äŕň÷čęŕ
Lcd "©cż. ăażŔ¸şa " ; Chr(4)
Do
If Up = 0 Then Goto Ust_v
If Down = 0 Then Goto Ust_d
If Ok = 0 Then Goto Begin
Loop
'***
Ust_v:
'*******************************************************************************
'Âűáîđ č ďîńëĺäóţůĺĺ ńîőđŕíĺíčĺ â ďŕě˙ňü(ýíĺđăîçŕâčńčěóţ) ds1307, ăîäŕ
Cls
Ay = 0
X1 = Year
Do
If X1 > 99 Then X1 = 9
If X1 < 9 Then X1 = 99
Locate 1 , 1
Lcd "*>ŕaża<*"
Locate 2 , 1
Lcd "ˇoă: " ; X1 ; " "
Up_Down
J1 = X1
Loop Until Ay = 1
'*******************************************************************************
'Âűáîđ č ďîńëĺäóţůĺĺ ńîőđŕíĺíčĺ â ďŕě˙ňü(ýíĺđăîçŕâčńčěóţ) ds1307, ěĺń˙öŕ
Cls
Ay = 0
X1 = Month
Do
If X1 > 12 Then X1 = 1
If X1 < 1 Then X1 = 12
Locate 1 , 1
Lcd "*>ŕaża<*"
Locate 2 , 1
Lcd "MecÇĺ: " ; X1 ; " "
Up_Down
M1 = X1
Loop Until Ay = 1
'*******************************************************************************
'Âűáîđ č ďîńëĺäóţůĺĺ ńîőđŕíĺíčĺ â ďŕě˙ňü(ýíĺđăîçŕâčńčěóţ) ds1307, äí˙
Cls
Ay = 0
X1 = Day
Do
If X1 > 31 Then X1 = 1
If X1 < 1 Then X1 = 31
Locate 1 , 1
Lcd "*>ŕaża<*"
Locate 2 , 1
Lcd "ŕe˝Ä: " ; X1 ; " "
Up_Down
D1 = X1
Loop Until Ay = 1
Year = J1
Month = M1
Day = D1
Gosub Set_date
'*******************************************************************************
'Âűáîđ č ďîńëĺäóţůĺĺ ńîőđŕíĺíčĺ â ďŕě˙ňü(ýíĺđăîçŕâčńčěóţ) ds1307, ÷ŕńîâ
Cls
Ay = 0
X1 = Hour
Do
If X1 > 23 Then X1 = 0
If X1 < 0 Then X1 = 23
Locate 1 , 1
Lcd "*>BpeĽÇ<*"
Locate 2 , 1
Lcd "«acĂ: " ; X1 ; " "
Up_Down
H1 = X1
Loop Until Ay = 1
'*******************************************************************************
'Âűáîđ č ďîńëĺäóţůĺĺ ńîőđŕíĺíčĺ â ďŕě˙ňü(ýíĺđăîçŕâčńčěóţ) ds1307, ěčíóň
Cls
Ay = 0
X1 = Mine
Do
If X1 > 59 Then X1 = 0
If X1 < 1 Then X1 = 59
Locate 1 , 1
Lcd "*>BpeĽÇ<*"
Locate 2 , 1
Lcd "M¸˝yżĂ: " ; X1 ; " "
Up_Down
Min1 = X1
Loop Until Ay = 1
Hour = H1
Mine = Min1
Seco = 0
Gosub Set_time
Goto Begin
'***
Set_date:
Day = Makebcd(day) : Month = Makebcd(month) : Year = Makebcd(year)
I2cstart ' Generate start code
I2cwbyte Ds1307w ' send address
I2cwbyte 4 ' starting address in 1307
I2cwbyte Day ' Send Day
I2cwbyte Month ' Mon
I2cwbyte Year ' ăîä
I2cstop
Return
Set_time:
Seco = Makebcd(seco) : Mine = Makebcd(mine) : Hour = Makebcd(hour)
I2cstart ' Generate start code
I2cwbyte Ds1307w ' send address
I2cwbyte 0 ' starting address in 1307
I2cwbyte Seco ' Send Data to SECONDS
I2cwbyte Mine ' min
I2cwbyte Hour ' Hours
I2cstop
Return
'*******************************************************************************
Ust_d:
'***
'Óńňŕíîâęŕ č ńîőđŕíĺíčĺ â eeprom ěę, âűęëţ÷ĺíč˙ Q2
Cls
Ay = 0
X1 = A
Do
If X1 > 10 Then X1 = 7
If X1 < 7 Then X1 = 10
Locate 1 , 1
Lcd "[ Bòop żeĽľ. ]"
Locate 2 , 1
Lcd "TeĽľ. łş».: " ; X1 ; " "
Up_Down
Tem1 = X1
Loop Until Ay = 1
A = Tem1
'*******************************************************************************
'Óńňŕíîâęŕ č ńîőđŕíĺíčĺ â eeprom ěę, âęëţ÷ĺíč˙ Q2
Cls
Ay = 0
X1 = B
Do
If X1 > 10 Then X1 = 4
If X1 < 4 Then X1 = 10
Locate 1 , 1
Lcd "[ Bòop żeĽľ. ]"
Locate 2 , 1
Lcd "TeĽľ. łĂş».: " ; X1 ; " "
Up_Down
Tem2 = X1
Loop Until Ay = 1
B = Tem2
'***
'Óńňŕíîâęŕ č ńîőđŕíĺíčĺ â eeprom ěę, âęëţ÷ĺíč˙ Q1
Cls
Ay = 0
X1 = C
Do
If X1 > 80 Then X1 = 50
If X1 < 50 Then X1 = 80
Locate 1 , 1
Lcd "[ ©cż.ł»a¶˝ocż¸]"
Locate 2 , 1
Lcd "B»a¶. łş».: " ; X1 ; " "
Up_Down
Vla1 = X1
Loop Until Ay = 1
C = Vla1
'*******************************************************************************
'Óńňŕíîâęŕ č ńîőđŕíĺíčĺ â eeprom ěę, âűęëţ÷ĺíč˙ Q1
Cls
Ay = 0
X1 = D
Do
If X1 > 80 Then X1 = 49
If X1 < 49 Then X1 = 80
Locate 1 , 1
Lcd "[ ©cż.ł»a¶˝ocż¸]"
Locate 2 , 1
Lcd "B»a¶. łĂş».: " ; X1 ; " "
Up_Down
Vla2 = X1
Loop Until Ay = 1
D = Vla2
Gosub Epp_store
'***
Epp_store:
Writeeeprom A , Varptr(ae) ' ńîőđŕí˙ĺě ďĺđĺěĺííóţ A â ýíĺđăîíĺçŕâčńčěóţ ďŕě˙ňü ěę
Writeeeprom B , Varptr(be) ' ńîőđŕí˙ĺě ďĺđĺěĺííóţ B â ýíĺđăîíĺçŕâčńčěóţ ďŕě˙ňü ěę
Writeeeprom C , Varptr(ce) ' ńîőđŕí˙ĺě ďĺđĺěĺííóţ C â ýíĺđăîíĺçŕâčńčěóţ ďŕě˙ňü ěę
Writeeeprom D , Varptr(de) ' ńîőđŕí˙ĺě ďĺđĺěĺííóţ D â ýíĺđăîíĺçŕâčńčěóţ ďŕě˙ňü ěę
Return
'***
'*******************************************************************************
'Ďđîöĺäóđŕ îňâĺ÷ŕţůŕ˙ çŕ ââîä äŕííűő, óâĺëč÷ĺíčĺ č óěĺíüřĺíčĺ çíŕ÷ĺíč˙
Sub Up_Down()
Waitms 300
If Up = 0 Then Incr X1
If Down = 0 Then Decr X1
If Ok = 0 Then : Ay = 1 : Else : : Ay = 0 : End If
End Sub
'***
'*******************************************************************************
'Ďđîöĺäóđŕ îňâĺ÷ŕţůŕ˙ çŕ âęë. č âűęë. Ňđ. ďđč çŕäŕííîé â íŕńňđîęéęŕő, ňĺěďĺđŕňóđĺ
Sub Heating
Tem1 = A
Tem2 = B
If T => Tem2 Then : Q2 = 0 : End If
If T <= Tem1 Then : Q2 = 1 : End If
End Sub
'*******************************************************************************
'Ďđîöĺäóđŕ îňâĺ÷ŕţůŕ˙ çŕ âęë. č âűęë. Ňđ. ďđč çŕäŕííîé â íŕńňđîęéęŕő, âëŕćíîńňč
Sub Drying
Vla1 = C
Vla2 = D
If H => Vla1 Then : Q1 = 1 : End If
If H <= Vla2 Then : Q1 = 0 : End If
End Sub
|