Enviando datos de temperatura con el LM35 a Matlab
A travez del siguiente codigo escrito en Basic para el Pic 16f877A se muestra como enviar los datos del LM35(sensor de temepratura) a Matlab.
Codigo implementado:
'* Name : INVERNADERO.BAS *
'* Author : VArios EPN software de simulacion *
'* Notice : Copyright (c) 2013 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 2013-08-31 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
INCLUDE "MODEDEFS.BAS" ; se incluye los modos de comunicacion
DEFINE OSC 4 ; se define el oscilador externo de 4Mhz
define LCD_DREG PORTB
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTB ; se configura el puerto y
DEFINE LCD_RSBIT 5 ; los bits de control del LCD
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 4
DEFINE ADC_BITS 8 ;
DEFINE ADC_CLOCK 3 ;CONFIGURA EL CAD
DEFINE ADC_SAMPLEUS 50 ;
TRISA =%1 ;CONFIGUA PUERTA DE SALIDA
ADCON1=001110 ;CONFIGURA EL PORTA.0 COMO CONVERSOR
PULSO VAR WORD ;VARIABLE PARA GUARDAR DATO DEL SENSOR DE HUMEDAD
TEMPERATURA VAR BYTE ;VARIABLE PARA GUARDAR DATO DEL SENSOR DE TEMPERATURA
PANTALLA:
LCDOUT$FE,1 ;estabiliza el LCD
PAUSE 250
Medicion:
pause 500
GOSUB SENSATEMP ; manda a la rutina de senso de temperatura
lcdout $fe,1
LCDOUT $FE,$80,"Temprtura actual" ; muestra el mensaje temperatura por el LCD
LCDOUT $FE,$c5,DEC TEMPERATURA,"oC" ; muestra en formato decimal la temperatura en el LCD
pause 250
SEROUT PORTD.1, T9600, [#TEMPERATURA] ; envia por el portd.1 a 9600 baudios no invertidos el contenido
; en decimal de temperatura
GOTO Medicion
; lazo infinito
SENSATEMP:
ADCIN 0, TEMPERATURA ;lee el canal del porta.0 y lo guarda en temperatura
TEMPERATURA= (TEMPERATURA/2) ; devido a la etapa amplificadora para estabilizar la señal
RETURN ; dle sensor se divide la variable para 2 y regresa
No hay comentarios.:
Publicar un comentario