Vous êtes sur la page 1sur 2

P

r
o
g
r
a
m
a
c
i

n

c
o
n

A
r
d
u
i
n
o

:

M
a
t
r
i
z

c
o
n

L
E
D
s


3
x
3

1



Lic Edgardo Faletti(2014)
Tecnologas Educativas .

Programa para el control de una matriz con LEDs 3x3 (Arduino Uno)

Este programa puede ser adaptado para manejar un display de matriz de leds.
Inicialmente, en este caso, se construye el circuito indicado en la figura 1.


Figura 1. Arduino UNO trabaja con una tensin de 5 Volts.

Programa:
/*declaro elementos*/
int pin[]={2,3,4,5,6,7};//defino los pines para trabajar
unsigned long last;// defino variable de sincronismo
int indice=0;//defino variable

/*inicializo */
void setup()
{
last=millis();//ajuste de tiempo del Arduino
for(int i=0;i<6;i++)
{
pinMode(pin[i],OUTPUT);//declaro los pines como salidas
/*pin2=row0,pin3=row1,pin4=row2,pin5=col0,pin6=col1,pin7=col2*/
digitalWrite(pin[i],LOW);//inicializo a los pines en 0 o estado LOW

}
}
byte leds[3][3];//defino una matriz

void setPattern(byte patron[6][3],int indice)//declaro matriz patron y variable indice en funcin setPattern
{
for(int r=0;r<3;r++) //barro filas
{
for(int c=0;c<3;c++) //barro columnas
{
leds[r][c]=patron[r+indice][c];//barre una de las partes de la matriz en funcin de indice
}
}
}
void draw() //funcin que imprime la matriz y modula el brillo de los leds
{
for(int r=0;r<3;r++) //barro las filas
{




P
r
o
g
r
a
m
a
c
i

n

c
o
n

A
r
d
u
i
n
o

:

M
a
t
r
i
z

c
o
n

L
E
D
s


3
x
3

2

digitalWrite(pin[r],HIGH);// enciendo las row


for(int c=0;c<3;c++)

{
digitalWrite(pin[3+c],(leds[r][c]==1?LOW:HIGH)); //si el valor de leds en la matriz vale 1, entonces
// se pone en LOW ,sino en HIGH
}

delayMicroseconds(900);//retraso de 900 microsegundos
digitalWrite(pin[r],LOW);// apago las row luego del delay constantemente
}

}
void loop()
{
if (millis()-last>400)
{
indice=(indice==0 ? 3:0);//si indice vale 0, si es verdad, hacer indice=3 o sino hacer indice=0
last=millis(); //ajuste
}
byte patron[6][3]= // valores de la matriz patron
{
{1,1,1}, //posicin 0 -valor para indice=0
{0,0,0}, //posicin 1
{1,1,1}, //posicin 2

{0,0,0}, // posicin 3 -valor para indice=3
{1,1,1}, //posicin 4
{0,0,0}, //posicin 5
};
setPattern(patron,indice); //selecciona la parte de la matriz para leer
draw();//ejecuto la funcin draw
}







Figura 2. Circuito propuesto.

Vous aimerez peut-être aussi