TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: microfull en 23 de Septiembre de 2006, 02:31:04

Título: Ayuda con AD en pic 16f877
Publicado por: microfull en 23 de Septiembre de 2006, 02:31:04
ya leoelvoltaje con el conersor guardo el valor en una variable visualizo el valor de la variable pero como hago para covertir el valor de la variable a el valor del voltaje que esta leyendo estoy usando conversor de 10 bit´s
y como hago para que me salga el valor por ejemplo yo leo 5.32v el valor guardado en la constante es 63 como hago para pasarla a voltaje
estoy leyendo el voltaje de uan termocupla tipo k
Título: Re: Ayuda con AD en pic 16f877
Publicado por: navaismo en 23 de Septiembre de 2006, 02:53:19
Pues dependiendo de la precision de tu lectura es la forma en que se leen o se manejan, aqui hay un buen de ejemplos con adc.
Por ejemplo si usas Vrefs y el VREF+ = 5V, entonces 1024 seran 5V y si VREF- = 0V o gnd eso sera un 0de ahi podrias hacer tus salidas al LCD o lo que uses. Algo asi como una regla de tres.
Título: Re: Ayuda con AD en pic 16f877
Publicado por: microfull en 23 de Septiembre de 2006, 08:42:39
y como hago para que el resultado me de en com flotante osea que no solo me muestre 4volts 3volt sino 3.1 - 2.5 ejemplo
tengo que modificar el programa este es mi programa
y mi ejemplo en proteus 6.7 sp3
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2006 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 22/09/2006                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
DEFINE  OSC 20

DEFINE LCD_RWREG PORTD
DEFINE LCD_RWBIT 2
DEFINE LCD_DREG PORTD
DEFINE LCD_DBIT 4
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 3
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 1



' Define ADCIN parameters
Define   ADC_BITS   10   ' Set number of bits in result
Define   ADC_CLOCK   3   ' Set clock source (3=rc)
Define   ADC_SAMPLEUS   50   ' Set sampling time in uS

adval   var   word      ' Create adval to store result


   TRISA = %11111111   ' Set PORTA to all input
   ADCON1 = %10000010   ' Set PORTA analog and right justify result


   Pause 500      ' Wait .5 second

loop:   ADCIN 0, adval      ' Read channel 0 to adval

   Lcdout $fe, 1      ' Clear LCD
   Lcdout "Value: ",  salida   ' Display the decimal value 

   Pause 100      ' Wait .1 second

   Goto loop      ' Do it forever
   End
Título: Re: Ayuda con AD en pic 16f877
Publicado por: navaismo en 24 de Septiembre de 2006, 02:08:50
Bueno para lo de punto flotante asi tal cual con PBP es dificil, yo uso las rutinas de punto flotante de melabs, apuntando la lectura de tu variable a una variable que se usa para hacer operaciones, aqui hice algo parecido (por supuesto solo adaptando la lectura, a la rutina de Punto flotante) FP (http://www.todopic.com.ar/foros/index.php?topic=12300.msg69241#msg69241).  Talvez te sirva
Título: Re: Ayuda con AD en pic 16f877
Publicado por: RALF2 en 26 de Septiembre de 2006, 16:43:20
Hola maser y navaismo!
Mira aqui puedes encontrar lo que necesitas para el conversor adc de 10bits que sensa un voltaje de 5 voltios y no hay que utilizar punto flotante.
http://www.melabs.com/resources/samples.htm
se llama vmeterx.bas.

Saludos! :-/