Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <TM1638.h>
- #include <InvertedTM1638.h>
- #define NO_MODULES 1
- byte counter = 0;
- byte mode = 0;
- long runningSecs = -1;
- byte hours, minutes, seconds;
- // define a regular module and a inverted module
- TM1638 module1(8, 9, 10);
- TM1638* modules[NO_MODULES] = {
- &module1
- };
- void setup() {
- //startTime = millis();
- modules[0]->setupDisplay(true, 7);
- modules[0]->setDisplayToString(" ");
- modules[0]->setLEDs(0);
- }
- void loop() {
- byte buttons = modules[0]->getButtons();
- if (buttons != 0) {
- mode = buttons >> 1;
- switch(mode) {
- case 0: break;
- case 1: break;
- case 2: break;
- case 4: break;
- case 8: break;
- case 16: break;
- case 32: break;
- case 64: break;
- }
- }
- counter++;
- if (counter==9) { counter = 1; }
- switch(counter) {
- case 1:
- runningSecs = runningSecs + 1;
- hours = runningSecs / 3600;
- runningSecs = runningSecs % 3600;
- minutes = runningSecs / 60;
- seconds = runningSecs % 60;
- char s[8];
- sprintf(s, "%02d %02d %02d", hours, minutes, seconds);
- modules[0]->setDisplayToString(s);
- modules[0]->setLEDs(1);
- break;
- case 2: modules[0]->setLEDs(2); break;
- case 3: modules[0]->setLEDs(4); break;
- case 4: modules[0]->setLEDs(8); break;
- case 5: modules[0]->setLEDs(16); break;
- case 6: modules[0]->setLEDs(32); break;
- case 7: modules[0]->setLEDs(64); break;
- case 8: modules[0]->setLEDs(128); break;
- }
- delay(125);
- }
Advertisement
Add Comment
Please, Sign In to add comment