PRÁCTICA: REGULANDO VELOCIDAD DE LEDS CON ARDUINO
Materiales: 1 protoboard, arduino, potenciómetro, 8 leds, 8 resistencias 220 o 330 ohmios y cables macho-macho.

PRIMER PASO
Al comenzar esta práctica se realizó la conexión del circuito usando el protoboard, arduino, cuatro leds con sus respectivas resistencias y un potenciómetro. Se conectaron los leds a los pines digitales del arduino del 1 al 4 y el potenciómetro al pin análogo A0.
Sin embargo, para poder comprobar la correcta conexión de estos elementos se realizó una primera programación en la cual se enciende y apaga los leds cada medio segundo de forma repetida sin interferencia alguna del potenciómetro.
Programación:
Circuito funcionando:
Reflexión
No tuve dificultades en la conexión del circuito. No obstante, recomiendo el usar cables más cortos u organizarlos de forma ordenada, pues puede resultar difícil el identificar en donde se están conectando ya que obstaculizan la vista al protoboard.
Conclusión
Mediante los pines digitales del arduino se envía la señal de voltaje de 5 o cero haciendo que los leds se enciendan o se apaguen respectivamente.
SEGUNDO PASO
Posteriormente, para practicar el programar adecuadamente los elementos del circuito se realizó otra prueba en el que se encienden los leds exteriores y después de medio segundo se encienden los leds interiores, repitiéndose estas acciones de forma indefinida.
Programación:
Circuito funcionando:
Reflexión
No tuve dificultad alguna para conectar el circuito. Durante este paso no es necesario tener conectado el potenciómetro por lo que la conexión del circuito fue bastante sencilla.
Conclusión
Se pueden realizar diferentes patrones en los que los leds se enciendan al enviar distintas señales a los pines digitales.
TERCER PASO
En esta parte de la práctica se empezó a usar el potenciómetro. En la programación se determinó que el valor análogo dado por el potenciómetro representaría la duración del tiempo de separación entre el cual se encienden los leds, siguiendo estos la misma programación del circuito anterior.
Programación:
Circuito funcionando:
Reflexión
No tuve problemas al realizar la conexión. No obstante, recomiendo el procurar conectar adecuadamente el potenciómetro pues este tiene terminales polares.
Conclusión
El potenciómetro envía una señal análoga que al ser procesada por el arduino UNO, puede tomar los valores de 0 a 1023 por lo que dependiendo de cuanto se gire su perilla. Por lo tanto al ir girando la perilla, la separación de tiempo en la que el patrón de encendido ocurre disminuye. Cuando se gira la perilla al máximo, el tiempo de diferencia es tan corto que casi no se nota el titileo de los leds, dando la impresión de estar encendidos todo el tiempo.
CUARTO PASO
Se conectaron 4 leds más con sus respectivas resistencias de la misma forma que los anteriores en el circuito. Una vez hecho esto, se modificó la programación con el fin de ajustarla a estos cambios. Decidí que los leds se encenderían de acuerdo a los pines a los que estuvieran conectados, prendiéndose primero los conectados a los pines impares y luego los conectados a los pares con una separación de tiempo determinada por el potenciómetro.
Programación:
int led1 = 1;
int led2 = 2;
int led3 = 3;
int led4 = 4;
int led5 = 5;
int led6 = 6;
int led7 = 7;
int led8 = 8;
//Variable de referencia del potenciómetro
int potenciometro = A0;
//Variable donde se almacenará lo que ingrese del potenciómetro
int valorPotenciometro;
void setup() {
// todos los pines de los leds deben ser salida
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
// Leo el puerto A0 (analógico) para saber cuanto ha cambiado
valorPotenciometro = analogRead(potenciometro);
// prendo los leds o alguna otra secuencia
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
digitalWrite(led5, HIGH);
digitalWrite(led6, LOW);
digitalWrite(led7, HIGH);
digitalWrite(led8, LOW);
// espero un tiempo y dependerá del valor del potenciómetro
delay(valorPotenciometro);
// apago los leds o alguna otra secuencia
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, HIGH);
digitalWrite(led5, LOW);
digitalWrite(led6, HIGH);
digitalWrite(led7, LOW);
digitalWrite(led8, HIGH);
// espero un tiempo y dependerá del valor del potenciómetro
delay(valorPotenciometro);
}
Circuito funcionando:

Reflexión
No tuve dificultades al realizar este circuito. Recomiendo el asegurase de la correcta conexión de los terminales de los leds debido a que se aumenta su número.
Conclusión
Este último circuito sigue el mismo funcionamiento que el del anterior paso. El aumento de leds no afecta en ningún sentido la conexión. Sin embargo, se debe agregar en las variables globales lo nuevos pines usados con los leds y declararlos en void set up y determinar su patrón en void loop.
Comentarios
Publicar un comentario