Programar fácil con Arduino

Programar fácil con Arduino, entiende cómo funciona el mundo.

  • Blog
  • ¿Quién soy?
  • Podcast
  • Curso Arduino [GRATIS]
  • Curso Domótica [GRATIS]
  • Acceder
Usted está aquí: Inicio / Blog / Qué es el divisor de tensión en Arduino [vídeotutorial paso a paso]

Qué es el divisor de tensión en Arduino [vídeotutorial paso a paso]

Comentarios(7)
Luis del Valle Hernández

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.

Divisor de tension con Arduino

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

  • 1 Divisor de tensión con un ejemplo
  • 2 Multiplicar entradas con el divisor de tensión con Arduino
  • 3 Resistencia en el divisor de tensión para multiplicar entradas
  • 4 Circuito eléctrico del divisor de tensión con Arduino
  • 5 Código de Arduino para el divisor de tensión
  • 6 Conclusión

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.

resistencia-serie

La fórmula para obtener \mathbf{V_{out}} es la siguiente

(0) \mathbf{V_{out}=\frac{R_{2}}{R_{1}+R_{2}}\times V_{cc}}

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.

división tensión arduino

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.

\mathbf{I_{total} = I_{R_{1}} = I_{R_{2}}}

Voltaje

El voltaje total sería la suma de los voltajes de todos los componentes conectados en serie

\mathbf{V_{total} = V_{R_{1}} + V_{R_{2}}}

Resistencia

La resistencia total sería la suma de todas las resistencias conectadas en serie

\mathbf{R_{total} = R_{1} + R_{2}}

Vamos a partir de la ya más que conocida Ley de Ohm \mathbf{V = R\times I}. Si aplicamos esta Ley para calcular el voltaje en cada resistencia obtenemos las siguientes fórmulas.

\mathbf{V_{1} = I_{1}\times R_{1}}

\mathbf{V_{2} = V_{out} = I_{2}\times R_{2}}

Como ya hemos visto antes, la intensidad en un circuito que está conectado en serie es la misma \mathbf{I = I_{R_{1}} = I_{R_{2}}}, así que podemos sustituir la intensidad, las fórmulas nos quedarían de la siguiente manera.

(1) \mathbf{V_{1} = I\times R_{1}}

(2) \mathbf{V_{out} = I\times R_{2}}

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.

\mathbf{V_{cc} = V_{1} + V_{out} = I\times R_{1} + I\times R_{2}}

Si sacamos factor común tenemos que.

\mathbf{V_{cc} = I\times R_{1} + I\times R_{2} = I\times (R_{1} + R_{2})}

Ahora vamos a despejar la intensidad.

(3) \mathbf{I = \frac{V_{cc}}{R_{1}+R_{2}}}

 De la fórmula (2) despejamos la intensidad también y como son iguales, podemos igualar las dos fórmulas.

\mathbf{I = \frac{V_{out}}{R_{2}}}

(4) \mathbf{\frac{V_{out}}{R_{2}} = \frac{V_{cc}}{R_{1} + R_{2}}}

Si de la fórmula (4) despejamos \mathbf{V_{out}} obtenemos la fórmula (0) y por lo tanto queda demostrado de dónde viene esta fórmula.

\large{\mathbf{V_{out}=\frac{R_{2}}{R_{1}+R_{2}}\times V_{cc}}}

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.

  • multiples-pulsadores

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 \mathbf{V_{out}} a una entrada analógica y dependiendo del voltaje que obtengamos, determinar si se ha pulsado uno u otro pulsador. Por ahora lo que conocemos es \mathbf{V_{cc}} que son los 5V. La resistencia \mathbf{R_{4}} es una resistencia Pull-down, en este caso nos conviene una resistencia de 3,3 kΩ, lo veremos en los cálculos posteriores. Ya solo nos queda saber el valor de las resistencias que están en serie con cada pulsador y el valor de \mathbf{V_{out}} dependiendo del pulsador que esté cerrado.

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.

\mathbf{\frac{5V}{3+1} = \frac{5}{4} = 1,25 V}

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) \mathbf{R_{1}} y sustituyendo los valores lo podríamos calcular. Hagamos el desarrollo y veamos que conseguimos. Para que quede más claro vamos a sustituir los nombres de \mathbf{R_{1}} por \mathbf{R_{pulsador}} y \mathbf{R_{2}} por \mathbf{R_{pulldown}}.

\large{\mathbf{V_{out} = \frac{R_{pulldown}}{R_{pulsador}+R_{pulldown}}\times V_{cc}}}

\large{\mathbf{V_{out}\times(R_{pulsador} + R_{pulldown}) = R_{pulldown}\times V_{cc}}}

\large{\mathbf{V_{out}\times R_{pulsador} + V_{out}\times R_{pulldown} = R_{pulldown}\times V_{cc}}}

\mathbf{V_{out}\times R_{pulsador} = R_{pulldown}\times V_{cc} - V_{out}\times R_{pulldown}}

\mathbf{R_{pulsador} = \frac{R_{pulldown}\times V_{cc} - V_{out}\times R_{pulldown}}{V_{out}}}

(5) \mathbf{R_{pulsador} = \frac{R_{pulldown}\times \left (V_{cc} - V_{out} \right )}{V_{out}}}

 Ya tenemos entonces una fórmula (5) y ahora hay que aplicarla a cada caso. Los valores que no varían son \mathbf{R_{pulldown}=3,3k\Omega} y \mathbf{V_{cc}=5V} y \mathbf{V_{out}} dependerá de cada pulsador. Como este valor es un rango, cogeremos un valor intermedio del rango correspondiente a cada pulsador.

  • \mathbf{R_{1} = \frac{R_{pulldown}\times \left (V_{cc} - V_{out} \right )}{V_{out}} = \frac{3.300\times (5-1,875)}{1,875} = 5.500\Omega}
  • \mathbf{R_{2} = \frac{R_{pulldown}\times \left (V_{cc} - V_{out} \right )}{V_{out}} = \frac{3.300\times (5-3,125)}{3,125} = 1980\Omega}
  • \mathbf{R_{2} = \frac{R_{pulldown}\times \left (V_{cc} - V_{out} \right )}{V_{out}} = \frac{3.300\times (5-4,375)}{4,375} = 471,43\Omega}

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.

divisor de tension

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

integraciones de Home Assistant

Integraciones de Home Assistant

En este tutorial voy a hablar de las integraciones de Home Assistant pero antes déjame contarte la historia de Jack, un norteamericano de bien, de los … [+ info...]

dispositivos inteligentes para el hogar

Tipos de dispositivos inteligentes para el hogar

En este artículo voy a hablar de los dispositivos domóticos o dispositivos inteligentes para el hogar que pueden ser integrados dentro de Home … [+ info...]

osciloscopios

Osciloscopio para proyectos con Arduino

Una imagen vale más que mil palabras. Seguro has escuchado esta frase alguna vez y es probable que en la mayoría de las ocasiones lo que dice sea … [+ info...]

Copyright © 2023 · Programar Fácil · Aviso legal

Utilizamos cookies propios y de terceros para mejorar nuestros servicios y experiencia de usuario. Si continua navegando, consideramos que acepta su uso.Aceptar Política de privacidad y cookies
Política de cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
GUARDAR Y ACEPTAR