Stap 4: Stap "laatste", de code.
#include < LedControl.h >
#include < Wire.h >
Const int DS1307 = 0x68;
A5 = SCL, A4 = SDA
const char * dagen [] = {"Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"};
const char * maanden [] = {'Januari', 'Februari', 'Maart', "April", "May", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"};
byte tweede = 0; byte minuut = 0; byte uur = 0; byte weekdag = 0;
byte monthday = 0;
byte maand = 0;
byte jaar = 0;
byte lastMinute = 0;
byte lastSecond = 0;
int Led = 13;
byte nul = B0000000;
een byte = B01000000;
byte twee = B01100000;
byte drie = B01110000;
byte vier = B01111000;
byte vijf = B01111100;
byte zes = B01111110;
byte zeven = B01111111;
byte acht = B11111111;
byte negen = B01000000;
byte tien = B01100000;
byte elf = B01110000; Ik
NT een = 0; int b = 0; int c = 0;
int vijfMinTwee = 0;
int uitgang = laag;
/ * pin 12 is aangesloten op de DataIn pin 11 is aangesloten de CLK pin 10 is aangesloten te laden * /
LedControl lc = LedControl(12,11,10,1);
unsigned long delaytime = 100;
VOID Setup {}
Wire.begin(); Serial.begin(9600);
pinMode (Led, uitvoer);
LC.shutdown(0,false);
/ * De helderheid instellen met een middellange waarden * /
lc.setIntensity(0,8);
/ * en schakelt u het display * /
lc.clearDisplay(0);
}
void loop {}
readTime();
digitalWrite(Led,uitgang);
Als (tweede! = lastSecond) {}
Als (uitgang == LOW) uitgang = hoog;
anders uitgang = laag;
digitalWrite (Led, uitgang);
lastSecond = tweede;
}
Als (minuut! = lastMinute) {printTime(); last minute = minuut;
}
}
byte bcdToDec(byte val) {}
retourneren ((val/16 * 10) + (val % 16));
}
ongeldig printTime() {}
char buffer [3];
lange minuten = minuut;
lange uren = uur;
int vijfmin = minuten /5;
int eenminuut minuten =-(vijfmin * 5);
int vijfuren = uren/5;
int eenuren uren - = (vijfuren * 5);
een = vijfmin;
Digitaal();
vijfmin = b;
vijfMinTwee = c;
een = eenminuut;
Digitaal();
eenminuut = b;
een = vijfuren;
Digitaal();
vijfuren = b;
een = eenuren;
Digitaal();
eenuren = b;
lc.setRow(0,4,vijfuren);
lc.setRow(0,3,eenuren);
lc.setRow(0,1,vijfmin);
lc.setRow(0,2,vijfMinTwee);
lc.setRow(0,0,eenminuut);
}
ongeldig readTime() {}
Wire.beginTransmission(DS1307);
Wire.write(byte(0));
Wire.endTransmission();
Wire.requestFrom (DS1307, 7);
tweede = bcdToDec(Wire.read());
minuten = bcdToDec(Wire.read());
uur = bcdToDec(Wire.read());
weekdag = bcdToDec(Wire.read());
MonthDay = bcdToDec(Wire.read());
maand = bcdToDec(Wire.read());
jaar = bcdToDec(Wire.read()); }
ongeldig digitaal() {}
schakelaar (a) {}
Case 0:
b = nul; c = nul;
breken;
Case 1:
b = een; c = nul;
breken;
Case 2:
b = twee; c = nul;
breken;
Case 3:
b = drie; c = nul;
breken;
Case 4:
b = vier; c = nul;
breken;
Case 5:
b = vijf; c = nul;
breken;
Case 6:
b = zes; c = nul;
breken;
Case 7:
b = zeven; c = nul;
breken;
zaak 8:
b = acht; c = nul;
breken;
Case 9:
b = acht; c = negen;
breken;
zaak 10:
b = acht; c = tien;
breken;
zaak 11:
b = acht; c = elf;
breken;
}
}
Vrij eenvoudig, denk ik.
Een ander voordeel van deze schets: nu leer je hoe te tellen in het Nederlands... Van 0 tot en met 11... ;-)
Hoop dat u geniet van dit!
Marc.