Conversor ADC del PIC

Entonces es mejor usarlo a 10 bits. :cry:

Para mas precisión. Gracias.
Como te dicen, en la mayoría de los pics, los ADC llegan hasta 10 bits y 8/10, Cuando elijes 10 la administración es un poco mas engorrosa, pero sin problemas cuando te acostumbras.
Te tomas una tarde, escribes las rutinas una sola vez y las olvidas para siempre.
Yo las escribía para tener la opción de descartar los bits menos significativos y que así, no me baile el dígito inferior. :unsure: 🤣
Para no volverse loco hay que ser bien prolijos en la estructura de las interrupciones, rutinas, subrutinas, saltos de página y sus retornos. Ojo al piojo.
Seguramente debe haber por ahí, controladores con ADC de mas bits, pero seguramente en gamas mas altas.
 
Seguramente debe haber por ahí, controladores con ADC de mas bits, pero seguramente en gamas mas altas.
Claro que hay, pero si con 16 bits usás una referencia de 5V eso significa que cada paso de conversión tiene 76 microvolts (5/65536)...te encargo diseñar y construir un PCB que te permita aprovechar ese paso de conversión...
 
Pregunta @Gerson strauss, qué necesitas medir con tanta precisión?

Existe el HX711, es un ADC de 24bits, específico para celdas de carga, pero imagino que se podría adaptar para cualquier tipo de sensor tipo puente de Wheatstone. Este integrado se comunica por un protocolo serie similar a I2C, lo que ocuparía solamente dos pines del PIC.
 
Pregunta @Gerson strauss, qué necesitas medir con tanta precisión?
Es que estoy haciendo un medidor de ESR con display LCD y pensé que con un ADC de 16 bits seria mas preciso,
pero a 10 bits igual funciona bien. Lo que hice fue unir en una variable word los registros ADRESL y ADRESH del
registro ADCON1 y justificar a la izquierda, y así leer el ADC en "16 bits" pero si tiene saltos entonces no me interesa.

En algún lado del foro leí que el usuario D@rkbytes había hecho un voltimetro con PIC que tenia resolución de 16 bits,
entonces pensé que también lo podía hacer en mi proyecto.

Nunca he usado un ADC externo... seria totalmente nuevo para mi. Gracias.
 
Yo vería primero cual es la tensión máxima que tendrás que medir porque lo mas probable es que no necesites mas bits sino una tensión de referencia mas chica.
Tensión máxima = 3.7v uso la referencia interna de 4.096v. Lo dejare en 10 bits, ahí mide bien. En el display se puede ver en la primera
linea a la derecha. El oscilador es de 100khz pero la simulación no corre bien "Simulation is not running in real time due to excessive CPU load."


ESR.jpg
 
La emulación es una herramienta de gran ayuda, como una aproximación rápida a lo real, pero no le pongan tantas fichas a eso porque, se van a dar de cabeza, con la Física Cuántica Universal Real, me temo. :unsure: 🥴 🤣 Que a mis ojos es bastante mas compleja que una imitación.
 
Es de 10bits.
Lo que tiene es justificación derecha --> lees un entero sin signo entre 0..1023
y justificación izquierda --> lees un entero sin signo entre 0..65472 pero en saltos de 64

:unsure: Me pregunto para qué necesitás de 16bit.
Lo de la justificación me da una idea.
Con un ADC, un DAC de 8bits ambos y un operacional restador puedes implementar un ADC de 16 bits en 3 pasos en un principio
1- leer la V de muestra con el ADC
2- restar ese valor a la V de muestra con el DAC y el restador
3- leer el valor residual de nuevo con el ADC

Esto último tal vez no sea posible y se necesite otro ADC con otro valor de tensión de referencia, o usar el mismo ADC con otra referencia. "Tema para estudiar".
Si los conversores son de 10bits se obtendrá en teoría una precisión de 20bits.
Suerte
 
Bueno, funciona igual que en la simulación. Estoy haciendo pruebas y las cosas están algo desordenadas.
Mi idea es mostrar el valor en ohmios de la ESR y es lo que se ve en el display como OH= , pero falta hacer la letra omega
para que se vea mejor. También quiero mostrar la escala en porcentaje y por eso se ve ahí después de ESR=.

La B= es el valor de la batería de 9v, pero el circuito funciona con 5v. Seguro falta ajustar la escala también ... y
el protoboard le da algo de inestabilidad, pero las pruebas son prometedoras.

El ADC parece funcionar bien comparado con el multimetro, solo cambia el tercer decimal.
Las fotos (disculpen el desorden).

Condensador de 4700uf / 35v = 0.043 ohm



ESR1.png
Condensador 2.2uf /50v malo = 9.5 ohm



ESR2.png

condensador 3.3uf / 350v =0.67 ohm



ESR4.png

Cortocircuito




ESR3.png
 
Uso PROTON IDE y este tiene una aplicación para crear caracteres especiales, pero cualquier ayuda es bienvenida. Gracias.
No hace falta crear, es el carácter 244 de la tabla que ya tiene el propio LCD(al menos si es el estándar Hitachi y no estoy equivocado)

omi.JPG

Hace algunos años lo use en este proyecto

Código:
Print At 4,5, Dec2 RBat,244," " ' Muestro la resistencia de la
tabla de caracteres.jpg

%11110100 = 244 = $F4
 
Última edición:
Atrás
Arriba