This is full sketch without ledmatrix def ... (The message exceeds the maximum allowed length (9500 characters).)
#include <Time.h>
#include <DS1307RTC.h>
#include <Wire.h>
#define DS1307_ADDRESS 0x68
#define Asek 13
#define Bsek 12
#define Csek 11
#define Dsek 10
#define Esek 9
#define Fsek 8
#define Gsek 7
#define Hsek 6
#define Isek 5
#define Amin 37
#define Bmin 39
#define Cmin 41
#define Dmin 43
#define Emin 45
#define Fmin 47
#define Gmin 49
#define Hmin 51
#define Imin 53
#define Agodz 36
#define Bgodz 38
#define Cgodz 40
#define Dgodz 42
#define Egodz 44
#define Fgodz 46
#define Ggodz 48
#define Hgodz 50
#define Igodz 52
#define PIN_CONFIG 0
#define PIN_STATE 1
#define LED_COUNT 60
byte zero = 0x00;
const int buttonPin = 22;
int buttonState = 0;
int minuta=0;
int godzina=0;
int matrix[LED_COUNT][2][9] = {
(.......i have to cut it becouse error message "The message exceeds the maximum allowed length (9500 characters)."....)
void turnOnsek( int led ) {
pinMode( Asek, matrix[led][PIN_CONFIG][0] );
pinMode( Bsek, matrix[led][PIN_CONFIG][1] );
pinMode( Csek, matrix[led][PIN_CONFIG][2] );
pinMode( Dsek, matrix[led][PIN_CONFIG][3] );
pinMode( Esek, matrix[led][PIN_CONFIG][4] );
pinMode( Fsek, matrix[led][PIN_CONFIG][5] );
pinMode( Gsek, matrix[led][PIN_CONFIG][6] );
pinMode( Hsek, matrix[led][PIN_CONFIG][7] );
pinMode( Isek, matrix[led][PIN_CONFIG][8] );
digitalWrite( Asek, matrix[led][PIN_STATE][0] );
digitalWrite( Bsek, matrix[led][PIN_STATE][1] );
digitalWrite( Csek, matrix[led][PIN_STATE][2] );
digitalWrite( Dsek, matrix[led][PIN_STATE][3] );
digitalWrite( Esek, matrix[led][PIN_STATE][4] );
digitalWrite( Fsek, matrix[led][PIN_STATE][5] );
digitalWrite( Gsek, matrix[led][PIN_STATE][6] );
digitalWrite( Hsek, matrix[led][PIN_STATE][7] );
digitalWrite( Isek, matrix[led][PIN_STATE][8] );
}
void turnOnmin (int ledm) {
pinMode( Amin, matrix[ledm][PIN_CONFIG][0] );
pinMode( Bmin, matrix[ledm][PIN_CONFIG][1] );
pinMode( Cmin, matrix[ledm][PIN_CONFIG][2] );
pinMode( Dmin, matrix[ledm][PIN_CONFIG][3] );
pinMode( Emin, matrix[ledm][PIN_CONFIG][4] );
pinMode( Fmin, matrix[ledm][PIN_CONFIG][5] );
pinMode( Gmin, matrix[ledm][PIN_CONFIG][6] );
pinMode( Hmin, matrix[ledm][PIN_CONFIG][7] );
pinMode( Imin, matrix[ledm][PIN_CONFIG][8] );
digitalWrite( Amin, matrix[ledm][PIN_STATE][0] );
digitalWrite( Bmin, matrix[ledm][PIN_STATE][1] );
digitalWrite( Cmin, matrix[ledm][PIN_STATE][2] );
digitalWrite( Dmin, matrix[ledm][PIN_STATE][3] );
digitalWrite( Emin, matrix[ledm][PIN_STATE][4] );
digitalWrite( Fmin, matrix[ledm][PIN_STATE][5] );
digitalWrite( Gmin, matrix[ledm][PIN_STATE][6] );
digitalWrite( Hmin, matrix[ledm][PIN_STATE][7] );
digitalWrite( Imin, matrix[ledm][PIN_STATE][8] );
}
void turnOngodz (int ledg) {
pinMode( Agodz, matrix[ledg][PIN_CONFIG][0] );
pinMode( Bgodz, matrix[ledg][PIN_CONFIG][1] );
pinMode( Cgodz, matrix[ledg][PIN_CONFIG][2] );
pinMode( Dgodz, matrix[ledg][PIN_CONFIG][3] );
pinMode( Egodz, matrix[ledg][PIN_CONFIG][4] );
pinMode( Fgodz, matrix[ledg][PIN_CONFIG][5] );
pinMode( Ggodz, matrix[ledg][PIN_CONFIG][6] );
pinMode( Hgodz, matrix[ledg][PIN_CONFIG][7] );
pinMode( Igodz, matrix[ledg][PIN_CONFIG][8] );
digitalWrite( Agodz, matrix[ledg][PIN_STATE][0] );
digitalWrite( Bgodz, matrix[ledg][PIN_STATE][1] );
digitalWrite( Cgodz, matrix[ledg][PIN_STATE][2] );
digitalWrite( Dgodz, matrix[ledg][PIN_STATE][3] );
digitalWrite( Egodz, matrix[ledg][PIN_STATE][4] );
digitalWrite( Fgodz, matrix[ledg][PIN_STATE][5] );
digitalWrite( Ggodz, matrix[ledg][PIN_STATE][6] );
digitalWrite( Hgodz, matrix[ledg][PIN_STATE][7] );
digitalWrite( Igodz, matrix[ledg][PIN_STATE][8] );
}
void setup() {
pinMode(buttonPin, INPUT);
Wire.begin();
Serial.begin(9600);
while (!Serial) ; // wait for serial
delay(200);
}
byte bcdToDec(byte val) {
// Convert binary coded decimal to normal decimal numbers
return ( (val/16*10) + (val%16) );
}
byte decToBcd(byte val){
// Convert normal decimal numbers to binary coded decimal
return ( (val/10*16) + (val%10) );
}
void loop() {
buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed.
if (buttonState == HIGH) { // if it is, the buttonState is HIGH:
setTime();
}
else { // display time
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(zero);
Wire.endTransmission();
Wire.requestFrom(DS1307_ADDRESS, 7);
int second = bcdToDec(Wire.read());
int minute = bcdToDec(Wire.read());
int hour = bcdToDec(Wire.read());
int weekDay = bcdToDec(Wire.read());
int monthDay = bcdToDec(Wire.read());
int month = bcdToDec(Wire.read());
int year = bcdToDec(Wire.read());
turnOnsek(second); //turn on one of the 60 leds (second hand)
turnOnmin(minute); //turn on one of the 60 leds (minute hand)
if (minute<12) {turnOngodz(hour);} //turn on one of the 60 leds (hour hand)
else if (minute>11 && minute<24) {turnOngodz(hour+1);}
else if (minute>23 && minute<36) {turnOngodz(hour+2);}
else if (minute>35 && minute<48) {turnOngodz(hour+3);}
else if (minute>47) {turnOngodz(hour+4);}
}
}
void setTime() {
byte second = 0; //0-59 sets seconds to zero
byte minute = bcdToDec(Wire.read()); //0-59 dosent change minute
byte hour = bcdToDec(Wire.read()); //0-11 dosent change hours
byte weekDay = 2; //1-7 i dont use those
byte monthDay = 24; //1-31
byte month = 2; //1-12
byte year = 14; //0-99
/* i have tried like this
while (buttonState != LOW) {
minute=minute+1;
if (minute > 59) minute = 0;
turnOnmin(minute);
delay(750);
*/
/* and like this
buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed.
if (buttonState == HIGH) { // if it is, the buttonState is HIGH:
// ustawianie zegara
Wire.write(decToBcd(minute+1));
turnOnsek(second);
turnOnmin(minute);
if (minute<12) {turnOngodz(hour);}
else if (minute>11 && minute<24) {turnOngodz(hour+1);}
else if (minute>23 && minute<36) {turnOngodz(hour+2);}
else if (minute>35 && minute<48) {turnOngodz(hour+3);}
else if (minute>47) {turnOngodz(hour+4);}
wait(500);
}
else {
turnOnsek(second);
turnOnmin(minute);
if (minute<12) {turnOngodz(hour);}
else if (minute>11 && minute<24) {turnOngodz(hour+1);}
else if (minute>23 && minute<36) {turnOngodz(hour+2);}
else if (minute>35 && minute<48) {turnOngodz(hour+3);}
else if (minute>47) {turnOngodz(hour+4);}
}
*/
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(zero); //stop Oscillator
Wire.write(decToBcd(second));
Wire.write(decToBcd(minute));
Wire.write(decToBcd(hour));
Wire.write(decToBcd(weekDay));
Wire.write(decToBcd(monthDay));
Wire.write(decToBcd(month));
Wire.write(decToBcd(year));
Wire.write(zero); //start
Wire.endTransmission();
}