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