Autor Tema: Problema con el conversor A/D del PIC16F876  (Leído 4119 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ajkite

  • PIC10
  • *
  • Mensajes: 23
Problema con el conversor A/D del PIC16F876
« en: 20 de Enero de 2006, 12:55:00 »
Yo utilizo el MPLAB y e configurado el conversor A/D para que me aga una lectura continua, estas el programa aber si me podeis decir si esta bien xq no me funciona del todo bien, gracias

BANCO1   
movlw   b"10001111"   
movwf   ADCON1      ;pone todas las patillas del PORTA a Digital menos RA0 que la configura como entrada Analogica
;la Vref+ es la patilla RA3 y Vref- es la patilla RA2 y los 10bits son alineados a la drcha es decir en ADRESL


bsf   ADCON0,6              ;seleciono el reloj del convesor
movlw   b"01000000"          
movwf   ADCON0                 ;seleciono el canal 0 configuracion
bsf   ADCON0,0              ;activo el convesor
call   TEMPO_20us          ;espero 20us para la adquision de datos
bsf   ADCON0,2   ;Se pone a 1 el bit GO/DONE, para que se incie la conversion
BUCLE4   btfsc   ADCON0,2   ;Comprueba el bit GO/DONE si esta a cero, el cual indica si se a terminado la conversion
                goto   BUCLE4
BANCO1
   movf   ADRESL,00

Desconectado poi5on

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 127
RE: Problema con el conversor A/D del PIC16F876
« Respuesta #1 en: 20 de Enero de 2006, 16:18:00 »
Hola amigo,

Por lo visto el programa esta bien, que es lo que no hace correctamente el PIC? Chequeaste los voltajes de referencia? deberias hacer un programa de prueba para que leas el ADC y lo saques por un puerto con leds a ver que pasa. Debes decir tu problema, a lo mejor es el hardware.

Saludos

Desconectado ajkite

  • PIC10
  • *
  • Mensajes: 23
RE: Problema con el conversor A/D del PIC16F876
« Respuesta #2 en: 21 de Enero de 2006, 05:22:00 »
Pues estoy asiendo un medidor de distancia por infrarrojo para un proyecto y el sensor me los valores de distancia entre las tensiones 0V y 3V que es a lo que e puesto las Vref y mi problema es que me da valores aleatorio es decir que no me da el valor del sensor

y me podias explicar ese de chequear las Vref??

muxas gracias

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
RE: Problema con el conversor A/D del PIC16F876
« Respuesta #3 en: 21 de Enero de 2006, 06:43:00 »
Intenta probar tu programa usando un potenciometro alimentado tambien a 3V en lugar del sensor. Con chequear creo que poi5on se refiere a medir los voltajes con el polimetro para asegurarte de que te dan el voltaje que deben dar. Otra cosa, ¿aqui no haces dos veces lo mismo?:

Codigo:
bsf ADCON0,6 ;seleciono el reloj del convesor
movlw b"01000000"
movwf ADCON0 ;seleciono el canal 0 configuracion
Saludos desde Córdoba, españa

Desconectado poi5on

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 127
RE: Problema con el conversor A/D del PIC16F876
« Respuesta #4 en: 21 de Enero de 2006, 16:15:00 »
Hola amigo.

Asumiendo que el voltaje de ref esta OK y que concuerda con el rango de valores que te da el sensor entonces prueba como dice kain589 conecta un poten a 3v y 0v y lo dejas fijo a ver que pasa, si no varia y te da un valor fijo en la salida del ADC entonces el problema debe estar en el sensor que pueda que tenga ruido en la señal de salida.

Saludos

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Problema con el conversor A/D del PIC16F876
« Respuesta #5 en: 23 de Enero de 2006, 19:34:00 »
Escrito originalmente por ajkite
Yo utilizo el MPLAB y e configurado el conversor A/D para que me aga una lectura continua, estas el programa aber si me podeis decir si esta bien xq no me funciona del todo bien, gracias

BANCO1   
movlw   b"10001111"   
movwf   ADCON1      ;pone todas las patillas del PORTA a Digital menos RA0 que la configura como entrada Analogica
;la Vref+ es la patilla RA3 y Vref- es la patilla RA2 y los 10bits son alineados a la drcha es decir en ADRESL


bsf   ADCON0,6              ;seleciono el reloj del convesor
movlw   b"01000000"          
movwf   ADCON0                 ;seleciono el canal 0 configuracion
bsf   ADCON0,0              ;activo el convesor
call   TEMPO_20us          ;espero 20us para la adquision de datos
bsf   ADCON0,2   ;Se pone a 1 el bit GO/DONE, para que se incie la conversion
BUCLE4   btfsc   ADCON0,2   ;Comprueba el bit GO/DONE si esta a cero, el cual indica si se a terminado la conversion
                goto   BUCLE4
BANCO1
   movf   ADRESL,00



Amigo ADCON0 está en el banco 0.  En ninguna parte de tu código veo que vuelvas al banco 0.  estas leyendo cualquier cosa.

Si quieres mas ayuda te pido que postees el codigo más completo.

Si lo logras configurar bien y aún asi sigues leyendo "basura" o "cosas raras" debes tener en cuenta es poruqe tu tiempo de muestreo no es el adecuado, incrementalo y veras como funciona mejor.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado ajkite

  • PIC10
  • *
  • Mensajes: 23
RE: Problema con el conversor A/D del PIC16F876
« Respuesta #6 en: 24 de Enero de 2006, 09:02:00 »
He probado el programa conectandole a la entrada analogica un potenciometro alimentado con 3v y la conversion me la ase muy bien, pero al conectarle el sensor el cual es sharp GP2Y0A21 empieza a salirme numeros muy rapidamente???

Alguna solucion

grasias

Desconectado ajkite

  • PIC10
  • *
  • Mensajes: 23
RE: Problema con el conversor A/D del PIC16F876
« Respuesta #7 en: 24 de Enero de 2006, 09:05:00 »
He probado el programa conectandole a la entrada analogica un potenciometro alimentado con 3v y la conversion me la ase muy bien, pero al conectarle el sensor el cual es sharp GP2Y0A21 empieza a salirme numeros muy rapidamente???

Alguna solucion

grasias

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
RE: Problema con el conversor A/D del PIC16F876
« Respuesta #8 en: 24 de Enero de 2006, 09:35:00 »
Mide con un polimetro la salida del sensor para ver si tambien te oscila o si te da un valor "constante"
Saludos desde Córdoba, españa

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Problema con el conversor A/D del PIC16F876
« Respuesta #9 en: 24 de Enero de 2006, 10:04:00 »
Escrito originalmente por ajkite
He probado el programa conectandole a la entrada analogica un potenciometro alimentado con 3v y la conversion me la ase muy bien, pero al conectarle el sensor el cual es sharp GP2Y0A21 empieza a salirme numeros muy rapidamente???

Alguna solucion

grasias


Amigo , este comentario no tiene mayor sentido.

Que te salen numeros rapidamente? que tipo de rigurosidad técnica tiene dicha frase?
A que llamas "me salen numeros rapidamente"...

Además si utilizas un retardo de 20usegundos que otra cosa puedes esperar ... más que unas 50mil conversiones por segundo? Aunque esta velocidad excede al máximo del pic es lo que puedes llegar a esperar si no manejas otra cosa mas que el conversor.

No quiero que tomes a mal mi comentario pero lo que quise exponer es que si no das precisiones muy dificil es saber que está ocurriendo.

Puedes explicar mejor tu problema? Me es dificil ayudarte si no se bien que está pasando y si no das un marco técnico (en tiempo , espacio , frecuencia) a tus frases.
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)