martes, 13 de marzo de 2012

conversor A/D temperatura y nivel de iluminación



INTRODUCCIÓN

Los microcontroladores están conquistando el mundo. Están presentes en nuestro trabajo, en nuestra casa y en nuestra vida, en general. Se pueden encontrar controlando el funcionamiento de los ratones y teclados de los computadores, en los teléfonos, en los hornos microondas y los televisores de nuestro hogar. Pero la invasión acaba de comenzar y el nacimiento del siglo XXI será testigo de la conquista masiva de estos diminutos computadores, que gobernarán la mayor parte de los aparatos que fabricaremos y usamos los humanos.


VÍDEO INTRODUCTORIO A LOS MICROCONTROLADORES:




AHORA SI AL PROYECTO
este proyecto consistirá en  medir la  temperatura y el nivel de iluminación 

El circuito contará con dos entradas analógicas así como se ve en el esquemático que esta abajo  ya montado en proteus a través de estas entradas, debe medirse la temperatura y el nivel de iluminación  en un cuarto o lugar que quieras . 


esquemático en proteus 

ahora se ira explicando cada etapa del montaje :

1 .ETAPA DE TEMPERATURA:
La primera etapa conectada a RA0 es un sensor de temperatura LM35:



El sensor entrega por su salida 10mV/ºC. Es decir, si la temperatura es de 1ºC la salida del Sensor es de 10 mV. Debido a que la resolución del conversor del micro es de 4,89mV, si Conectamos directamente el sensor al micro este solo podrá detectar cambios de temperatura De aproximadamente 2ºC, por lo que se hace necesario Amplificar la salida del sensor por un factor de 10.
Esto se logra con el amplificador operacional LM358 configurado como amplificador no inversor. 
 R1=330 y R2=2970  ya están Calculadas para lograr una ganancia de 10.
Así el sensor pasará de entregar 10 mV/ºC a Entregar 100 mV/ºC, y como la resolución del micro, como se dijo antes es de 4,89 mV, ahora alimentación del LM358 es de 9V.

2.ETAPA DE NIVEL DE ILUMINACIÓN:
Esta etapa utiliza el sensor conocido como LDR o Resistor dependiente de Luz, que es un dispositivo que varía su resistencia eléctrica en función de la luz:

Este dispositivo no tiene polaridad para ser conectado por lo que puede conectarse de Cualquier forma. Sin embargo, para convertir el valor de resistencia en voltaje debe colocarse Como un divisor de tensión, esto se muestra en el circuito cuando se conecta la LDR con la Resistencia R3. Fíjese que en R3 no se ha colocado el valor de la resistencia. Esta se debe Calcular o hallar experimentalmente. Cuando incide máxima luz sobre la LDR el valor de Resistencia varía entre 500 a 1000 y en oscuridad total entre 50 K a varios MΩ. Busque Una resistencia R3 tal que en máxima luz salga del divisor de tensión aproximadamente 5V y en Oscuridad total salgan 0V. Puede aplicar la teoría elemental de circuitos eléctricos y divisor de Tensión.

FUNCIONAMIENTO DEL CIRCUITO
Al iniciar, la LCD mostrará lo siguiente:

Donde Ta y Tb indican temperatura alta y baja respectivamente, mientras     que Ia e Ib representan iluminación alta y baja respectivamente.  Por medio del teclado el usuario
ajustará un valor de temperatura baja y una alta de 00 a 50 º C y un nivel de iluminación bajo y  uno alto entre 00 y 99%, como en el siguiente ejemplo:


Cuando el usuario ingrese los valores, presionara una tecla de confirmación y el sistema empezará a visualizar la temperatura y el nivel de iluminación, en ambos casos con un decimal de precisión:

