Facebook
From Silly Gibbon, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 209
  1. #include <Wire.h>
  2. #include <LiquidCrystal_I2C.h>
  3. #include <Keypad.h>
  4.  
  5. LiquidCrystal_I2C lcd(0x27, 16, 2);
  6. int pompa=10;//deklaracje
  7.  int ele1=2;
  8.  int ele2=4;
  9.  int ele3=7;
  10.  int ele4=8;
  11.  
  12.  int blokada=1;
  13.  int blokada_up=1;
  14.  
  15. int redPin = 3; // led
  16. int greenPin = 5; // led
  17. int bluePin = 6; // led
  18.  
  19.  
  20.  long h = 3600000; // 3600000 milliseconds in an hour
  21. long m = 60000; // 60000 milliseconds in a minute
  22. long s=  1000; // 1000 milliseconds in a second
  23. long czas = 0;
  24.  
  25.  
  26. unsigned long zapamietany_czas = 0;
  27. unsigned long aktualny_czas =0;
  28. const unsigned long Interwal = 1000;
  29.      
  30.  
  31. unsigned long previousTime = 0;
  32. const byte ROWS = 4; //four rows
  33. const byte COLS = 3; //three columns
  34. char keys[ROWS][COLS] = {
  35.   {'1','2','3'},
  36.   {'4','5','6'},
  37.  
  38. };
  39.  
  40. byte rowPins[ROWS] = {11, 12}; //connect to the row pinouts of the keypad
  41. byte colPins[COLS] = {13,A3,A2}; //connect to the column pinouts of the keypad
  42.  
  43. Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
  44. char key ;
  45.  
  46.  
  47.  int stoper(int Min, int Sec){
  48.   int m=Min;
  49.   int s=Sec;
  50.   char key;
  51. unsigned long zapamietany_czast=millis();
  52. unsigned long aktualny_czast=millis();
  53.  
  54.   while(1){
  55.    
  56.       if(m==0 && s== 0){
  57.   lcd.setCursor(0,1);
  58.    lcd.print(0);
  59.    lcd.setCursor(1,1);
  60.    lcd.print(0);
  61.    lcd.setCursor(2,1);
  62.    lcd.print(":");
  63.    lcd.setCursor(3,1);
  64.    lcd.print(0);
  65.    lcd.setCursor(4,1);
  66.    lcd.print(0);
  67.     break;     }
  68.  
  69.     aktualny_czast=millis();
  70.    lcd.setCursor(0,1);
  71.    lcd.print(m/10);
  72.    lcd.setCursor(1,1);
  73.    lcd.print(m%10);
  74.    lcd.setCursor(2,1);
  75.    lcd.print(":");
  76.    lcd.setCursor(3,1);
  77.    lcd.print(s/10);
  78.    lcd.setCursor(4,1);
  79.    lcd.print(s%10);
  80.    
  81.     if(aktualny_czast-zapamietany_czast>=1000){
  82.     s--;
  83.       zapamietany_czast=aktualny_czast;}
  84.    
  85.     if(s==-1 && m>0){
  86.       m--;
  87.       s=59;}
  88.    
  89.      
  90.       key = keypad.getKey();
  91. if(key=='1' || key=='2' || key=='3' || key=='4' || key=='5'){
  92.    lcd.setCursor(0,1);
  93.    lcd.print(0);
  94.    lcd.setCursor(1,1);
  95.    lcd.print(0);
  96.    lcd.setCursor(2,1);
  97.    lcd.print(":");
  98.    lcd.setCursor(3,1);
  99.    lcd.print(0);
  100.    lcd.setCursor(4,1);
  101.    lcd.print(0);
  102.    return 5;
  103. break;
  104.  
  105.   }
  106. }
  107.  }
  108.  
  109.  int stoper_up(){
  110.   int m=0;
  111.   int s=0;
  112.   char key;
  113. unsigned long zapamietany_czast=millis();
  114. unsigned long aktualny_czast=millis();
  115.  
  116.   while(1){
  117.    
  118.     aktualny_czast=millis();
  119.    lcd.setCursor(0,1);
  120.    lcd.print(m/10);
  121.    lcd.setCursor(1,1);
  122.    lcd.print(m%10);
  123.    lcd.setCursor(2,1);
  124.    lcd.print(":");
  125.    lcd.setCursor(3,1);
  126.    lcd.print(s/10);
  127.    lcd.setCursor(4,1);
  128.    lcd.print(s%10);
  129.    
  130.     if(aktualny_czast-zapamietany_czast>=1000){
  131.     s++;
  132.       zapamietany_czast=aktualny_czast;}
  133.    
  134.     if(s>59){
  135.       m++;
  136.       s=0;}
  137.    
  138.       key = keypad.getKey();
  139. if(key=='6' ){
  140.    lcd.setCursor(0,1);
  141.    lcd.print(0);
  142.    lcd.setCursor(1,1);
  143.    lcd.print(0);
  144.    lcd.setCursor(2,1);
  145.    lcd.print(":");
  146.    lcd.setCursor(3,1);
  147.    lcd.print(0);
  148.    lcd.setCursor(4,1);
  149.    lcd.print(0);
  150.    return 5;
  151. break;
  152.  
  153.   }
  154. }
  155.  }
  156.  
  157. void setColor(int red, int green, int blue)
  158. {
  159. #ifdef COMMON_ANODE
  160.   red = 255 - red;
  161.   green = 255 - green;
  162.   blue = 255 - blue;
  163. #endif
  164.   analogWrite(redPin, red);
  165.   analogWrite(greenPin, green);
  166.   analogWrite(bluePin, blue);
  167. }
  168. void setup() {
  169.   pinMode(2, OUTPUT); //elektro zawór 1
  170.   pinMode(4, OUTPUT); //elektro zawór 2
  171.   pinMode(7, OUTPUT); //elektro zawór 3
  172.   pinMode(8, OUTPUT); //elektro zawór 4
  173.   pinMode(10, OUTPUT); //pompa
  174.   pinMode(redPin, OUTPUT);
  175.   pinMode(greenPin, OUTPUT);
  176.   pinMode(bluePin, OUTPUT);
  177.  
  178.  
  179.   digitalWrite(pompa, HIGH); //Wyłączenie wszystkiego
  180.   digitalWrite(ele1, HIGH);
  181.   digitalWrite(ele2, HIGH);
  182.   digitalWrite(ele3, HIGH);
  183.   digitalWrite(ele4, HIGH);
  184.    lcd.begin();
  185.     lcd.backlight();
  186.   lcd.print("Czas:");
  187.  
  188. }
  189.  
  190. void loop() {
  191.  
  192.  
  193. if(blokada==1){
  194.   blokada_up=1;
  195.     while(1){
  196.  
  197.     digitalWrite(pompa, HIGH);
  198.     digitalWrite(ele1, HIGH);
  199.     digitalWrite(ele2, HIGH);
  200.     digitalWrite(ele3, HIGH);
  201.     digitalWrite(ele4, HIGH);
  202.     setColor(0, 255, 0);
  203.     blokada=stoper(0,15);
  204.  if( blokada==5){
  205.   break;}
  206.      
  207.    
  208.    
  209.     digitalWrite(pompa, LOW);
  210.     digitalWrite(ele1, LOW);
  211.     setColor(0, 0, 255);
  212.     blokada=stoper(0,10);
  213.  if( blokada==5){
  214.   break;}
  215.      
  216.  
  217.    digitalWrite(pompa, HIGH);
  218.     digitalWrite(ele1, HIGH);
  219.     setColor(0, 255, 0);
  220.        blokada=stoper(0,15);
  221.  if( blokada==5){
  222.   break;}
  223.      
  224.  
  225.   digitalWrite(pompa, LOW);
  226.   digitalWrite(ele2, LOW);
  227.   setColor(0, 0, 255);
  228.      blokada=stoper(0,10);
  229.  if( blokada==5){
  230.   break;}
  231.      
  232.  digitalWrite(pompa, HIGH);
  233.   digitalWrite(ele2, HIGH);
  234.   setColor(0, 255, 0);
  235.     blokada=stoper(0,15);
  236.  if( blokada==5){
  237.   break;}
  238.      
  239.   digitalWrite(pompa, LOW);
  240.     digitalWrite(ele3, LOW);
  241.     setColor(0, 0, 255);
  242.       blokada=stoper(0,10);
  243.  if( blokada==5){
  244.   break;}
  245.      
  246.    digitalWrite(pompa, HIGH);
  247.     digitalWrite(ele3, HIGH);
  248.     setColor(0, 255, 0);
  249.        blokada=stoper(0,15);
  250.  if( blokada==5){
  251.   break;}
  252.      
  253.   digitalWrite(pompa, LOW);
  254.   digitalWrite(ele4, LOW);
  255.   setColor(0, 0, 255);
  256.       blokada=stoper(0,10);
  257.  if( blokada==5){
  258.   break;}
  259.      
  260. }}
  261.  
  262.  key = keypad.getKey();
  263.  
  264. if(key == '1'){
  265.   while(1){
  266.     digitalWrite(pompa, LOW);
  267.     digitalWrite(ele1, LOW);
  268.     digitalWrite(ele2, HIGH);
  269.     digitalWrite(ele3, HIGH);
  270.     digitalWrite(ele4, HIGH);
  271.     setColor(255, 255, 0);
  272.        blokada_up=stoper_up();
  273.   if(blokada_up==5){
  274.         blokada=1;
  275.             break;}}}
  276.  
  277.  
  278.  
  279.  
  280. if(key == '2'){
  281.   while(1){
  282.     digitalWrite(pompa, LOW);
  283.     digitalWrite(ele2, LOW);
  284.     digitalWrite(ele1, HIGH);
  285.      digitalWrite(ele3, HIGH);
  286.     digitalWrite(ele4, HIGH);
  287.     setColor(255, 255, 0);
  288.     blokada_up=stoper_up();
  289.   if(blokada_up==5){
  290.         blokada=1;
  291.             break;}}}
  292.  
  293.  
  294.  
  295. if(key == '3'){
  296.   while(1){
  297.     digitalWrite(pompa, LOW);
  298.     digitalWrite(ele3, LOW);
  299.     digitalWrite(ele1, HIGH);
  300.     digitalWrite(ele2, HIGH);
  301.     digitalWrite(ele4, HIGH);
  302.     setColor(255, 255, 0);
  303.      blokada_up=stoper_up();
  304.   if(blokada_up==5){
  305.         blokada=1;
  306.             break;}}}
  307.  
  308.  
  309.  
  310. if(key == '4'){
  311.   while(1){
  312.     digitalWrite(pompa, LOW);
  313.     digitalWrite(ele4, LOW);
  314.     digitalWrite(ele1, HIGH);
  315.     digitalWrite(ele2, HIGH);
  316.     digitalWrite(ele3, HIGH);
  317.    
  318.     setColor(255, 255, 0);
  319.     blokada_up=stoper_up();
  320.   if(blokada_up==5){
  321.         blokada=1;
  322.             break;}}}
  323.  
  324.  
  325. if(key == '5'){
  326.   while(1){
  327.    digitalWrite(pompa, HIGH);
  328.     digitalWrite(ele1, HIGH);
  329.     digitalWrite(ele2, HIGH);
  330.     digitalWrite(ele3, HIGH);
  331.     digitalWrite(ele4, HIGH);
  332.   setColor(0, 255, 0);
  333.   blokada_up=stoper_up();
  334.   if(blokada_up==5){
  335.         blokada=1;
  336.             break;}}}
  337.  
  338.  
  339. }