Advertisement
JingleBZH

zutils

Apr 14th, 2019
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. void drawPorcent(byte porcent){
  2.   //TODO: Optimize this code
  3.   int aDibujar=(8*porcent)/10;
  4.   lcd.setCursor(0,1);
  5.  
  6.   if(aDibujar<5)
  7.   {
  8.     switch(aDibujar){
  9.     case 0:
  10.       break;
  11.     case 1:
  12.       lcd.write((uint8_t)0);
  13.       break;
  14.     case 2:
  15.       lcd.write(1);
  16.       break;
  17.     case 3:
  18.       lcd.write(2);
  19.       break;
  20.     case 4:
  21.       lcd.write(3);
  22.       break;
  23.     }
  24.   }
  25.   while(aDibujar>=5){
  26.     if(aDibujar>=5)
  27.     {
  28.       lcd.write(4);
  29.       aDibujar-=5;
  30.     }
  31.     if(aDibujar<5)
  32.     {
  33.       switch(aDibujar){
  34.       case 0:
  35.         break;
  36.       case 1:
  37.         lcd.write((uint8_t)0);
  38.         break;
  39.       case 2:
  40.         lcd.write(1);
  41.         break;
  42.       case 3:
  43.         lcd.write(2);
  44.         break;
  45.       case 4:
  46.         lcd.write(3);
  47.         break;
  48.       }
  49.     }
  50.   }
  51. }
  52. void cls(){
  53.   lcd.clear();
  54.   lcd.setCursor(0,0);
  55. }
  56.  
  57. void afficheDigits(int temps) {
  58.  
  59.   int digit12; // valeur des deux premiers digits
  60.   int digit34; // valeur des deux derniers digits
  61.  
  62.     digit34 = temps % 60;              // on calcule soit les minutes soit les secondes
  63.     digit12 = (temps - digit34) / 60;  // on calcule soit les heures soit les minutes
  64.  
  65.     display.showNumberDecEx((digit12 * 100) + digit34, 0x80 >> 1, 1, 4, 0); // on affiche
  66.  
  67. }
  68. void printTime(unsigned long minutos, unsigned long aTiempo){
  69.    
  70.     Serial.print("minutos = ");
  71.     Serial.println(minutos);
  72.     Serial.print("aTiempo = ");
  73.     Serial.println(aTiempo);
  74.    
  75.  
  76.   timeCalcVar=(minutos-aTiempo/60000);
  77.   //Hours
  78.  
  79.   if(timeCalcVar/60<1 && refresh==0){ // si temps < 60 et refresh = 0
  80.       lcd.clear();
  81.       refresh=1;
  82.       delay(100);
  83.       lcd.setCursor(3,1);
  84.   }
  85.      
  86.   }
  87.   if(timeCalcVar/60>=1){  // si temps >= 60
  88.      
  89.     // Mettre ici l'appel de afficheDigit en HH:MM
  90.    
  91.     if(timeCalcVar/60<10) // si temps < 600
  92.   {
  93.    
  94.     lcd.setCursor(2,1);
  95.     lcd.print("0");
  96.     lcd.print(timeCalcVar/60); // affiche temps/60
  97.   }
  98.   else
  99.   {
  100.     lcd.print(timeCalcVar/60);
  101.   }
  102.  
  103.   lcd.print(":");
  104.  
  105.   }
  106.   //minutes
  107.   if((timeCalcVar%60)<10)
  108.   {
  109.     lcd.print("0");
  110.     lcd.print(timeCalcVar%60);
  111.   }
  112.   else
  113.   {
  114.     lcd.print(timeCalcVar%60);
  115.   }
  116.   lcd.print(":");
  117.   //seconds
  118.   timeCalcVar=(aTiempo/1000);
  119.   if((59-(timeCalcVar%60))<10)
  120.   {
  121.     lcd.print("0");
  122.     lcd.print(59-(timeCalcVar%60));
  123.   }
  124.   else
  125.   {
  126.     lcd.print(59-(timeCalcVar%60));
  127.   }
  128.   lcd.print(":");
  129.   //this not mach with real time, is just a effect, it says 999 because millis%1000 sometimes give 0 LOL
  130.   lcd.print(999-(millis()%1000));
  131. }
  132.  
  133. void printTimeDom(unsigned long aTiempo, boolean showMillis){
  134.   //minutes
  135.   if((aTiempo/60000)<10)
  136.   {
  137.     lcd.print("0");
  138.     lcd.print(aTiempo/60000);
  139.   }
  140.   else
  141.   {
  142.     lcd.print(aTiempo/60000);
  143.   }
  144.   lcd.print(":");
  145.   //seconds
  146.   if(((aTiempo/1000)%60)<10)
  147.   {
  148.     lcd.print("0");
  149.     lcd.print((aTiempo/1000)%60);
  150.   }
  151.   else
  152.   {
  153.     lcd.print((aTiempo/1000)%60);
  154.   }
  155.   if(showMillis){
  156.     lcd.print(":");
  157.     //this not mach with real time, is just a effect, it says 999 because millis%1000 sometimes give 0 LOL
  158.       lcd.print(999-millis()%1000);
  159.  
  160.   }
  161. }
  162.  
  163.  
  164. void startGameCount(){
  165.   cls();
  166.   lcd.setCursor(1,0);
  167.   lcd.print("Ready to Begin");
  168.   lcd.setCursor(0,1);
  169.   lcd.print("Push ANY Button");
  170.   keypad.waitForKey();//if you press a button game start
  171.  
  172.   cls();
  173.   lcd.setCursor(1,0);
  174.   lcd.print("Starting Game");
  175.   for(int i = 5; i > 0 ; i--){ // START COUNT GAME INIT
  176.     lcd.setCursor(5,1);
  177.     tone(tonepin,2000,100);
  178.     lcd.print("IN ");
  179.     lcd.print(i);
  180.     delay(1000);
  181.   }
  182.   cls();
  183. }
  184.  
  185. void checkArrows(byte i,byte maxx ){
  186.  
  187.   if(i==0){
  188.     lcd.setCursor(15,1);
  189.     lcd.write(6);
  190.   }
  191.   if(i==maxx){  
  192.     lcd.setCursor(15,0);
  193.     lcd.write(5);
  194.   }
  195.   if(i>0 && i<maxx){
  196.     lcd.setCursor(15,1);
  197.     lcd.write(6);
  198.     lcd.setCursor(15,0);
  199.     lcd.write(5);  
  200.   }
  201. }
  202.  
  203. void activateMosfet(){
  204.  
  205.   //lcd.print("Mosfet ON!");
  206.   digitalWrite(mosfet, HIGH);   // turn the LED on (HIGH is the voltage level)
  207.   delay(MOSFET_TIME);   // wait for 4 second
  208.   //lcd.print("Mosfet OFF!");
  209.   digitalWrite(mosfet, LOW);
  210.  
  211. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement