Entradas analógicas con el potenciómetro (Previsualizar)

esquema-conexion-potenciometro-Arduino
Primero debes completar Entradas digitales con botones antes de ver esta lección

Introducción

En esta unidad vamos a aprender cómo funcionan las señales analógicas, a crear una usando un potenciómetro, y a leerla con el conversor analógico-digital de Arduino.

Las señales analógicas

En unidades anteriores hemos visto cómo funcionan las señales digitales, que son aquellas que pueden tomar dos valores, 0 y 1 (representando valores que normalmente con Arduino serán 0 y 5V).

Señal digital

Además, hay otro tipo de señales, llamadas analógicas. Lo que hace especial a las señales analógicas es que éstas pueden tomar cualquier valor.

Señal analógica

El núcleo de Arduino (y de cualquier procesador) funciona puramente en digital. Por suerte, Arduino incluye un dispositivo llamado “conversor de analógico a digital” (ADC, por sus siglas en inglés) que convierte la señal analógica en un número digital para que pueda ser procesada por nuestro programa Arduino.

El ADC de ARDUINO

Arduino tiene 6 pines analógicos, etiquetados de A0 a A5. Todos estos pines están conectados al ADC y pueden leer señales analógicas.

Pines analógicos de Arduino

El ADC de Arduino UNO funciona en un rango de 0 a 5V, dividido en 1.024 valores diferentes, de 0 a 1.023, correspondiendo el valor 0 del ADC a 0V, y 1.023 a 5V de señal. Esto quiere decir, por ejemplo, que el ADC leerá 204 cuando la señal de entrada esté a 1V, 408 cuando esté a 2V…

El potenciómetro

El potenciómetro, también conocido como resistencia variable, es un dispositivo que sirve para dividir un voltaje según la posición de una rueda que podemos ajustar manualmente.

Potenciómetro

En el caso de Arduino vamos a conectar el potenciómetro a 0 y 5V, y vamos a ver cómo ajustando la rueda obtenemos una señal que varía entre esos voltajes. Para ello, vamos a obtener usando la consola serie el valor leído por el ADC según ajustemos la rueda del potenciómetro.

Explora

Comprendiendo la lectura analógica y el funcionamiento del potenciómetro

Para ver cómo funciona la lectura de una señal analógica y el funcionamiento del potenciómetro, construimos el siguiente circuito conectando los pines exteriores del potenciómetro a 0 y 5V (no importa el orden), y el central al pin A0 de Arduino.

esquema-conexion-potenciometro-Arduino

¡Vamos a programar!

Lo que vamos a hacer es leer el potenciómetro y sacar el valor por el monitor serie. Para ello, lo primero que hacemos es declarar las variables que vamos a usar en nuestro programa.

const int POTENCIOMETRO = A0;  // pin al que está conectado el potenciómetro
int valorPotenciometro;  // almacena el valor (de 0 a 1023) del potenciómetro

La variable valorPotenciometro no está inicializada en ningún valor, ya que no tiene porqué empezar en 0 esta variable en este programa, la rueda puede tener la posición inicial de cualquier otro valor entre 0 y 1023, no necesariamente tiene que ser 0.

A diferencia de los pines digitales, los pines analógicos no requieren configuración, por lo que en la función void setup() lo único que necesitamos es inicializar las comunicaciones del monitor serie.

void setup() {
  Serial.begin(9600);  // inicializa el monitor serie
}

En el bucle principal, función void loop(), realizamos la lectura del potenciómetro conectado al pin A0, y enviamos el valor obtenido al monitor serie. Al final del bucle se introduce un delay de 1 milisegundo para espaciar las lecturas.

void loop() {
  valorPotenciometro = analogRead(POTENCIOMETRO); // lee el potenciómetro y lo almacena en la variable valorPotenciometro
  Serial.println(valorPotenciometro);    // imprime en el monitor serie el valor del potenciómetro
  delay(1);     // espera 1 milisegundo entre lectura y lectura
}

Finalmente, nuestro código para obtener el valor del potenciómetro por el monitor serie de Arduino es:

