TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: yuhe en 30 de Octubre de 2007, 12:38:14

Título: ENTRADAS ANALOGICAS programarlas
Publicado por: yuhe en 30 de Octubre de 2007, 12:38:14
Hola amigos, vuelvo a acudir a ustedes para pediros ayuda sobre los pines de entrada analogica ,me gustaria saber como programar y todo eso pero por mucho que miro en el foro e  intento hacer algo no logro nada haber si ustedes me podeis ayudar con algun manual o no se
De nuevo gracias amigos :-/ :-)
Título: Re: ENTRADAS ANALOGICAS programarlas
Publicado por: navaismo en 30 de Octubre de 2007, 12:48:55
Sobre las entradas analogicas se usan los registros ADCON, Ansel o depende del PIC que PIC estas usando?

Y sobre todo  leer el datasheet de dicho PIC.
Título: Re: ENTRADAS ANALOGICAS programarlas
Publicado por: yuhe en 30 de Octubre de 2007, 13:21:03
Hola de nuevo Navaismo pues estoy usando el 16f628 y me gustaria usar tambiem el 12f628  y sus hojas de caracteristicas las leo me las descargo pero no logro entender como hacer que lea un ping de forma nalogica
Título: Re: ENTRADAS ANALOGICAS programarlas
Publicado por: navaismo en 30 de Octubre de 2007, 14:55:05
Bueno sobre el 16f628 no trae un convertidor AD mas bien trae un comparador analogico este se configura con el registro CMCON cada BIt de este registro esta explicado en el datasheet.

Del 12f629 no tiene tendria que ser el 12f675 y ese se modifica con el ADCON0 y Ansel.
Título: Re: ENTRADAS ANALOGICAS programarlas
Publicado por: Mario en 30 de Octubre de 2007, 16:04:37
Revisa esto:

http://www.todopic.com.ar/foros/index.php?topic=14115.0
http://www.todopic.com.ar/foros/index.php?topic=14736.0
http://www.todopic.com.ar/foros/index.php?topic=3897.0
http://www.todopic.com.ar/foros/index.php?topic=17053.0
http://www.todopic.com.ar/foros/index.php?topic=14695.0
Título: Re: ENTRADAS ANALOGICAS programarlas
Publicado por: yuhe en 03 de Noviembre de 2007, 12:14:34
Por mucho que miro y lo he intentado nada me leido el ds por lo menos 4 veces y nada no logro nada soy el mas torpe del mundo por dios
yo lo que quiero son comandos basicos parair poco a poco al principio para medir la carga de una bateria etc poco a poco vamos un manual de pbp pero para nalaogica os ruego ayuda amigos :(
Título: Revisa esto entonces:
Publicado por: Mario en 03 de Noviembre de 2007, 15:57:07
Dos maneras de tomar medición de voltaje.

http://www.rentron.com/PicBasic/LM34.htm
http://www.rentron.com/PICX2.htm
Título: Re: ENTRADAS ANALOGICAS programarlas
Publicado por: mancupic en 05 de Diciembre de 2007, 15:49:43
HOLA AMIGO... creo que puedo darte una mano.... pasame el esquematico y yo te hago el programa y te lo explico... Saludos :-/
Título: Re: ENTRADAS ANALOGICAS programarlas
Publicado por: jim_17 en 05 de Diciembre de 2007, 15:56:05
A mi tambien me gustaria aprender un poco sobre esto, si puede ser intentar colgarlo en el foro. thanks


salu2
Título: Re: ENTRADAS ANALOGICAS programarlas
Publicado por: navaismo en 05 de Diciembre de 2007, 17:16:29
No veo la complejidad amigos.

"Solo es cuestion de ponerse". Vamos que lo primero es entender como funciona un ADC o por lo menos tratar de captar la idea.

Ejemplo el ADC de un PIC16F877 se dice que tiene 2 resoluciones: de 8 bits y de 10bits. ¿Que son estos BITS? Bueno los valores maximos que puede tomar la Lectura del ADC del PIC16F877; en el caso de 8 BITS tomara valores -decimales para que sea mas claro- entre 0 y 254. En el caso de 10Bits tomara valores entre 0 y 1023.

¿Como interpreta cada valor el PIC? Primero hay que saber que el PIC solo leera Voltajes de 0 a 5V como maximo por ser lo que soporta sus pines. Ahora bien suponiendo que el ADC esta configurado para leer estos valores sin voltajes de referencia. El valor decimal 0 correspondera a 0Volts y el Valor decimal 1023 correspondera a 5V. ¿Entonces cual es la resolucion del ADC?. Segun lo anterior 5/1024 aproximadamente 4.8mV osea cada 4.8mV o 5mV subira un valor decimal.

¿Que es un Voltaje de referencia? Los PIC's con ADC cuentan -en su mayoria- con PINES de VREFS -Voltajes de referencia- esto es util cuando queremos que el valor minimo en este caso 0 no sea igual a 0V, por ejemplo conectando VREF- a un voltaje de 2V cuando el Pin que hace la lectura este en 2V, la lectura sera de cero; y lo mismo aplica para VREF+.

¿Y como configuro el ADC de un PIC?Bien cada PIC tiene su registro especifico para configurar el ADC, en este caso estamos hablando del PIC16F877 y su registro es el ADCON1 este registro posee 8 Bits de configuracion. como vemos en la siguiente tabla

(http://img210.imageshack.us/img210/6040/adconor6.jpg)

Como veran el BIT7  es el que nos da la resolcion del ADC si tiene un 1 se "justificara a la derecha" o se define cono 10BIts si es 0 sera de 8 BITS

El BIT6 define el tiempo de conversion, en PBP casi no lo tocamos aun que pueden leer mas y definirlo con ayuda del ADCON0

El BIT4 y BIT5 no se usan por lo cual se leen como 0

Los demas BITS0-3 definen que pines son usados "para que", por ejemplo digital adc o vrefs.

Y aqui esta de acuerdo a los valores de los ultimos 4 bits del registro ADCON1 como se comportaran los pines del ADC

(http://img87.imageshack.us/img87/7743/tablaadc877ch2.jpg)


Asi por ejemplo si quisieramos desactivar todo el ADC y usar los pines como I/O digitales hacemos:

ADCON1=7  lo que corresponde a poner %0111 donde el ultimo bit no importa por la tabla anterior y asi todo el ADC estara desactivado

Otro ejemplo es activar solo el PORTA0 como analogico, sin voltajes de referencia, las demas salidas digitales y con una resolucion de 10 BIts hacemos:

ADCON1=142 o lo que equivale a poner ADCON1=%10001110

Y para poner esto en Practica en el PBP el ejemplo es asi:

Código: Visual Basic
  1. Define  LCD_DREG        PORTD
  2. Define  LCD_DBIT        4
  3. Define  LCD_RSREG       PORTA   ' DEFINICION DE LOS REGISTROS DEL LCD
  4. Define  LCD_RSBIT       2
  5. Define  LCD_EREG        PORTA
  6. Define  LCD_EBIT        5
  7.  
  8. Define  ADC_CLOCK          3    ' PONIENDO EN 3 EL RELOJ DE LA FUENTE
  9. Define  ADC_BITS          10    ' NUMERO DE BITS DEL RESULTADO
  10. Define  ADC_SAMPLEUS  15        ' SETEO DEL TIEMPO DE MEDICION
  11.  
  12.  
  13.   TRISA  = 11           ' PUERTO A 3 ENTRADAS Y 3 SALIDAS                                                          
  14.  TRISB  = 127
  15.   ADCON1 = 142              ' PUERTO A COMO ADC Y JUSTIFICACION A LA DERECHA
  16.  
  17.   OPTION_REG.7 = 0      ' HABILITAR PULL-UPS
  18.  
  19.    
  20.   Low PORTA.4               ' APAGO LINEA DEL LCD R/W (W)
  21.   Pause 500                     ' PAUSA PARA LCD
  22.  
  23.    
  24. sensor  VAR word   ' VARIABLE PARA GUARDAR EL VALOR DE ADC  
  25.  
  26. TERMO VAR PORTA.0
  27.  
  28. INIT:             'inicio de la rutina principal
  29. ADCIN  TERMO, sensor
  30.  
  31.  LCDOUT $FE1, "Lectura de:"                    'mostramos mensaje en la primer linea del LCD
  32. LCDOUT $FE,$C0,  dec sensor                  'nos pasamos a la segunda linea del LCD y mostramos valor decimal
  33.  
  34.  
  35. goto INIT

Espero que les sirva todo esto es un resumen de los links que les paso Mario                     
Título: Re: ENTRADAS ANALOGICAS programarlas
Publicado por: pajaro en 19 de Octubre de 2008, 09:38:21
hola Navaismo

Donde dices lo del conversor de 8 bit.
es 2 elevado a la 8 verdad,
si es asi es 256 verdad?
entonces sera entre 0 y 255
¿toy en lo cierto?

Por cierto, muy buena la explicación.

un saludo
Título: Re: ENTRADAS ANALOGICAS programarlas
Publicado por: sandra en 19 de Octubre de 2008, 15:53:29
Efectivamente una resolucion  de 8 bits es de 0 a 255