lunes, 23 de febrero de 2015

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