Hirdetés

Új hozzászólás Aktív témák

  • Scooter86101

    tag

    Sziasztok lenne egy ilyen programom amivel kapcsolatban lenne egy kérdésem, sikerül az időt beállítani az első négy gombbal , es a legutolsóval el is indul a visszaszámlálás, viszont óraként szeretném használni, és ahogy a visszaszámlálás történik a perc ahogy nullára ér nem úgy megy tovább hogy pl 59 .. hanem 99 .. pl be van állítva 01:20 ra akkor mikor odaér hogy 01:01 a következő lépése az hogy 00:99 és én azt szeretnék hogy 0:59 legyen és sehogyan nem jövök rá hol van ez a kódban :( melyik ez a rész :(

    #include <TM1638.h>
    TM1638 module(9, 8, 7);
    byte display[8];
    char cadena[20];
    int alarma,contador,time1;
    #define MILED 13
    #define PIN_SOUND 12
    //#define RETRASO 597
    #define RETRASO 97
    char fcontador;
    void setup() 
    {
      pinMode(MILED, OUTPUT);
      pinMode(PIN_SOUND, OUTPUT);
      digitalWrite(MILED, LOW);
      module.setupDisplay(1,7);
      module.setDisplayToString("L.u.L.u.",0,0);
      delay(1500);
      
      module.setDisplayToString("--------",0,0);
      display[2]=0; 
      alarma=60;
    }
    void loop() 
    {
      byte keys;
      int z;
      
      keys = module.getButtons();
      
      switch(keys)
      {
       case 1:
          if(fcontador==0)
            {display[0]++; if(display[0]>2) display[0]=0;}
       break; 
       case 2:
          if(fcontador==0)
            {display[1]++; if(display[1]>9) display[1]=0;}
       break; 
       case 4:
          if(fcontador==0)
            {display[2]++; if(display[2]>5) display[2]=0;}
       break; 
       case 8:
          if(fcontador==0)
            {display[3]++; if(display[3]>9) display[3]=0;}
       break; 
       
       case 16:
         fcontador=0;
         contador=alarma;
         digitalWrite(MILED, LOW);
         module.setLEDs(16);
       break; 
       
       case 128:
         time1=RETRASO;
         fcontador=1;
         contador=alarma;
         digitalWrite(MILED, LOW);
         module.setLEDs(128);
       break; 
        
      }
      if(fcontador==0 && keys>0)
        {
         alarma=display[0]*1000+display[1]*100+display[2]*10+display[3];
         sprintf(cadena,"%04d%04d",alarma,contador);
         module.setDisplayToString(cadena,0,0);
         delay(200);
        }
        
        time1--;
        // {if(display[2]>5) display[2]=0;}
            
        if(fcontador==1 && time1<=0)
          {
            module.setLEDs(0);
            time1=RETRASO;
            contador--;
            
           sprintf(cadena,"%04d%04d",alarma,contador);
            module.setDisplayToString(cadena,0,0);
            
            if(contador<1)
              {
                fcontador=0;
                for(z=0;z<10;z++)
                  {
                    sprintf(cadena,"%04d0000",alarma);
                    module.setDisplayToString(cadena,0,0);
                    delay(500);
                    sprintf(cadena,"%04d    ",alarma);
                    module.setDisplayToString(cadena,0,0);
                    delay(500);                
                  }
                 sprintf(cadena,"%04d----",alarma);
                 module.setDisplayToString(cadena,0,0);
                 digitalWrite(MILED,HIGH);             
                 for(z=0;z<300;z++)
                   {
                     digitalWrite(PIN_SOUND, HIGH);
                     delay(10);
                     digitalWrite(PIN_SOUND, LOW);
                     delay(10); 
                   }          
              }
          }
        
      delay(1);
    }

    Köszönöm előre is ...
    itt van egy videó is róla ...


    [link]

Új hozzászólás Aktív témák