Upload
fagdut
View
373
Download
4
Embed Size (px)
Citation preview
Pro
gram
ació
n co
n Ar
duin
o : M
atriz
con
LED
s 3
x3
1
Lic Edgardo Faletti(2014) Tecnologías 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 tensión 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 función ‘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 función de ‘indice’ } } }
Pro
gram
ació
n co
n Ar
duin
o : M
atriz
con
LED
s 3
x3
2
void draw() //función que imprime la matriz y modula el brillo de los leds { for(int r=0;r<3;r++) //barro las filas { 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}, //posición 0 -valor para indice=0 {0,0,0}, //posición 1 {1,1,1}, //posición 2 {0,0,0}, // posición 3 -valor para indice=3 {1,1,1}, //posición 4 {0,0,0}, //posición 5 }; setPattern(patron,indice); //selecciona la parte de la matriz para leer draw();//ejecuto la función draw }
Figura 2. Circuito propuesto.