// matriz de LED 8x8, Numeros del 0 al 9
#include <Wire.h>
#include <RTClib.h>
RTC_DS3231 rtc;
#include "LedControl.h"
#include <MatrizLed.h>
#include <SPI.h>
//#include <MD_Parola.h>
//#include <MD_MAX72xx.h>



LedControl lc=LedControl(11,13,10,4); //1 hasta 8 modulos de 8x8, por ahora 1 mòdulo
           // al mòdulo 1 le corresponde el Indice 0,al 8 le corresponde el indice 7
MatrizLed pantalla;



byte cero[8]= {
  B00000000,
  B00111100,
  B01100110,
  B01101110,
  B01110110,
  B01100110,
  B01100110,
  B00111100
};
byte uno[8]= {
  B00000000,
  B00011000,
  B00011000,
  B00111000,
  B00011000,
  B00011000,
  B00011000,
  B01111110
};
byte dos[8]= {
  B00000000,
  B00111100,
  B01100110,
  B00000110,
  B00001100,
  B00110000,
  B01100000,
  B01111110
};
 byte tres[8]= {
  B00000000,
  B00111100,
  B01100110,
  B00000110,
  B00011100,
  B00000110,
  B01100110,
  B00111100
};
  byte cuatro[8]= {
  B00000000,
  B00001100,
  B00011100,
  B00101100,
  B01001100,
  B01111110,
  B00001100,
  B00001100
};        

 byte cinco[8]= {
  B00000000,
  B01111110,
  B01100000,
  B01111100,
  B00000110,
  B00000110,
  B01100110,
  B00111100
};        
 byte seis[8]= {
  B00000000,
  B00111100,
  B01100110,
  B01100000,
  B01111100,
  B01100110,
  B01100110,
  B00111100
};

byte siete[8]= {
  B00000000,
  B01111110,
  B01100110,
  B00001100,
  B00001100,
  B00011000,
  B00011000,
  B00011000
};
byte ocho[8]= {
  B00000000,
  B00111100,
  B01100110,
  B01100110,
  B00111100,
  B01100110,
  B01100110,
  B00111100
};
byte nueve[8]= {
  B00000000,
  B00111100,
  B01100110,
  B01100110,
  B00111110,
  B00000110,
  B01100110,
  B00111100
};





void setup() {
  // put your setup code here, to run once:
  
  

  // run an initial date process. Should return:
  // hh:mm:ss :
  
pinMode(11,OUTPUT);
//hour = OUTPUT;
//minute = OUTPUT;
pantalla.begin(11,13,10,4);
//pantalla.rotar(true);
lc.shutdown(0,false); //permite habililiat la matriz, apagado,pero al poner false
                       //es todo lo contrario
  lc.setIntensity(0,4); // intensidad 4, maximo 15
  lc.clearDisplay(0); //apagado la matriz 1 en ralidad matriz 0
  
  lc.shutdown(1,false); //permite habililiat la matriz, apagado,pero al poner false
                       //es todo lo contrario
  lc.setIntensity(1,4); // intensidad 4, maximo 15
  lc.clearDisplay(1); //apagado la matriz 1 en ralidad matriz 0
  
  lc.shutdown(2,false); //permite habililiat la matriz, apagado,pero al poner false
                       //es todo lo contrario
  lc.setIntensity(2,4); // intensidad 4, maximo 15
  lc.clearDisplay(2); //apagado la matriz 1 en ralidad matriz 0

lc.shutdown(3,false); //permite habililiat la matriz, apagado,pero al poner false
                       //es todo lo contrario
  lc.setIntensity(3,4); // intensidad 4, maximo 15
  lc.clearDisplay(3); //apagado la matriz 1 en ralidad matriz 0
  rtc.begin();
  rtc.adjust(DateTime(__DATE__,__TIME__));
  
 

  Wire.begin();
 Serial.begin(9600);
  }


void loop() {
  // put your main code here, to run repeatedly:


DateTime fecha = rtc.now();
DateTime  hora = rtc.now();
DateTime  minuto= rtc.now();
Serial.print(fecha.hour());
Serial.print(':');
Serial.print(fecha.minute());
Serial.print(":");
Serial.print(fecha.second());
Serial.println();

//pantalla.borrar();
//pantalla.setLed(0,3,1,true);
//pantalla.setLed(0,2,0,true);
//pantalla.setLed(0,4,2,true);
//pantalla.setLed(0,5,3,true);

pantalla.escribirCaracter('1',0);
pantalla.escribirCaracter('2',8);
pantalla.escribirCaracter('3',16);
pantalla.escribirCaracter('4',24);




delay(1000);
}

void hora(){
for(int h = 0; h <24; h++)
{
  lc.setRow(0,h,hora[h]);
  
}
}
void  minuto (){
for(int m = 0; m <60; m++)
{
  lc.setRow(0,m,minuto[m]);
  
}
}





void fecha_0(){
  for(int i = 0;  i < 8; i++)
  {
    lc.setRow(0,i,cero[i]);
  }
}

void fecha_1(){
  for(int i = 0;  i < 8; i++)
  {
    lc.setRow(0,i,uno[i]);
  }
}
    void fecha_2(){
  for(int i = 0; i < 8; i++)
  
  {
    lc.setRow(0,i,dos[i]);
  }
    }    
void fecha_3(){
  for(int i = 0;  i < 8; i++)
  {
    lc.setRow(0,i,tres[i]);
}
}
void fecha_4(){
  for(int i = 0;  i < 8; i++)
  {
    lc.setRow(0,i,cuatro[i]);
  }

}
void fecha_5(){
for  (int i = 0;  i < 8; i++)  
  {
    lc.setRow(0,i,cinco[i]);
  }
}


void fecha_6(){
  for(int i = 0;i < 8; i++)
  {
    lc.setRow(0,i,seis[i]);
  }


}
void fecha_7(){
  for(int i = 0;  i < 8; i++)
  {
    lc.setRow(0,i,siete[i]);
  }
}

void fecha_8(){
  for(int i = 0;  i < 8; i++)
  {
    lc.setRow(0,i,ocho[i]);
  }
}
void fecha_9(){
  for(int i = 0;  i < 8; i++)
  {
    lc.setRow(0,i,nueve[i]);
  }
}


    


    
GND5VSDASCLSQWRTCDS1307+