En varios artículos hemos visto como podemos aumentar las entradas digitales utilizando diferentes técnicas como el Charlie Plexing o el Shift Register, en este artículo vamos a ver cómo podemos hacer uso del divisor de tensión en Arduino de una manera muy práctica, utilizaremos una entrada analógica para leer varios pulsadores.
La clave principal de un divisor de tensión es repartir la tensión o voltaje entre diferentes resistencias. Se trata de una configuración o técnica más que conocida y usada, la particularidad de las resistencias es que tienen que estar colocadas en serie.
Indice de contenidos
Seguramente ya lo habrás utilizado en más de una ocasión, por ejemplo cuando colocas una resistencia en serie con un LED para conseguir un voltaje adecuado para el componente.
Divisor de tensión con un ejemplo
Veamos un ejemplo sencillo sobre esta configuración. Supongamos que tenemos la siguiente configuración, donde tenemos una fuente de alimentación y dos resistencias en serie.
La fórmula para obtener
Para saber de dónde sale la fórmula del divisor de tensión, debemos tener claro cómo se calcula la intensidad, el voltaje y la resistencia en un circuito donde los componentes están conectados en serie. Las premisas que vamos a seguir son las siguientes.
Intensidad
Las intensidades son equivalente es decir, la intensidad que nos facilita la fuente de alimentación es igual a la intensidad que pasa por la resistencia 1 e igual a la intensidad que pasa por la resistencia 2.
Voltaje
El voltaje total sería la suma de los voltajes de todos los componentes conectados en serie
Resistencia
La resistencia total sería la suma de todas las resistencias conectadas en serie
Vamos a partir de la ya más que conocida Ley de Ohm
Como ya hemos visto antes, la intensidad en un circuito que está conectado en serie es la misma
Si ahora aplicamos la regla de los voltajes en un circuito en serie y lo sustituimos por por (1) y (2), nos quedaría la siguiente fórmula.
Si sacamos factor común tenemos que.
Ahora vamos a despejar la intensidad.
De la fórmula (2) despejamos la intensidad también y como son iguales, podemos igualar las dos fórmulas.
Si de la fórmula (4) despejamos
Multiplicar entradas con el divisor de tensión con Arduino
Ya sabemos entonces como calcular un divisor de tensión, ahora vamos a plantear el problema que queremos resolver. Queremos multiplicar nuestras entradas digitales de una manera muy especial, utilizando una única entrada analógica vamos a leer varios pulsadores digitales. Lo primero es plantear el circuito.
Como ves, vamos a tener conectados 3 pulsadores a una fuente de alimentación, en nuestro caso será los 5V que son los que nos suministra Arduino. Cada pulsador tiene una resistencia en serie y la última resistencia que comparten todos es la resistencia Pull-down, para evitar indeterminaciones por el estado de alta impedancia (alta resistencia).
La idea es conectar
Resistencia en el divisor de tensión para multiplicar entradas
Vamos a calcular el valor de cada resistencia así que, sabiendo que queremos tener 3 estados posibles (uno por cada pulsador) más el estado que nos indica que no hay ningún pulsador cerrado, esto harían 4 estados. Si Arduino nos suministra 5 Voltios, solo tenemos que dividir esta tensión entre los 4 posibles estados que tenemos, así tendremos un rango de tensiones para cada estado.
Con este valor ya podemos asegurar lo siguiente
- Si la tensión está entre 0 V y 1,25 V, no habrá ningún pulsador cerrado.
- Si la tensión está entre 1,25 V y 2,5 V el pulsador 1 estará cerrado.
- Si la tensión está entre 2,5 V y 3,75 V el pulsador 2 estará cerrado.
- Si la tensión está entre 3,75 V y 5 V el pulsador 3 estará cerrado.
Pero claro, en todo esto sigue habiendo incógnitas, las resistencias en serie conectadas con los pulsadores, hay que calcular los ohmios para que nos den ese voltaje y aquí entra en juego el divisor de tensión que hemos visto anteriormente.
Despejando de la fórmula (0)
Ya tenemos entonces una fórmula (5) y ahora hay que aplicarla a cada caso. Los valores que no varían son
El problema que podemos tener con las resistencias es que no tengamos una de ese valor. Podemos utilizar un potenciómetro, por ejemplo, para conseguir la resistencia deseada. También podemos poner una resistencia aproximada a la obtenida y hacer los cálculos para ver si está dentro del margen seleccionado, esto sería un poco peligroso si la resistencia que ponemos hace que nos acerquemos a los límites establecidos.
Por último, podríamos poner varias resistencias en serie, como hemos visto al principio del artículo donde se explican las características de los circuitos en serie, cualquier solución es válida.
Este es el kit de resistencias que yo utilizo donde vienen multitud de resistencias de diferentes valores y muy práctico para estos casos.
Circuito eléctrico del divisor de tensión con Arduino
Una vez montado el circuito, solo quedaría conectar nuestra placa de Arduino y programar la entrada analógica para saber que pulsador es el que está pulsando. A continuación te dejo el esquema del conexionado con la placa de Arduino.
Verás que hay resistencias en serie para conseguir una resistencia lo más próximo a los valores obtenidos. Además he añadido 3 LEDs para demostrar como se utiliza este tipo de configuración.
Código de Arduino para el divisor de tensión
Para poder utilizar el divisor de tensión con los pulsadores, hay aplicar la programación correspondiente. Lo que se pretende con el siguiente sketch es que cuando se pulse el pulsador 1, se encienda el LED azul, cuando se pulse el pulsador 2 se encienda el LED verde y cuando se pulse el pulsador 3 se encienda el LED rojo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
/* Creado: Luis del Valle (ldelvalleh@programarfacil.com) https://programarfacil.com */ const int ledAzul = 2; const int ledVerde = 3; const int ledRojo = 4; const int analogPin = A0; void setup() { // Pines digitales en modo salida pinMode(ledAzul, OUTPUT); pinMode(ledVerde, OUTPUT); pinMode(ledRojo, OUTPUT); // Apaga todos los LEDs apagarLeds(); // Inicia monitor serie Serial.begin(9600); } void loop() { // Leer el pin analógico int valorA0 = analogRead(analogPin); // Convertir a voltios el valor analógico float voltaje = valorA0 * (5.0/1023.0); // Mostramos los voltios en el monitor serie Serial.println(voltaje); // Apagamos LEDs apagarLeds(); // Pulsador 1 if(voltaje >= 1.25 && voltaje <2.5) { digitalWrite(ledAzul, HIGH); } // Pulsador 2 else if(voltaje >= 2.5 && voltaje <3.75) { digitalWrite(ledVerde, HIGH); } // Pulsador 3 else if(voltaje >= 3.75 && voltaje <=5) { digitalWrite(ledRojo, HIGH); } delay(100); } void apagarLeds() { digitalWrite(ledAzul, LOW); digitalWrite(ledVerde, LOW); digitalWrite(ledRojo, LOW); } |
Conclusión
El divisor de tensión es uno de los recursos electrónicos más utilizados con Arduino. Debemos conocer y dominar esta técnica ya que tarde o temprano necesitaremos utilizarla en nuestros proyectos.
Recuerda que la intensidad, el voltaje y la resistencia son fundamentales. En el divisor de tensión debemos calcular las resistencias en función del voltaje y la intensidad.
¿Te ha parecido este artículo sobre el divisor de tensión con Arduino?
¿Conoces algún caso donde aplicar el divisor de tensión con Arduino?
Espero tus comentarios aquí abajo. Si te ha gustado puedes compartir este artículo con tus amigos o por redes sociales, me harás un gran favor :)
Gracias a Shutterstock por ceder los derechos de la imagen