LABORATORIO N° 14:
Matriz de LEDs
en Arduino
en Arduino
OBJETIVOS:
- Identificar señales analógicas y digitales que entran y salen de Arduino.
- Utilizar comandos para escribir y leer señales digitales, y convertirlas en señales analógicas.
MATRIZ DE LEDs
Las matrices de LEDs (o LED arrays) son, como su nombre indica, una matriz de diodos LED normales y corrientes que se comercializa en multitud de formatos y colores. Desde las de un solo color, a las que tienen varios colores posibles, e incluso las hay de una matriz RGB
Este componente se presenta con dos filas de 8 pines cada una, que se conectan a las filas y las columnas.
Si ponemos HIGH en una columna, digamos la 2, no se iluminara nada aun. Pero cuando hagamos LOW en, digamos la fila 4, se cerrara el circuito a GND (con una resistencia de limitación, por supuesto) y el pin col 2 x fila 4, se encenderá.
VIDEO DEMOSTRATIVO
OBSERVACIONES
-Para definir las letras en la matriz de led se debe
especificar primero el código hexadecimal de cada palabra en Arduino.
-Para la formación de letras o mensajes en una matriz led con arduino hay diferentes posibilidades y estructuras al momento de realizar el codigo uno de ellos es el manejo de matrices como variables pudiendo controlar varios pines digitales con pocas sentencias de codigo, otra de ellas es el manejo de bytes .
-Para la formación de letras o mensajes en una matriz led con arduino hay diferentes posibilidades y estructuras al momento de realizar el codigo uno de ellos es el manejo de matrices como variables pudiendo controlar varios pines digitales con pocas sentencias de codigo, otra de ellas es el manejo de bytes .
CONCLUSIONES
-El uso de microcontrolodores es mucho mas eficaz a la hora de realizar este tipo de proyectos ya que gracias a su versatilidad a la hora de manejar columnas y filas de la matriz led para la formación de figuras y mensajes es mucho mas simple con solo la conexión de pines y una programación adecuada
-La implementación del circuito resulta ser mucho mas fácil pero tiene ciertas limitantes a la hora de conectar varias matrices por lo que se debe de implementar módulos para cada matriz, así se podrá controlar toda una serie de matrices con una conexión en cascada y los datos de forma digital esto dependerá también de la programación
-Se implemento el código para que Arduino genere letra en una
matriz de 7x5, además se comprobó que tanta las salidas analógicas de Arduino pueden
ser usadas también como salidas digitales.
Trabajo Extra: Vúmetro con Arduino.
¿Qué es un vúmetro?
Un vúmetro es un dispositivo que indica el voltaje de forma visual comúnmente usados en equipos de audio. Detecta los puntos altos y bajos del sonido.
Materiales:
-Arduino UNO
-LM324
-11 resistencias de 220 ohmios
-Potenciometro de 5k o 10k
-11 LED's
- Cable auxiliar.
- Cables o jumpers.
Circuito LM324:
Es un circuito integrado que contiene 4 amplificadores operacionales
En el pin 2 conectaremos una resistencia de 220 Ohms y un extremo del potenciometro de 5k o 10k, el pin del medio ira al pin 1 del LM324. El otro extremo de la resistencia de 220 ira a tierra.
Conectamos cada salida digital del Arduino (1 al 10) un LED con su respectiva resistencia
El cable auxiliar que usaremos para conectar el audio es de 3.5 mm. y conectaremos con cables tipo caimán. La parte de la base va conectada a tierra, mientras que podemos usar cualquiera de las señales de audio y también usando un caimán vamos a conectarlo al pin 3 del LM324
Nuestras conexiones quedan así
Código en Arduino:
//Declaramos los leds
int LED1 = 3;
int LED2 = 4;
int LED3 = 5;
int LED4 = 6;
int LED5 = 7;
int LED6 = 8;
int LED7 = 9;
int LED8 = 10;
//Las variables que usaremos para el silencio
int Valor;
int Valor1;
int Valor2;
int Valor3;
int Valor4;
//Configuramos los pines y el serial para poder visualizar la entrada analogica
void setup (){
Serial.begin(9600);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
pinMode(LED5,OUTPUT);
pinMode(LED6,OUTPUT);
pinMode(LED7,OUTPUT);
pinMode(LED8,OUTPUT);
}
void loop (){
//Leemos el valor
Valor = analogRead(A0);
//Transferimos los valores para saber cual era el estado anterior
Valor4 = Valor3;
Valor3 = Valor2;
Valor2 = Valor1;
Valor1 = Valor;
//Visualizamos los valores en Serial Monitor
Serial.print("Valor: ");
Serial.print(Valor);
Serial.print("\t Valor1: ");
Serial.print(Valor1);
Serial.print("\t Valor2: ");
Serial.print(Valor2);
Serial.print("\t Valor3: ");
Serial.print(Valor3);
Serial.print("\t Valor4: ");
Serial.println(Valor4);
//Condicionamos que si el programa lee 4 veces seguidas 0 que se apagen los leds, si no ponemos esto los leds parpadearan mucho
if (Valor1+Valor2+Valor3+Valor4==0){
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
}
//Encendemos los leds segun el valor de entrada. En este caso la salida de mi pc como mucho me llega a 400 asi que lo dividimos entre ocho leds.
else{
if (Valor>0){
digitalWrite(LED1, HIGH);
}
else{
digitalWrite(LED1, LOW);
}
if (Valor>50){
digitalWrite(LED2, HIGH);
}
else{
digitalWrite(LED2, LOW);
}
if (Valor>100){
digitalWrite(LED3, HIGH);
}
else{
digitalWrite(LED3, LOW);
}
if (Valor>150){
digitalWrite(LED4, HIGH);
}
else{
digitalWrite(LED4, LOW);
}
if (Valor>200){
digitalWrite(LED5, HIGH);
}
else{
digitalWrite(LED5, LOW);
}
if (Valor>250){
digitalWrite(LED6, HIGH);
}
else{
digitalWrite(LED6, LOW);
}
if (Valor>300){
digitalWrite(LED7, HIGH);
}
else{
digitalWrite(LED7, LOW);
}
if (Valor>350){
digitalWrite(LED8, HIGH);
}
else{
digitalWrite(LED8, LOW);
}
}
}
int LED1 = 3;
int LED2 = 4;
int LED3 = 5;
int LED4 = 6;
int LED5 = 7;
int LED6 = 8;
int LED7 = 9;
int LED8 = 10;
//Las variables que usaremos para el silencio
int Valor;
int Valor1;
int Valor2;
int Valor3;
int Valor4;
//Configuramos los pines y el serial para poder visualizar la entrada analogica
void setup (){
Serial.begin(9600);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
pinMode(LED5,OUTPUT);
pinMode(LED6,OUTPUT);
pinMode(LED7,OUTPUT);
pinMode(LED8,OUTPUT);
}
void loop (){
//Leemos el valor
Valor = analogRead(A0);
//Transferimos los valores para saber cual era el estado anterior
Valor4 = Valor3;
Valor3 = Valor2;
Valor2 = Valor1;
Valor1 = Valor;
//Visualizamos los valores en Serial Monitor
Serial.print("Valor: ");
Serial.print(Valor);
Serial.print("\t Valor1: ");
Serial.print(Valor1);
Serial.print("\t Valor2: ");
Serial.print(Valor2);
Serial.print("\t Valor3: ");
Serial.print(Valor3);
Serial.print("\t Valor4: ");
Serial.println(Valor4);
//Condicionamos que si el programa lee 4 veces seguidas 0 que se apagen los leds, si no ponemos esto los leds parpadearan mucho
if (Valor1+Valor2+Valor3+Valor4==0){
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
}
//Encendemos los leds segun el valor de entrada. En este caso la salida de mi pc como mucho me llega a 400 asi que lo dividimos entre ocho leds.
else{
if (Valor>0){
digitalWrite(LED1, HIGH);
}
else{
digitalWrite(LED1, LOW);
}
if (Valor>50){
digitalWrite(LED2, HIGH);
}
else{
digitalWrite(LED2, LOW);
}
if (Valor>100){
digitalWrite(LED3, HIGH);
}
else{
digitalWrite(LED3, LOW);
}
if (Valor>150){
digitalWrite(LED4, HIGH);
}
else{
digitalWrite(LED4, LOW);
}
if (Valor>200){
digitalWrite(LED5, HIGH);
}
else{
digitalWrite(LED5, LOW);
}
if (Valor>250){
digitalWrite(LED6, HIGH);
}
else{
digitalWrite(LED6, LOW);
}
if (Valor>300){
digitalWrite(LED7, HIGH);
}
else{
digitalWrite(LED7, LOW);
}
if (Valor>350){
digitalWrite(LED8, HIGH);
}
else{
digitalWrite(LED8, LOW);
}
}
}
Integrantes:
- Luis Alonso Bayton Coaguila
- Fernando Sejje Yucra
- Alvaro Meza Capcha
- Renzo Torres Umiña
- Luis Alonso Bayton Coaguila
- Fernando Sejje Yucra
- Alvaro Meza Capcha
- Renzo Torres Umiña





No hay comentarios.:
Publicar un comentario