Carga el programa arduino-icono-subir y abre el monitor serie arduino-icono-monitor-serie para ver la salida. Ajusta la rueda del potenciómetro y observa cómo el valor obtenido en la consola varía en cada iteración del programa.

Monitor serie Arduino con potenciómetro

Usando el potenciómetro para ajustar la frecuencia de parpadeo de un LED

Todos hemos usado un potenciómetro alguna vez en dispositivos que usamos a diario. Podemos encontrarlo en ellos para ajustar el volumen, la sintonización de la radio, la temperatura de un horno, etc.

Ahora que sabemos leer el estado del potenciómetro usando los pines analógicos de Arduino, vamos a utilizarlo para ajustar la frecuencia con la que parpadea un LED.

Construimos este circuito:
esquema-conexion-potenciometro-led-Arduino

Como en el ejemplo anterior, necesitamos indicar la entrada donde conectaremos el pin central del potenciómetro, A0, así como la variable donde almacenaremos su lectura. Ahora que vamos a emplear un LED, también especificamos el pin donde éste está conectado, yo lo he conectado al pin 8:

const int POTENCIOMETRO = A0;  // pin al que está conectado el potenciómetro
const int LED = 8;             // pin al que está conectado el LED
int valorPotenciometro;  // almacena el valor (de 0 a 1023) del potenciómetro

Los pines analógicos no requieren configuración, por lo que la función setup() sólo necesita la instrucción que configura el pin digital del LED como salida:

void setup() {
  pinMode(LED, OUTPUT);  // inicializa el LED como salida
}

En el bucle principal, la frecuencia de parpadeo del LED va a depender del valor del potenciómetro. El programa realiza una lectura del pin del potenciómetro, que almacena en la variable valorPotenciometro. Entonces enciende el LED, y lo mantiene encendido por el valor que ha leído el ADC. Transcurrido ese tiempo, apaga el LED y lo mantiene apagado durante el mismo intervalo, antes de volver a empezar con una nueva lectura del ADC:

void loop() {
  valorPotenciometro = analogRead(POTENCIOMETRO); // lee el potenciómetro y lo almacena en la variable valorPotenciometro
  digitalWrite(LED, HIGH);    // enciende el LED
  delay(valorPotenciometro);  // el tiempo de espera es el valor del potenciómetro
  digitalWrite(LED, LOW);     // apaga el LED
  delay(valorPotenciometro);  // el tiempo de espera es el valor del potenciómetro
}

El programa ha quedado así:

Carga el programa y observa lo que ocurre al variar el potenciómetro.

Sigue explorando

Barra de indicación de ajuste con potenciómetro

Realiza un circuito utilizando varios LEDs que formen un indicador en la que los éstos se enciendan según la posición del potenciómetro. Para probar tu destreza con la programación de Arduino, puedes tratar de hacerlo de dos formas:

  1. Según la posición del potenciómetro se enciende un único LED.
  2. Según la posición del potenciómetro se van encendiendo cada vez más LEDs haciendo de “indicador de nivel”.

Cacharrea, crea y comparte tus proyectos.

  • 20 Cables Jumper para prototipar hembra-hembra
    20 Cables Jumper para prototipar macho-hembra
    Seleccionar opciones
    Vista rápida
    3,00  (2,48  excl. IVA)
    En tienda
  • Agotado
    Genuino UNO Rev. 3
    Genuino UNO Rev. 3
    Leer más
    Vista rápida
    25,00  (20,66  excl. IVA)
    Temporalmente no disponible
  • Potenciómetro
    Potenciómetro
    Seleccionar opciones
    Vista rápida
    1,20  (0,99  excl. IVA)
    En tienda
Volver a: Iniciación a Arduino

©2017 Fábrica Digital desde Jerez de la Frontera, España.

717 717 452 (Teléfono y Whatsapp) / hola@fabricadigital.org

De Lunes a Jueves de 09:00 a 18:00. Viernes de 09:00 a 14:00.

Calle del Comercio, 18, 11407 Jerez de la Frontera, Cádiz. - Cómo llegar

Información Legal - Aceptamos

 

Inicia Sesión con tu Usuario y Contraseña

o    

¿Olvidó sus datos?

Create Account