Advertisement
losmi93

STOPERICA

Dec 11th, 2015
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.95 KB | None | 0 0
  1. #include <LiquidCrystal.h>
  2. LiquidCrystal  lcd(8, 9, 4, 5, 6, 7);
  3.  
  4.  
  5.  
  6.  
  7.  
  8. int procitajTaster(int val) {
  9.   if (val > 630 && val < 650)return 1;
  10.   else if (val > 400 && val < 420)return 2;
  11.   else if (val > 90 && val < 110)return 3;
  12.   else if (val > 255 && val < 265)return 4;
  13.   else if ( val < 10 && val > -10)return 5;
  14.   else return 0;
  15.  
  16. }
  17.  
  18. void ispisiDvocifreno(short a, short kolona, short red){
  19. if(a < 10){lcd.setCursor(kolona, red);lcd.print(" ");lcd.print( a);}
  20. else {lcd.setCursor(kolona, red);lcd.print( a);}
  21. }
  22.  
  23. void ispisiVreme(unsigned long time, int red, int kolona){
  24.  
  25.   static unsigned long sati;
  26.   static unsigned long minute;
  27.   static unsigned long sekunde;
  28.   static unsigned long stotinjke;
  29.  
  30.   stotinjke = (time/10) % 100;
  31.   sekunde  =  (time / 1000)%60;
  32.   minute  = (sekunde / 60)%60;
  33.   sati   = minute / 60;
  34.  
  35. ispisiDvocifreno(stotinjke, kolona + 9, red);
  36. lcd.setCursor(kolona + 8, red);
  37. lcd.print(":");
  38. ispisiDvocifreno(sekunde, kolona + 6, red);
  39. lcd.setCursor(kolona + 5, red);
  40. lcd.print(":");
  41. ispisiDvocifreno(minute, kolona + 3, red);
  42. lcd.setCursor(kolona + 2, red);
  43. lcd.print(":");
  44. ispisiDvocifreno(sati, kolona + 0, red);
  45. }
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52. void setup ()
  53. {
  54.   Serial . begin (9600) ;
  55.   lcd.begin(16,2);
  56.   lcd.leftToRight();
  57. }
  58. int countEnable = 1;
  59. int prosloStanje = 0;
  60. int pocetnoKrajnjeVremePauze = 0 ;
  61.  
  62. void loop ()
  63. {
  64.   static unsigned long pocetnoVreme = 0;
  65.   static unsigned long vremeStoperice=0;
  66.  
  67.   static unsigned long PocetnoVremePauze=0;
  68.   static unsigned long KrajnjeVremePauze=0;
  69.   static unsigned long UkupnoVremePauze=0;
  70.   static int val;
  71.  
  72.  
  73.   vremeStoperice = millis() - pocetnoVreme;
  74.   if(countEnable)ispisiVreme(vremeStoperice - UkupnoVremePauze, 0, 0);
  75.  
  76.  
  77.   val = analogRead ( 0 ); // ocitava analogni ulaz pin
  78.  
  79.  
  80.             switch(procitajTaster(val)){
  81.                         case 1:
  82.                         if(prosloStanje == 0){
  83.             if(pocetnoKrajnjeVremePauze == 0){PocetnoVremePauze = vremeStoperice;countEnable = 0;}
  84.                         if(pocetnoKrajnjeVremePauze == 1){UkupnoVremePauze = UkupnoVremePauze +  (vremeStoperice - PocetnoVremePauze);countEnable = 1;}
  85.  
  86.   pocetnoKrajnjeVremePauze++; if(pocetnoKrajnjeVremePauze == 3)pocetnoKrajnjeVremePauze = 0;}
  87.                         prosloStanje = 1;
  88.                         break;
  89.                         case 2:if(prosloStanje == 0)ispisiVreme(vremeStoperice - UkupnoVremePauze, 1, 0);
  90.                         prosloStanje = 2;
  91.                         break;
  92.                         case 3:
  93.                         break;
  94.                         case 4:
  95.                         break;
  96.                         case 5:if(prosloStanje == 0){pocetnoVreme = millis();UkupnoVremePauze = 0;}
  97.                         prosloStanje = 5;
  98.                         break;
  99.                         default:
  100.                         prosloStanje = 0;
  101.             }
  102.  
  103.  
  104.  
  105.  
  106. Serial.println(pocetnoKrajnjeVremePauze);
  107.  
  108.  
  109.  
  110.  
  111.  delay(100);
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement