Si cambio la Aref a otro valor menor a 5V que pasa si alimento con más tensión?

Hola! Que pasa si conecto Aref a otro valor entro 0 y 5V, por ejemplo a 4V. Que pasa si de entrada llegan 4,5V se puede dañar el arduino uno, o puede soportar hasta 5V sin dañarse. En el caso de que alimento una entrada analógica con más de Aref pero menor de 5V que valor daría? si se que entre 0 y Aref hay 1024 niveles. Muchas Gracias :)

toxoni:
Hola!
Que pasa si conecto Aref a otro valor entro 0 y 5V, por ejemplo a 4V. Que pasa si de entrada llegan 4,5V se puede dañar el arduino uno, o puede soportar hasta 5V sin dañarse.

El valor de AREF puedes fijarlo a tu conveniencia, pero siempre teniendo en cuenta que debe ser un valor estable porque de él dependerá la exactitud de la conversion ADC, y debe estar entre 0 y Vcc (0 y 5V en el caso que planteas).

toxoni:
En el caso de que alimento una entrada analógica con más de Aref pero menor de 5V que valor daría? si se que entre 0 y Aref hay 1024 niveles.

Cuando el valor de la tension en el pin de entrada supera el valor de AREF, cae fuera del rango de medida y el valor que devuelve es el maximo 1023.
Es decir que si AREF es de 1V, el valor de las medidas entre 0 y 1023 se corresponderá con una variacion de tension entre 0 y 1V, por encima de 1V siempre devolverá el valor máximo.

La lectura de tension será: (valor_leido * AREF)/1024

La lectura de tension será: (valor_leido * AREF)/1024

Si el AD entrega valores entre 0 y 1023 jamás puedes poner en la ecuación 1024 porque mira que ocurre si el ad lee 1023

valor leido máximo = 1023 1023/1024*AREF suponiendo float que te da? 1023/1024 = 0,9990234375 nunca llegamos a AREF

la lectura correcta es

(analogRead(A0) * AREF)/1023.0;

Hola surbyte.

Por hacer los post mas legibles, suelo simplificarlos y si, como en este caso, hay dudas pues entonces se amplian. Veamos.

Por supuesto que nunca llegamos a AREF, y a ese error que se produce se le llama "error de cuantificacion". La resolucion de un conversor ADC es AREF/2^n siendo n el numero de bits del conversor (10 en nuestro caso) por lo que la resolucion de nuestro Arduino es de AREF/1024. La definicion de resolucion para conversores ADC es de libro y no necesita mas comentarios.

( un enlace explicativo: analog to digital converter )

La paradoja que se plantea cuando ponemos AREF en el pin analógico y medimos AREF-(AREF/1024), es decir: 1023*(AREF/1024) puede verse mejor planteando el caso inverso.

Supongamos, como propones, que la resolucion es de AREF/1023 por lo que cuando el analogRead() nos devuelve el valor máximo de 1023 la formula nos dá un valor de 1023 * (AREF/1023) = AREF y ese resultado es aparentemente correcto.

Pero si aplicamos una tension de valor (AREF/1023)-0.0001, el analogRead() nos devolvería 0 porque para él un valor menor de AREF/1023 es cero, por lo que cometeriamos un error sobre el cero en lugar de sobre el AREF

[u]Unos numeros[/u]:

AREF = 5 voltios AREF/1023 = 0.004887585... Luego si analogRead() devuelve 1, tendremos en el pin: 1 * 0.004887585... voltios Pero si la tension en el pin es de 0.00488758*4*... analogRead() devolverá 0 y nosotros creeremos erróneamente que en el pin hay 0 voltios

¿Y todo eso por que? porque el conversor tiene 1024 estados (0 a 1023) y nosotros solo estamos usando 1023 (1 a 1023).

Por tanto (y resumo) la lectura correcta es:

(analogRead(A0)*AREF)/1024.0;