Lectura el valor de una resistencia con Arduino


arduino-resistencia-variable

En esta entrada vamos a emplear Arduino para medir la resistencia eléctrica de un dispositivo. ¿Por qué resulta esto interesante? ¿Por qué no usamos un polímetro y ya esta? Bueno, el motivo por el que es importante es porque muchos sensores proporcionan su medición mediante una variación de su resistencia. Para poder usar estos sensores (de luz, de temperatura) tenemos que poder medir su resistencia desde Arduino.

Lamentablemente en Arduino (en general, prácticamente en ningún autómata) no disponemos de una entrada donde medir directamente ni resistencias ni intensidades eléctricas. Lo único que podemos medir son señales de tensión digitales o analógicas. Pero podemos emplear estas y un pequeño montaje para medir fácilmente el valor de una resistencia desconocida, mediante comparación con una conocida.

En esta entrada vamos a usar de forma intensiva las entradas analógicas, por lo que se da por supuesto que se está familiarizado con su uso. Si no es así es aconsejable que visites esta entrada «Entradas analógicas en Arduino«, donde vimos como usar las entradas analógicas de Arduino..

Anuncio:

Esquema eléctrico y montaje

Como decíamos, nuestro procesador no puede medir resistencias ni intensidades eléctricas. Lo único que podemos medir son voltajes discretizados a través de sus entradas. Sin embargo podemos aprovecharr las entradas analógicas para medir fácilmente el valor de una resistencia desconocida, por comparación con otra que llamaremos de calibración.

El montaje que necesitamos es un simple divisor de tensión entre la resistencia de valor desconocido y nuestra resistencia de calibración. El esquema eléctrico que necesitamos es el siguiente.

medir-resistencia-arduino-esquema

Mientras que el montaje en una protoboard sería el siguiente.

medir-resistencia-arduino-montaje

A veces oiréis llamar incorrectamente a esta resistencia de Pull-Down porque ocupan lugares similares en los montaje eléctrico, como vimos en la entrada «Leer un pulsador con Arduino)«. Sin embargo la funcionalidad de estas resistencias es distinta, así que hacerme feliz y llamarla resistencia de calibración.

Ejemplo de código

El código necesario para realizar la lectura es simple. Simplemente leemos el valor del tensión mediante la entrada analógica, y empleamos las ecuaciones del divisor de tensión para obtener el valor de la resistencia medida.

Os fijaréis que hemos realizado todas los cálculos empleando aritmética de números enteros, evitando intencionadamente emplear variables de tipo float. El motivo es que las operaciones en coma flotante ocupan una gran cantidad de memoria y son significativamente más lentas.

Siempre que sea posible evitar emplear las operaciones en coma flotante. Hay múltiples técnicas para realizar operaciones similares con aritmética de enteros, sin perder apenas precisión.

El valor de la resistencia de calibración

Lo único que resta es que elegir es el valor de la resistencia de calibración. La respuestas no es única, y su valor dependerá totalmente del rango de resistencias que puede adoptar el sensor durante su funcionamiento. En general el valor a elegir dependerá de:

  • Debe ser lo suficientemente grande para limitar la corriente que atraviesa el sensor cuando este adquiera su mínimo valor. Por ejemplo, si el sensor puede llegar a registrar 0 Ohmnios, la única resistencia que limitará la corriente será la resistencia de calibración.
  • Debe ser lo suficientemente pequeña en comparación con la del sensor para limitar la pérdida de precisión de la medición. Por ejemplo, si la resistencia del sensor adquiere el mismo valor que la de calibración, estaremos perdiendo la mitad de la precisión disponible.

Para que os sirva de orientación, valores habituales de esta resistencia suelen ser 1k a 4,7k, aunque como hemos dicho depende del rango de resistencias del sensor. Podéis ayudaros de nuestra calculadora de divisores de tensión para determinar el valor de la resistencia de calibración, la intensidad que soportará, y la pérdida de precisión.

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección Tutoriales de Arduino

Anuncio:

Previous Configurar VNC en Linux con LXDE
Next Si compras en PCComponentes, cuida con las marcas chinas
1000
2 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
newest oldest
Gabriel Franco

Excelente me sirvio mucho, ahora una pregunta si debo medir resistencia que va entre 0,1K y 30K que resistencia de calibracion deberia usar?? para no perder sensibilidad por supuesto

Miguel

Ok, Resistencia de calibración o también llamada de shunt