Hola a todos
Les explico con detalles sobre este proyecto , es un controlador de temperatura
El cual quiero controlar una temperatura de 0 a 1025°C con intervalos programables según lo pensado por el usuario ósea si quiero controlar una temperatura de 90 a 100°C entonces programo temperatura baja de 90°C y temperatura alta 100°C ósea tengo un intervalo de 10°C
Bien ya tienen una idea como funciona mi artilugio jajaja, ahora veamos cuales son los problemas
Que me presenta…
1: no muestra la temperatura censada por el termocupla (MAX6675)
el resto de funciones lo hace correctamente código PBP Microde studio
error en el rango de temperatura el rango maximo llega hasta el valor 255 y no 1024
aqui dejo el circuito y Gracias ante mano por la gran ayuda
'****************************************************************
'* Name : Temperature controller.BAS *
'* Author : Zuniga P. *
'* Notice : GPL *
'* : *
'* Date : 24/10/2010 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
include "modedefs.bas"
define OSC 4
define I2C_SCLOUT 1
define LCD_DREG portb
define LCD_DBIT 0
define LCD_RSREG portb
Define LCD_RSBIT 5
define LCD_EREG portb
define LCD_EBIT 4
symbol SO = portC.4
symbol CS = portC.2
symbol SCK = PortC.3
MAXResult var word
THC var word ' degrees Celsius (* power of 10)
THF var word 'stores degrees F
tempdown var byte
tempup var byte
X var byte
relayA var portD.2
relayB var portD.3
led var portD.4
enter var portD.5
up var portD.6
down var portD.7
eeprom 0,[0,1000]
loop:
low cs
shiftin so,sck,MSBpost,[MAXResult\16] ' get data
high cs
THC= (MAXResult/32) ' Deg. C
THF= (((THC*18)/10)+32) 'Conversion to Deg. F
for x = 1 to 3
high led
pause 200
low led
pause 200
next
read 0, tempdown
read 1, tempup
sence:
lcdout $fe,1,"T.mi T.act T.ma ", dec THC, "C" 'display temp. on LCD
so=so/2
lcdout $fe,$c6,dec thc, "C"
lcdout $fe,$c0,dec tempdown,"C"
lcdout $fe,$cc,dec tempup,"C"
for x = 1 to 50
if enter = 0 then writen
pause 10
next
if thc < tempdown then hot
if thc > tempup then cold
low relayb : low relaya
goto sence
hot:
high relayb : low relaya
goto sence
cold:
high relaya : low relayb
goto sence
writen:
gosub release
recordl:
lcdout $fe,1,"Program Temperature"
lcdout $fe,$c0,"T.down=",dec tempdown,"C"
pause 100
if down=0 then subtractl
if up =0 then addl
if enter=0 then recordA
goto recordl
subtractl:
gosub release
if tempdown < 1 then recordl
tempdown=tempdown - 1
goto recordl
addl:
gosub release
if tempdown > 900 then recordl
tempdown=tempdown + 1
goto recordl
recordA:
gosub release
write 0,tempdown
record2:
lcdout $fe,1,"Program Temperature"
lcdout $fe,$c0,"T.up=",dec tempup,"C"
pause 100
if down=0 then subtract2
if up =0 then add2
if enter=0 then recordB
goto record2
subtract2:
gosub release
if tempup < 5 then record2
tempup=tempup - 1
goto record2
add2:
gosub release
if tempup > 900 then record2
tempup=tempup + 1
goto record2
recordB:
gosub release
write 1, tempup
goto loop
release:
high led
pause 150
low led
release2:
if down = 0 then release2
if up = 0 then release2
if enter = 0 then release2
pause 100
return
end