De peleas con Aref

Buenos días chic@s!!

Yo sigo peleándome para conseguir una lectura precisa de una sonda analógica de alta impedancia.
La lectura ya es estable 100% , siempre y cuando no se activen otros componentes del proyecto jajajaja!!!

Después de mucho probar creo que la placa Arduino Mega (he probado con 2) tiene algún problema de caída de tensión / variación de tensión dependiendo de demanda de corriente del circuito?¿?¿?¿

ME explico, lectura de la sonda , estable a 510 (analogRead), si activo un ventilador de 12v (la corriente de este ventilador no la da arduino directamente sino que el pin de arduino activa una entrada de un ULN2803 y este le entrega corriente .Arduino y el uln2803 están alimentados por la misma F.A), la lectura pasa a 525, cuando se apaga el ventilador otra vez a 510 etc etc.

He probado piendo el AREF de 2.5v interno y ocurre lo mismo.

Lo he arreglado por software , pero ¿cómo podría solucionar esto? ¿quizás poniendo un AREF externa más estable? ¿Hay alguna manera de conocer el valor real de AREF para poder hacer "ajustes" automaticamente?

Gracias chicos!!
Aquí una gráfica del "problema".

No me parece mucha desviación, según la gráfica entre 7,9 y 8. Aunque tal vez sea excesiva esa variación de PH, no controlo esta magnitud.
Aparte de eso antes de empezar con Aref, ¿has comprobado dónde se produce este error? Podría ser que a la entrada de Arduino ya le esté llegando esa desviación con lo que no lo arreglarás manejándote con Aref. Si es así tendrías que aislar bien la señal de la sonda PH, si no es tendrás que aislar bien las alimentaciones.

Gracias por la respuesta y por tu tiempo!
La desviación es exactamente 0,07 , parece poco pero no es lo ideal....
La alimentación de Arduino la hago a través del Vin , por lo que al pasar por el regulador "entiendo" que estabiliza la corriente y no debería afectar que le lleguen 10v o 9,5v en la entrada al AREF no?
Lo de aislar la alimentaciones no lo entiendo.....

Gracias!!!

Lo primero que yo haría es asegurarme de dónde se produce el ruido o interferencia. Polímetro en mano lo conectas a la salida de la sonda y mides la tensión al conectar y desconectar el ventilador estando la sonda conectada y desconectada de la entrada de Arduino.

yo he tenido problemas similares alimentando el arduino por Vin. Por ejemplo los valores analógicos cambian de alimentar el arduino por USB, por una fuente externa en el conector correspondiente o dándole +5V con una fuente externa al pin +5V. Y si a esto le añades que haya cargas altas que modifiquen la tensión, apaga y vámonos.

Avances!!!
He estado probando con el multimetro....valor de la sonda conectada a arduino sin ventiladores (2.4v) , con ventiladores (2.6v) es decir influyen en el valor de la sonda por lo que creo que Aref no es el problema...
Por otro lado medí la entrada de voltaje a la sonda (la alimenta arduino desde el 5v) para ver si variaba...no varía, siempre entrega 5.08v con / sin ventiladores.
No he podido medir la sonda desconectada de Arduino ya que no tenía una fuente de 5v para alimentarla, en cambio proba a alimentar los ventiladores externamente y de esta manera los valores de la sonda eran siempre 2.4v .Correcto.

Ahora y tras al aportación del compi pacojarcia he pasado de alimentar el controlador desde 10v al Vin (fuente de 12v-->7810-->Vin) , a alimentarlo directamente al jack de Arduino con 12v (con otra F.A distinta), y VOILA!!!!! Parámetros estables!!!

Lo que tengo que entender ahora es: ¿Hay diferencias entre alimentar por Vin / jack? , es posible que el "circuito" de F.A. 12v-->7810-->Vin) tenga algún problema y genere ruido o algo similar?

A buscar y leer!!!!!

Gracias!!!!

EDITO: Segun el esquema del MEGA, Vin y conectar por el Jack es lo mismo , execpto que no pasa por el diodo de protección......entonces algo ocurre con el "circuito" de F.A. 12v-->7810-->Vin!!!

Vale, empiezo a entender el diseño de la alimentación de tu circuito: tienes una única fuente con la que alimentas, por un lado el ventilador, y por otro la placa del arduino.
El arduino lleva un rectificador lineal 7810 ... y supongo que algo más para alimentar el microcontrolador, no?

Yo apostaría que tienes un problema de rizado (ripple) en la fuente de 12V introducido por el ventilador, porque su tensión y potencia (la de la fuente) es demasiado baja para alimentar todo.
Te apuesto lo que quieras a que si usas una fuente de 15V de la suficiente potencia te desaparecen los problemas XD

Pero intentaré explicarme:

Al encenderse el motor, la fuente de 12V tiene que dar más corriente, lo que va a hacer que su tensión de salida baje un poco debido a la caída que se produce en su resistencia interna (menor potencia, mayor resistencia interna, más o menos ...). Esto es malo, pero no es el mayor problema. El problema también está en que el motor va a incrementar el rizado de la fuente, haciendo que la tensión mínima baje aún más.

Aquí tienen unos dibujitos muy chulos que lo explican muy bien: DC Motors -- motor (mis)behavior

O sea, que ahora tienes una fuente con más rizado y una tensión mínima más baja que cuando el motor estaba apagado.

Añádele a esto que si la alimentación de la placa del arduino pasa por un diodo seguido de un 7810, la caída de tensión mínima que se produce en ese circuito va a ser de unos 0,7 del diodo más una caida típica en el regulador lineal 7810 de 1,5V, es decir, que la caída mínima en tu entrada es de 2 voltios y pico, y, según parece, no tienes suficiente margen de tensión en la entrada como para eliminar el rizado que produce el ventilador. (Por cierto, qué diodo es, podría ser un schottky de 0,2V).

De hecho, la tensión mínima de alimentación del 7810 según recomendaciones del fabricante es de 12,5V (http://www.ti.com/lit/ds/symlink/ua7810.pdf), 13,2V si tienes en cuenta el diodo, o sea, aún más alta de lo que realmente tienes (aunque es más bien para cuando te acercas a 1A). Hablamos de la tensión mínima, no de la tensión media o RMS, que es lo que puedes medir con un polímetro.

Para poder mirar bien la señal de alimentación necesitarías más bien un osciloscopio (asumiendo un motor DC de 3 polos, y unas 2000 RPM, puedes tener un rizado de unos 12 Khz ... ; eso no lo puedes ver con un polímetro).

Bueno, yendo al caso práctico, posibles soluciones:
1.- prueba con una fuente de al menos 2V más de tensión y más potencia ... creo que se te ha quedado un poco corta.
2.- añádele un condensador cerámico tan cerca como puedas de los bornes del ventilador para eliminar transitorios, digamos de 1 nF ..
3.- aísla la alimentación del ventilador usando una bobina pqueñita (o choke, como decía fm :slight_smile: ) en serie en el positivo y un condensador electrolítico en paralelo (este no es para los transitorios, como el anterior).
4.- añade más condensadores de filtrado a la salida de la fuente para reducir el rizado (de 2200uF para arriba).

Estos son comentarios generales que buscan disminuir el rizado y los transitorios que se comunican por la alimentación.
No te puedo asegurar que funcionen, pero son fáciles de probar, así que espero que tengas suerte ...

Suerte.