Mientras los valores de temperatura y de iluminación permanezcan dentro de los rangos establecidos por el usuario, el sistema visualizará como la figura anterior. Si cualquiera de los valores de temperatura o de iluminación se salen por debajo o por encima de los rangos preestablecidos, la visualización de la LCD respectiva reemplazará la medición por un letrero de alerta.
Por ejemplo, supongamos que la temperatura cayó por debajo del valor que estableció el usuario de 18ºC, entonces la LCD cambiará a:
Al mismo tiempo que uno de los 4 leds indicará temperatura baja encendiéndose hasta que la temperatura entre nuevamente en un rango normal. Lo mismo deberá suceder si el nivel de iluminación se sale de los rangos establecidos por el usuario. Los 4 leds respectivamente, servirán para indicar de forma luminosa: Temperatura baja, Temperatura alta, Iluminación baja e Iluminación alta.

bueno aquí les dejo el código para que lo pasen al programa de  proton ide lo prueben en proteus 



seminario google marketing gratis, las nuevas formulas del negocio electrónico.
http://fa78045bb6mvnvmlmo0hry5oe9.hop.clickbank.net/
Click Here!

 4. Código del programa
Device 16F877A
 XTAL=4
Declare LCD_INTERFACE 4  
Declare LCD_DTPIN PORTD.4        
Declare LCD_ENPIN PORTD.2          
Declare LCD_RSPIN PORTD.3
Declare KEYPAD_PORT PORTB
TRISC=000000
TRISD=000010
Dim    KEY As Byte
Dim VAR1 As Byte
Dim    KEY1 As Byte
Dim    KEY2 As Byte
Dim    KEY3 As Byte
Dim    KEY4 As Byte
Dim uno As Byte                                       
Dim VALOR As Word
Dim VALOR1 As Word
Dim tem As Word
Dim HTECL As Word  
Dim HRTECL As Word  
Dim LUZTECL As Word
Symbol MOT = PORTE.0
     ADIN_RES  10                       
     ADIN_TAD  FRC                      
     ADIN_STIME 100                      
ADCON1 = %10000010
Config xt_OSC, WDT_OFF , PWRTE_ON , BODEN_OFF , LVP_OFF, CP_OFF , DEBUG_OFF
Dim VOLTS As Float
Dim temp1 As Float
Dim HUM1 As Word
Dim HUM2 As Word
Dim VALOR3 As Word
Dim D2 As Byte 
Dim D3 As Byte
Dim VALOR2 As Float
Dim VALOR4 As Float                        
Dim CONVER As Word                  
Dim D As Word       
Dim CONTROL1 As Float         
Dim CONTROL2 As Float       
Dim TA As Word
Dim TB As Word
Dim LA As Word
Dim LB As Wor
Dim  luz1 As Float
TA=00
TB=00
LA=00
LB=00
CONTROL1=0
CONTROL2=0
Print $FE,1
Print At 1,1,"Ta= "
Print At 1,8,"Tb= "
Print At 2,1,"La= "
Print At 2,8,"Lb= "       
inicio:
A1: VAR1 = InKey      
KEY = LookUp VAR1, [10,0,12,0,7,8,9,0,4,5,6,0,1,2,3]
DelayMS 100        
If VAR1!=16 Then
Print At 1,5,Dec KEY 
GoTo A2
End If
GoTo A1
A2: VAR1 = InKey     
KEY1 = LookUp VAR1, [10,0,12,0,7,8,9,0,4,5,6,0,1,2,3]
DelayMS 100      
If VAR1!=16 Then
KEY1= (KEY*10)+KEY1
TA= KEY1
Print At 1,5,Dec KEY1
DelayMS 400
GoTo A4
End If
GoTo A2
A4: VAR1 = InKey     
KEY = LookUp VAR1, [10,0,12,0,7,8,9,0,4,5,6,0,1,2,3]
DelayMS 100
If VAR1!=16 Then
Print At 1,12,Dec KEY  ,
GoTo A5
End If
GoTo A4
A5: VAR1 = InKey      
KEY1 = LookUp VAR1, [10,0,12,0,7,8,9,0,4,5,6,0,1,2,3]
DelayMS 100        
If VAR1!=16 Then
KEY2= (KEY*10)+KEY1
TB= KEY2
Print At 1,12,Dec KEY2
DelayMS 400
GoTo A7
End If
GoTo A5
A7:
VAR1 = InKey     
KEY = LookUp VAR1, [10,0,12,0,7,8,9,0,4,5,6,0,1,2,3]
DelayMS 100
If VAR1!=16 Then
Print At 2,5,Dec KEY,
GoTo A8
End If
GoTo A7
A8: VAR1 = InKey      
KEY1 = LookUp VAR1, [10,0,12,0,7,8,9,0,4,5,6,0,1,2,3]
DelayMS 100       
If VAR1!=16 Then
KEY3= (KEY*10)+KEY1
LA=  KEY3
Print At 2,5,Dec KEY3 
DelayMS 400
GoTo A9
End If
GoTo A8 
A9: VAR1 = InKey      
KEY = LookUp VAR1, [10,0,12,0,7,8,9,0,4,5,6,0,1,2,3]
DelayMS 100
If VAR1!=16 Then
Print At 2,12,Dec KEY 
GoTo A10
End If
GoTo A9
A10: VAR1 = InKey    
KEY1 = LookUp VAR1, [10,0,12,0,7,8,9,0,4,5,6,0,1,2,3]
DelayMS 100        
If VAR1!=16 Then
KEY4= (KEY*10)+KEY1
LB=   KEY4
Print At 2,12,Dec KEY4 
DelayMS 500
 GoTo LL
 EndIf
 GoTo A10
 LL:
