Judul posDigital Clock with Display Segment TM1637 ( 4-digit Display Seven Segment )

Author : Ila MulyandiNo comments

Membuat Jam Digital dengan Display 4 Digit Segment TM1637
Library silahkan download disini.
Sourche Code silahkan download disini.
Tutorial menyusul....
Thanks for visit...



Code here :

//▒▒▒▒▒▒▐███████▌Coding ini dibuat Oleh ila mulyandi //▒▒▒▒▒▒▐░▀░▀░▀░▌support by https://www.tokopedia.com/illlectronic //▒▒▒▒▒▒▐▄▄▄▄▄▄▄▌untuk rajendroid.blogspot.com //▄▀▀▀█▒▐░▀▀▄▀▀░▌▒█▀▀▀▄ Mohon tidak menghapus codeMark ini sebagai //▌▌▌▌▐▒▄▌░▄▄▄░▐▄▒▌▐▐▐▐ bentuk apresiasi penggunaan coding ini secara GRATIS // Apabila ada bugs atau kesulitan dalam penggunaan coding ini bisa hubungi creator melalui akun FB // https://www.facebook.com/ilamulyandi atau via comment posting artikel ini rajendroid.blogspot.com // Anda bisa melakukan donasi untuk free coding ini dengan membeli module nya di https://www.tokopedia.com/illlectronic #include "SevenSegmentTM1637.h" // Memanggil library 7Segment TM1637 #include <Button.h> // Memanggil Library Button #define BUTTON_PIN 13 // Button pada pin D13 (low active mode) #define PULLUP false // MengNonaktifkan internal pullup resistor #define INVERT false // Invert false untuk High trigger #define DEBOUNCE_MS 20 // setting millis terpendek untuk acuan trigger button #define LONG_PRESS 1000 // tempo untuk dianggap sebagai HOLD PRESS const byte PIN_CLK = 4; // define CLK pin -> Pin CLK 7segment ke pin D4 const byte PIN_DIO = 5; // define DIO pin -> Pin DIO 7segment ke pin D4 SevenSegmentTM1637 display(PIN_CLK, PIN_DIO); Button myBtn(BUTTON_PIN, PULLUP, INVERT, DEBOUNCE_MS); //Buffer uint32_t targetTime = 0; uint8_t conv2d(const char* p) { uint8_t v = 0; if ('0' <= *p && *p <= '9') v = *p - '0'; return 10 * v + *++p - '0'; } //Mengambil waktu jam dari waktu program diupload (dari hex code compiler) sebagai pengganti RTC uint8_t hh = conv2d(__TIME__), mm = conv2d(__TIME__ + 3), ss = conv2d(__TIME__ + 6); // mengambil data waktu dari jam Compile-Upload uint8_t dd = conv2d(__DATE__ + 4), bb = conv2d(__DATE__), y1 = conv2d(__DATE__ + 7), y2 = conv2d(__DATE__ + 9);; // mengambil data waktu dari jam Compile-Upload uint8_t viewMode = 0, setupMode = 0; //Switch Mode untuk merubah fungsi switch case pada setting button enum {VIEW,TO_SETUPhh, SETUPhh ,TO_SETUPmm, SETUPmm, TO_SETUPdd, SETUPdd, TO_SETUPbb, SETUPbb, TO_SETUPyy, SETUPyy, TO_VIEW}; uint8_t STATE; //▒▒▒▒▒▒▐███████▌Coding ini dibuat Oleh ila mulyandi //▒▒▒▒▒▒▐░▀░▀░▀░▌support by https://www.tokopedia.com/illlectronic //▒▒▒▒▒▒▐▄▄▄▄▄▄▄▌untuk rajendroid.blogspot.com //▄▀▀▀█▒▐░▀▀▄▀▀░▌▒█▀▀▀▄ Mohon tidak menghapus codeMark ini sebagai //▌▌▌▌▐▒▄▌░▄▄▄░▐▄▒▌▐▐▐▐ bentuk apresiasi penggunaan coding ini secara GRATIS // Apabila ada bugs atau kesulitan dalam penggunaan coding ini bisa hubungi creator melalui akun FB // https://www.facebook.com/ilamulyandi atau via comment posting artikel ini rajendroid.blogspot.com // Anda bisa melakukan donasi untuk free coding ini dengan membeli module nya di https://www.tokopedia.com/illlectronic void setup() { // put your setup code here, to run once: //Serial.begin(9600); display.begin(); // initializes 7segment display display.setBacklight(100); // set the brightness to 100 % display.print("DANI"); // display INIT on the display delay(1000); //Convert String nama hari menjadi bilangan uint8_t switch (__DATE__[0]) { case 'J': bb = __DATE__[1] == 'a' ? 1 : bb = __DATE__[2] == 'n' ? 6 : 7; break; case 'F': bb = 2; break; case 'A': bb = __DATE__[2] == 'r' ? 4 : 8; break; case 'M': bb = __DATE__[2] == 'r' ? 3 : 5; break; case 'S': bb = 9; break; case 'O': bb = 10; break; case 'N': bb = 11; break; case 'D': bb = 12; break;} } //▒▒▒▒▒▒▐███████▌Coding ini dibuat Oleh ila mulyandi //▒▒▒▒▒▒▐░▀░▀░▀░▌support by https://www.tokopedia.com/illlectronic //▒▒▒▒▒▒▐▄▄▄▄▄▄▄▌untuk rajendroid.blogspot.com //▄▀▀▀█▒▐░▀▀▄▀▀░▌▒█▀▀▀▄ Mohon tidak menghapus codeMark ini sebagai //▌▌▌▌▐▒▄▌░▄▄▄░▐▄▒▌▐▐▐▐ bentuk apresiasi penggunaan coding ini secara GRATIS // Apabila ada bugs atau kesulitan dalam penggunaan coding ini bisa hubungi creator melalui akun FB // https://www.facebook.com/ilamulyandi atau via comment posting artikel ini rajendroid.blogspot.com // Anda bisa melakukan donasi untuk free coding ini dengan membeli module nya di https://www.tokopedia.com/illlectronic void loop() { // put your main code here, to run repeatedly: if (targetTime < millis()) { targetTime = millis() + 1000; ss++; // Advance second if (ss == 60) { ss = 0; mm++; // Advance minute if (mm > 59) { mm = 0; hh++; // Advance hour if (hh > 23) { hh = 0; } } } } myBtn.read(); //Read the button if (viewMode == 4) { viewMode=0;} if (setupMode == 6) { setupMode=0;} switch (STATE) { //This state watches for short and long presses, switches the LED for //short presses, and moves to the TO_BLINK state for long presses. case VIEW: if (myBtn.wasReleased()) { viewMode = viewMode+1; display.clear();} else if (myBtn.pressedFor(LONG_PRESS)){ STATE = TO_SETUPhh; display.clear(); display.print("SET-"); delay(1000); display.clear();} break; case TO_SETUPhh: if (myBtn.wasReleased()){ display.clear(); STATE = SETUPhh; } break; case SETUPhh: if (myBtn.pressedFor(LONG_PRESS)) { STATE = TO_SETUPmm; display.clear(); } else if (myBtn.wasReleased()) { setupMode=1; hh=hh+1; if(hh==24)hh=0;} break; case TO_SETUPmm: if (myBtn.wasReleased()){ display.clear(); STATE = SETUPmm; } break; case SETUPmm: if (myBtn.pressedFor(LONG_PRESS)) { STATE = TO_SETUPdd; display.clear(); } else if (myBtn.wasReleased()) { setupMode=2; mm=mm+1; if(mm==60)mm=0;} break; case TO_SETUPdd: if (myBtn.wasReleased()){ display.clear(); STATE = SETUPdd; } break; case SETUPdd: if (myBtn.pressedFor(LONG_PRESS)) { STATE = TO_SETUPbb; display.clear(); } else if (myBtn.wasReleased()) { setupMode=3; dd=dd+1; if(dd==32)dd=0;} break; case TO_SETUPbb: if (myBtn.wasReleased()){ display.clear(); STATE = SETUPbb; } break; case SETUPbb: if (myBtn.pressedFor(LONG_PRESS)) { STATE = TO_SETUPyy; display.clear(); } else if (myBtn.wasReleased()) { setupMode=4; bb=bb+1; if(bb==13)bb=0;} break; case TO_SETUPyy: if (myBtn.wasReleased()){ display.clear(); display.clear(); STATE = SETUPyy; } break; case SETUPyy: if (myBtn.pressedFor(LONG_PRESS)) { STATE = TO_VIEW; display.clear(); } else if (myBtn.wasReleased()) { setupMode=5; y2=y2+1; if(y2==31)y2=10;} break; case TO_VIEW: if (myBtn.wasReleased()){ STATE = VIEW; setupMode = 0; display.clear(); display.print("DONE"); delay(1000); display.clear();} break; } //▒▒▒▒▒▒▐███████▌Coding ini dibuat Oleh ila mulyandi //▒▒▒▒▒▒▐░▀░▀░▀░▌support by https://www.tokopedia.com/illlectronic //▒▒▒▒▒▒▐▄▄▄▄▄▄▄▌untuk rajendroid.blogspot.com //▄▀▀▀█▒▐░▀▀▄▀▀░▌▒█▀▀▀▄ Mohon tidak menghapus codeMark ini sebagai //▌▌▌▌▐▒▄▌░▄▄▄░▐▄▒▌▐▐▐▐ bentuk apresiasi penggunaan coding ini secara GRATIS // Apabila ada bugs atau kesulitan dalam penggunaan coding ini bisa hubungi creator melalui akun FB // https://www.facebook.com/ilamulyandi atau via comment posting artikel ini rajendroid.blogspot.com // Anda bisa melakukan donasi untuk free coding ini dengan membeli module nya di https://www.tokopedia.com/illlectronic if (viewMode == 0 && setupMode == 0 ){ if(hh<10){ display.setCursor(0,0); display.print("0"); display.setCursor(0,1); display.print(hh);} if(hh>9){ display.setCursor(0,0); display.print(hh);} if(mm<10){ display.setCursor(0,2); display.print("0"); display.setCursor(0,3); display.print(mm);} if(mm>9){ display.setCursor(0,2); display.print(mm);} if(ss%2==0) {display.setColonOn(1);} else{display.setColonOn(0);} } if (viewMode == 1 && setupMode == 0 ){ if(ss<10){ display.setCursor(0,2); display.print("0"); display.setCursor(0,3); display.print(ss);} if(ss>9){ display.setCursor(0,2); display.print(ss);} display.setColonOn(1); } if (viewMode == 2 && setupMode == 0 ){ if(dd<10){ display.setCursor(0,1); display.print(dd);} if(dd>9){ display.setCursor(0,0); display.print(dd);} if(bb<10){ display.setCursor(0,3); display.print(bb);} if(bb>9){ display.setCursor(0,2); display.print(bb);} display.setColonOn(0); } if (viewMode == 3 && setupMode == 0 ){ display.setCursor(0,0); display.print(y1); display.setCursor(0,2); display.print(y2); display.setColonOn(0);} if (setupMode==1){ if(hh>9){ display.setCursor(0,0); display.print(hh); } if(hh<10){ display.setCursor(0,0); display.print("0"); display.setCursor(0,1); display.print(hh); } delay(100); display.setCursor(0,0); display.print(" "); delay(100);} if (setupMode==2){ if(mm>9){ display.setCursor(0,2); display.print(mm);} if(mm<10){ display.setCursor(0,2); display.print("0"); display.setCursor(0,3); display.print(mm); } display.setCursor(0,0); display.print(hh); delay(100); display.setCursor(0,2); display.print(" "); delay(100);} if (setupMode==3){ display.setColonOn (0); display.setCursor(0,0); display.print(dd); display.setCursor(0,2); display.print(bb); delay(100); display.setCursor(0,0); display.print(" "); delay(100);} if (setupMode==4){ display.setColonOn (0); display.setCursor(0,2); display.print(bb); display.setCursor(0,0); display.print(dd); delay(100); display.setCursor(0,2); display.print(" "); delay(100);} if (setupMode==5){ display.setCursor(0,0); display.print(y1); display.setCursor(0,2); display.print(y2); delay(100); display.setCursor(0,0); display.print(" "); delay(100);} } 


Posted On : Sunday, February 5, 2017Time : 3:10 PM
SHARE TO :
| | Template Created By : Rajendroid | CopyRigt By : ARDUINO | |