Práctica 14 Encender una secuencia de varios LEDs al mover un Potenciómetro (Tablero Electrónico)


14.1  Objetivo General:

Encender una secuencia de varios LEDs al mover la perilla de un potenciómetro,


Un conjunto de 12 LEDs serán encendidos  y apagados en función de donde se encuentre la perilla de un potenciómetro. Se simula con este práctica un tablero electrónico.

14.2 Materiales y Métodos:

  1. 12 LEDs (Colores: Amarillo, Verde y Rojo).
  2. Una tarjeta Arduino Uno-R3 o Arduino Mega 2560.
  3. Un Potenciómetro rotatorio 10 KΩ.
  4. Un cable USB impresora.
  5. Un computador.
  6. Cables para el montaje del circuito.
  7. Tarjeta Protoboard.
  8. 12 Resistencias Eléctrica de 220 ohm.

14.3 Montaje de la práctica:

Antes de comenzar la realización del montaje del circuito electrónico, se va a realizar el circuito en el programa TinkerCad. Cada LED será conectado tal como lo hicimos en la Práctica 1 donde encendimos y apagamos un LED, o como en la Práctica 11 donde encendimos una secuencia de LEDs simulando un semáforo. El arreglo de LEDs va ser similar al de la Práctica 13 . Se van a usar los  pines del 2 al 13 para conectar cada uno de los 12 LEDs, ver Figura 2:

Figura 2. Montaje del circuito en el programa TinkerCAD

Se observa en la Figura 2 que se está utilizando el Arduino Uno, si se utiliza la tarjeta Arduino Uno-R3 el mismo procedimiento. Como se observa en la Figura 2, el Protoboard nos ayuda a instalar los  LEDs e instalar el circuito a través de cables, al igual que la resistencia.

Luego que se tiene armado el circuito en el programa TinkerCad, se comienza con el desarrollo del programa en el IDE de Arduino.

14.4 IDE de Arduino para la práctica:

– Se selecciona la tarjeta Arduino que se esta utilizando sea Arduino Uno-R3 o Arduino Mega 2560.

– Se selecciona el Puerto Serial. Bajo que puerto USB se va a conectar el Arduino con el computador.

– Se empieza a realizar el código:

  • Inicialmente debemos darle un nombre de qué consiste el código, esto se hace a través del símbolo //, se puede colocar el título de la práctica o del programa en sí. También se puede utilizar como comentarios dentro del programa.
  • Se declaran las variables. En esta práctica utilizaremos un vector del tipo entero int ledPins[ ]={2,3,….}. Los corchetas indican que se esta declarando un vector. Para seleccionar una entrada específica del vector se usa ledPins[1] y dará como resultado 3. Los vectores en el arduino IDE van desde 0 hasta n.
  • Se declaran variables del tipo entero que definen número de LEDs ledCount y el número del canal de entrada de la señal del potenciómetro analogPin. Las dos variables son del tipo  const int.
  • En el segmento de void setup se declara que cada componente del vector pinArray es del tipo OUTPUT . Esto se hace de forma compacta utilizando un lazo for que va desde 0 hasta que i sea menor ( lt ) al número de LEDs.
  • En el segmento de void setup se lee primero el estado en el cual se encuentra la perilla del potenciómetro (que viene dado por el valor de lectura de 0 a 1024. int sensorReading = analogRead(analogPin). Luego se realiza un mapeo de la señal medida entre 0 a 1024 al valor de los LEDs de 0 a 12 LEDS, map(sensorReading, 0, 1023, 0, ledCount). Finalmente, se indica mediante un lazo for que se enciendan los leds de 0 hasta el valor ledCount medido (que está en función de la perilla del potenciómetro)
  • Al terminar el desarrollo del programa se debe compilar para verificar si existen errores dentro del codificado. Luego si no existen errores se debe cargar el código en la tarjeta Arduino para que lo ejecute.

NOTA: Para quel IDE de Arduino pueda entender los comandos es necesario que al final de cada instrucción se coloque punto y coma (;).

En la siguiente imagen se mostrara como quedo plasmado en el IDE de Arduino, los procedimientos anteriormente señalados:

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
// Encender leds mediante posición de la perilla de un potenciometro
const int analogPin = A0; // Pin donde se conecta la lectura del potenciometro
const int ledCount = 12; // Numero de LEDs a encender
 
int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11,12,13
}; // arreglo vectorial que indica el pin de los LEDs
 
void setup() {
// lazo para indicar que los pines de los LEDs son señal de salida
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
pinMode(ledPins[thisLed], OUTPUT);
}
}
 
void loop() {
// se lee el valor del potenciometro
int sensorReading = analogRead(analogPin);
// se mapea el valor medido del potenciometro al valor del rango de LEDs
int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);
 
// lazo para encender los LEDs:
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
// si el elemento en el arreglo es menor que ledLevel,
// se enciende el LED:
if (thisLed < ledLevel) {
digitalWrite(ledPins[thisLed], HIGH);
}
// de lo contrario apague el LED:
else {
digitalWrite(ledPins[thisLed], LOW);
}
}
}

Algoritmo  1 Código para encender y apagar un LED utilizando un botón pulsador. 

Implementación del algoritmo 1 en el simulador TinkerCad:

https://www.tinkercad.com/things/hHaI4jKYA9V

14.5 Conclusión:

En esta práctica se ha mostrado como encender una secuencia de LEDs en función de la posición de una perilla de un potenciometro. Lo aprendido puede servir para indicar por medio del tablero o secuencia de LEDs el nivel de una señal.

Si te gustó la práctica no dejes de comentar abajo