VAR1 = InKey     
KEY = LookUp VAR1, [10,0,12,0,7,8,9,0,4,5,6,0,1,2,3]
DelayMS 100
Print $FE,1
Print At 1,1, "PRESIONE #"
Print At 2,1, "PARA CONTINUAR"
If VAR1!=16 Then
DelayMS 200
If KEY=12 Then
DelayMS 200
Print $FE,1
GoTo COMPARACION
End If
EndIf
GoTo LL
clrf PORTC
COMPARACION:
GoSub LEER
 If  TA>temp1 Then
 If temp1> TB  Then
 Print At 1,1,"TEMP=       ",DEC2 temp1,""
 PORTC.0=1
 PORTC.1=0
 EndIf
End If
If   LA>luz1 Then
If luz1> LB  Then
PORTC.2=1
PORTC.3=0
Print At 2,1,"ILUM= ",DEC2 luz1,"%"
EndIf
End If
If  TA<temp1   Then
Print At 1,1,"!TEMP.ALTA!",DEC2 temp1 
PORTC.0=0
PORTC.1=1
EndIf
If  TB>temp1   Then
Print At 1,1,"!TEMP.BAJA!",DEC2 temp1
PORTC.0=0
PORTC.1=0
EndIf 
If  LA<luz1   Then
PORTC.2=0
PORTC.3=1
Print At 2,1,"!ILUM.ALTA!   ",DEC2 luz1
EndIf
If  LB>luz1   Then
PORTC.2=0
PORTC.3=0
Print At 2,1,"!ILUM.BAJA!   ",DEC2 luz1
EndIf
GoTo COMPARACION
LEER:
VALOR = ADIn
VALOR1 = ADIn 1
temp1 = (VALOR / 2)
VOLTS = VALOR1 / 10000 
luz1=(VOLTS)*1000

seminario google marketing gratis, las nuevas formulas del negocio electrónico.
http://fa78045bb6mvnvmlmo0hry5oe9.hop.clickbank.net/
Click Here!





4 comentarios:

  1. tendras el archivo .hex para quemarlo al pic? soy principiante en esto pero necesito un proyecto para aprobar la materia porfavor te lo agradeceria mucho amigo!

    ResponderEliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. tienes el codigo en pic c compiler

    ResponderEliminar
  4. amigo disculpa tendrás una imagen mas clara del diagrama en proteos, me serviría de mucho ya que con tu proyecto aprobare mi materia. este es mi correo: jorgecamposmerino@gmail.com

    ResponderEliminar