AREF o cómo meter tu Arduino en una bonita caja de pino
Arghh!!! Se acabaron las navidades, el engordar, el aguantar al cuñado. Ya todo se nos ha ido. Y yo estoy perdido, desubicado, ¿Cómo iba esto del blog? ¿Aún me lee alguien?
Voy a hacer la prueba escribiendo sobre la referencia, eso que marca el funcionamiento de Arduino y que solo recomiendo utilizar a gente muy concienzuda y experta en el tema. Bueno, eso o gente que tenga unos 20 Arduinos por casa y no le importe quemar alguno… Esa gente también me vale.
Seas del grupo que seas, ¿Empezamos ya el 2019?
El voltaje de referencia en Arduino
Hace tiempo hablábamos de los pines analógicos. Son unos pines utilizados para leer voltajes externos. Este voltaje se lee mediante una regla de tres como las que hacíamos en el colegio. Si 1023 son 5 Voltios, x Voltios seran… Donde x es un número cualquiera.
La pregunta es. ¿Por qué 1023 son 5 Voltios? En el post de los pines analógicos aclaramos que los 1023 provienen de que el convertidor que pasa de analógico (Que es la señal que entra por los pines) a digital (Es lo que podemos leer, bits 1 y 0) es un convertidor de 10 bits.
Esto hace que solo tengamos 1024 posiciones (1023 posiciones y el número 0) de rango para mostrar el voltaje de la señal. Esto lo que lleva es que si queremos medir una diferencia de señal de 0.00000009mV no la mediremos ya que es demasiado pequeña para los bits de resolución que tenemos.
Ahora, ¿Por qué 5 Voltios? Arduino UNO trabaja con 5 Voltios. La mayoría de sensores que utilizas utilizan esa tensión y es por eso que la REFERENCIA son 5 Voltios. Referencia (La he puesto antes en mayúsculas para que te sangren los ojos) es el valor con el que Arduino compara.
Si te fijas, decimos que 5 Voltios es el máximo, que son los 1023 bits. Por lo que esto es la referencia. Y ahora me pregunto yo… ¿Se puede cambiar la referencia?
Información básica sobre Proteción de datos
Responsable ➥ Sergio Luján Cuenca
Finalidad ➥ Gestionar el envío de correos electrónicos con artículos, noticias y publicidad. Todo relacionado con los temas de rufianenlared.com
Legitimación ➥ Consentimiento del interesado
Destinatarios ➥ Estos datos se comunicarán a MailRelay para gestionar el envío de los correos electrónicos
Derechos ➥ Acceder, rectificar y suprimir los datos, así como otros derechos, como se explica en la política de privacidad
Plazo de conservación de los datos ➥ Hasta que se solicite la supresión por parte del interesado
Información adicional ➥ Puedes encontrarla en la política de privacidad y el aviso legal
¿Para qué cambiar la referencia?
Pues la verdad es que sí se puede cambiar esta referencia. Por ejemplo podrías cambiarla a 3.3 Voltios que es la otra que utiliza Arduino (Fíjate que tiene un pin con esa tensión y todo). Para ello hay que utilizar el pin AREF.
Este pin te permite modificar la referencia a la tensión que metas por ese pin. Para elegir dicha tensión puedes utilizar divisores de tensión, fuentes de alimentación programables o fijas o cualquier cosa que se te ocurra.
Este cambio lo que producirá será un cambio en la regla de tres de manera que ahora 1023 serán 3.3V por lo que x Voltios seran otro número de bits. ¿Y para qué sirve esto? Pues lo que se consigue con esto es dividir entre un número más pequeño (Hemos pasados de dividir entre 5 a 3,3 y si no me crees puedes plantear la regla de tres tú mismo) por lo que el 1023 se multiplica por un número más grande y esto se traduce en mayor precisión.
Se nos permite ver mejor los pequeños cambios de voltaje, tenemos más precisión. Pero no todo es tan bonito…
Qué hacer para que Arduino no se queme con AREF
Y es que todo puede arder con facilidad al utilizar AREF por lo que tienes que tener en cuenta varias cosas. La primera es que AREF no puede conectarse a menos de 1 Voltio (Nada de tensiones negativas tampoco) ni a más de 5 Voltios. Es lógico que la referencia no puede ser más que la original porque los componentes han sido paridos para funcionar con 5 Voltios como mucho.
Otra cosa a tener en cuenta es GND. Si utilizas una tensión que viene de una fuente externa debes de conectar el GND de esa fuente al GND de Arduino ya que cuando las cosas tienen diferentes tierras puede que haya varios Voltios de diferencia entre ambas y lo que era un LOW pasa a ser un HIGH y cosas muy extrañas que no quieres que te ocurran pasaran. Así que eso, conectemos siempre ambas tierras.
Nunca llames a la función de lectura de puertos analógicos (AnalogRead) antes que llamar a la función (luego la veremos) que llama al AREF porque sino se uniría la referencia interna de Arduino y la externa que has añadido tú y eso produce el famoso humo mágico que hace que las cosas funcionen. Una vez el humo mágico sale del Arduino y lo ves , Arduino ha muerto por completo.
Habrá que ver si te Arduino te relaja…
Ah, Por cierto, Querrás saber cómo se utiliza, ¿no? Para ello se utiliza la función:
analogReference(EXTERNAL);
Si quieres utilizar la normal (los 5 Voltios) puedes sustituir EXTERNAL por DEFAULT (O no poner nada…). Y si quieres utilizar la referencia interna de 1,1 Voltios incluida en Arduino UNO puedes utilizar el parámetro INTERNAL.
Así que con esta simple línea serás capaz de dominar el pin AREF, ese pin que puede quemarte el Arduino si no llevas verdadero cuidado… Espero que estas líneas calmen tus ansias de Arduino después de mi parón navideño…
Ahora… Ahora te dejo. Que vivir te relaje 😉