2
Programación con Arduino : Matriz con LEDs 3x3 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’ } } }

Matriz leds 3 x 3 -ARDUINO UNO-R3

  • Upload
    fagdut

  • View
    373

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Matriz leds 3 x 3 -ARDUINO UNO-R3

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’ } } }

Page 2: Matriz leds 3 x 3 -ARDUINO UNO-R3

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.