Autor Tema: conversion a/d 16f876a  (Leído 2337 veces)

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

Desconectado aamoros79

  • PIC10
  • *
  • Mensajes: 46
conversion a/d 16f876a
« en: 04 de Julio de 2006, 05:28:04 »
hola. llevo un tiempo haciendo un proyecto con el pic16f876a.
y me ha venido una duda sobre la conversion.
tengo solo 1 entrada an0 que es la que quiero que me convierta. mi pregunta es: al hacer la conversion el resultado esta en binario, no?
y si quiero que me convierta una tension xej: 2.4 que me hace la conversion de 2 o de 2.4.
si me hace de 2.4 luego al pasar de binario  a decimal vere 2.4?

para ver en decimal la idea es pasar el dato en binario a ascii, enviarlo por puerto serie al ordenador, y en un programa de visual basic convertir de ascii a decimal el dato
gracias

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: conversion a/d 16f876a
« Respuesta #1 en: 04 de Julio de 2006, 08:30:20 »
hola. llevo un tiempo haciendo un proyecto con el pic16f876a.
y me ha venido una duda sobre la conversion.
tengo solo 1 entrada an0 que es la que quiero que me convierta. mi pregunta es: al hacer la conversion el resultado esta en binario, no?
y si quiero que me convierta una tension xej: 2.4 que me hace la conversion de 2 o de 2.4.
si me hace de 2.4 luego al pasar de binario  a decimal vere 2.4?

para ver en decimal la idea es pasar el dato en binario a ascii, enviarlo por puerto serie al ordenador, y en un programa de visual basic convertir de ascii a decimal el dato
gracias


Amigo estas confundiendo algo las cosas.

Es cierto , convierte en binario.  El punto es que tendrás un valor de 0 a 255 o de 0 a 1023 que represente el voltaje analógico leído.

Si tu Vref = 5V, y tiene 2.5V en la entrada, funcionando a 8 bits, leeras 128d.
Si tu Vref = 5V, y tiene 2.5V en la entrada, funcionando a 10 bits, leeras 512d.

Ahora bien, si tu quieres pasar eso de nuevo a "voltaje", deberás hacer un cálculo.

Vleido = ( Valor Convertido / Valor Max) * Vref

Valor MAX = 255 para modo 8 bits
Valor MAX = 1023 para modo 10 bits

Entonces, si leíste 25d en modo 8 bits

Vleido = (25 / 255) * 5 = 0,49V


Espero te haya servido

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 ceuti

  • PIC10
  • *
  • Mensajes: 15
Re: conversion a/d 16f876a
« Respuesta #2 en: 28 de Agosto de 2006, 15:46:41 »

Hola.

Aprovecho este hilo para no abrir otro. Estoy trabajando con el 18f6527 para adquirir una señal de 3 Hz, como  deberia configurar los registros de conversor A/D para muestrearla con una frecuencia de 100 Hz, aunque me imagino que menos tambien me serviria.

Ademas de eso los datos adquiridos los quiero guardar en la memoria RAM para luego enviar toda la señal adquirida a través de la USART 1, trabajando con la justifiacion a la derecha teneis alguna rutina para agrupar los 2 bits del registro  ADRESL de una conversion y los 6 de mayor peso del registro ADRESH de la siguiente, o como dice maunis, existe la posibilidad de hacer la conversion con tan solo 8 bits.

Gracias.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: conversion a/d 16f876a
« Respuesta #3 en: 28 de Agosto de 2006, 17:05:33 »
Hola ceuti.
¿En que lenguaje estas programando?
¿Para que pretendes guardar todos los datos en la RAM del PIC, si parece que tu idea es usar una PC para recibir los datos?
¿No seria mas simple que cada vez que termina de realizar una conversion A/D, el PIC envie el dato leido?
No se si existe rutina para agrupar los datos leidos, pero no es nada dificil hacer una.
Con respecto al modo 8 bits:
Si el PIC tiene un conversor A/D de 10 bits, pues simplemente para usarlo en 8 bits, lo que haces es elegir una justificacion a la izquierda del dato leido. De esta manera, los 8 bits mas significativos de la conversion estara en el registro ADRESH, y los dos bits menos significativos de la conversion estaran en ADRESL.
No tienes nada mas que leer solamente el ADRESH e ignorar el registro ADRESL. Ahi tienes una conversion de 8 bits.
Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.


 

anything