#include <FrequencyTimer2.h>
#include "font.h"
#include "figuras.h"
byte col = 0;
byte leds[8][8];
// Pines conectados al Arduino (-1 es un fantasma para que empience en la posicion 1)
int pins[17]= {-1, 5, 4, 3, 2, 14, 15, 16, 17, 13, 12, 11, 10, 18, 8, 7, 6};
// Columnas de leds = Pines de la matriz
int cols[8] = {pins[13], pins[3], pins[4], pins[10], pins[06], pins[11], pins[15], pins[16]};
// Filas de leds = Pines de la matriz
int rows[8] = {pins[9], pins[14], pins[8], pins[12], pins[1], pins[7], pins[2], pins[5]};
const int numPatterns = 22;
byte patterns[numPatterns][8][8] = {
D,A,V,G,E,E,K,PUNTO,C,O,M,SPACE,CARITA,SPACE,Bike,SPACE,Alto,SPACE,FlechaIzq,SPACE
};
int pattern = 0;
void setup() {
// Todos los pines como salidas
for (int i = 1; i <= 19; i++) {
pinMode(pins[i], OUTPUT);
}
// Pines en bajo
for (int i = 1; i <= 8; i++) {
digitalWrite(cols[i + 1], LOW);
}
for (int i = 1; i <= 8; i++) {
digitalWrite(rows[i + 1], LOW);
}
clearLeds();
// Turn off toggling of pin 11
FrequencyTimer2::disable();
// Set refresh rate (interrupt timeout period)
FrequencyTimer2::setPeriod(2000);
// Set interrupt routine to be called
FrequencyTimer2::setOnOverflow(display);
setPattern(pattern);
}
void loop() {
pattern = ++pattern % numPatterns;
slidePattern(pattern, 100);
}
void clearLeds() {
// Limpiar Display
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
leds[i][j] = 0;
}
}
}
void setPattern(int pattern) {
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
leds[i][j] = patterns[pattern][i][j];
}
}
}
void slidePattern(int pattern, int del) {
for (int l = 0; l < 8; l++) {
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 8; j++) {
leds[j][i] = leds[j][i+1];
}
}
for (int j = 0; j < 8; j++) {
leds[j][7] = patterns[pattern][j][0 + l];
}
delay(del);
}
}
// Rutina de interrupciones
void display() {
digitalWrite(cols[col], LOW); // Turn whole previous column off
col++;
if (col == 8) {
col = 0;
}
for (int row = 0; row < 8; row++) {
if (leds[col][7 - row] == 1) {
digitalWrite(rows[row], LOW); // Turn on this led
}
else {
digitalWrite(rows[row], HIGH); // Turn off this led
}
}
digitalWrite(cols[col], HIGH); // Turn whole column on at once (for equal lighting times)
}
_8x8.ino: In function 'void setup()':
_8x8:42: error: 'FrequencyTimer2' has not been declared
_8x8:44: error: 'FrequencyTimer2' has not been declared
_8x8:46: error: 'FrequencyTimer2' has not been declared