Programar fácil con Arduino

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

  • Inicio
  • Cursos
  • Blog
  • Podcast
  • ¿Quién soy?
  • Contactar
  • Acceder
Estás 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.

C
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
/*
  Creado: Luis del Valle ([email protected])
  https://programarfacil.com
*/
 
const int ledAzul = 2;
const int ledVerde = 3;
const int ledRojo = 4;
const int analogPin = 0;
 
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

curso programacion de arduino desde cero

Tutoriales de Arduino


Curso de Arduino
Proyectos con Arduino
Servomotor con Arduino
Sensor de temperatura DHT11
Sensor temperatura Arduino
Tutorial pulsadores
Tutorial RTC reloj Arduino
Tutorial potenciómetro Arduino
Tutorial display 7 Arduino
Tutorial motor paso a paso Arduino
Tutorial librerías Arduino
Tutorial ultrasonidos Arduino
Tutorial I2C Arduino
Tutorial consumo Arduino
Tutorial weareable Arduino
Tutorial interrupciones Arduino
Tutorial ADS1115 ADC Arduino
Tutorial pilas Arduino
Tutorial riego Arduino
Arduino Shield EchidnaShield
Tutorial if else Arduino

Tutoriales ESP8266


Introducción ESP8266
Tutorial NodeMCU
IDE Arduino NodeMCU
Tutorial ESP-01
Relé WiFi Sonoff

Tutoriales IoT


Proyectos IoT con Arduino
MQTT ESP8266 Raspberry Pi
Redes LPWAN Arduino
IFTTT Arduino
Geolocalización Arduino
Arduino MKRFOX1200 Sigfox
Tutorial Node-RED

Tutoriales Visión Artificial


Instalación OpenCV y Python
Introducción Vision Artificial
Detección movimiento OpenCV
Introducción OpenCV
Qué es Machine Learning
Sensor Kinect
Realidad Aumentada
Detector Canny OpenCV
Big Data Visión Artificial
Kinect y Processing
Deep Learning

Tutoriales Raspberry Pi


Tutorial Raspberry Pi
Proyectos Raspberry Pi
Vídeo Raspberry Pi
Servidor web Raspberry Pi
Servidor Raspberry Pi
Flask Raspberry Pi
Monitor bebé Raspberry Pi

Podcast


Entrevista Obijuan
Entrevista BricoGeek
Entrevista David Cuartielles
Entrevista Rinconingenieril
Entrevista Staticboards
Entrevista La Hora Maker
Entrevista OSHWDem
Entrevista Colepower
Entrevista Aprendiendoarduino
Entrevista BitFab
open led race

Open LED Race carreras de coches con NeoPixel y Arduino

Si hay un proyecto que ha llamado mi atención y la de otros muchos medios ese es Open LED Race. En menos de un año de vida se ha convertido en algo … [+ info...]

apagar equipo remoto arduino

Apaga y enciende tus equipos en remoto con un Arduino

Estamos acostumbrados a trabajar en digital es decir, todo son unos y ceros que transmitimos por redes o por circuitos para que hagan algo concreto: … [+ info...]

nevera arduino

La nevera basada en Arduino que te sigue como un perrito

Con Arduino podemos hacer prácticamente cualquier cosa. Bueno, no sólo con Arduino, aparte vamos a necesitar otros componentes y una buena base de … [+ info...]

Copyright © 2019 · 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

Necesarias Siempre activado

close

Te ayudo a dar los primeros pasos con Arduino

Si quieres aprender programación de electrónica con Arduino utilizando un método serio, prueba el curso que te ofrezco.


Es muy sencillo, te apuntas en este formulario y accedes a los 3 primeros módulos.


Que te gusta, sigues con el curso completo.


Que no te gusta, sin problema, te das de baja y tan amigos.


Solo para gente seria que esté cansada de copiar y pegar código sin saber lo que hace.

x