#include #include #include LiquidCrystal_I2C lcd(0x27, 16, 2); int pompa=10;//deklaracje int ele1=2; int ele2=4; int ele3=7; int ele4=8; int blokada=1; int blokada_up=1; int redPin = 3; // led int greenPin = 5; // led int bluePin = 6; // led long h = 3600000; // 3600000 milliseconds in an hour long m = 60000; // 60000 milliseconds in a minute long s= 1000; // 1000 milliseconds in a second long czas = 0; unsigned long zapamietany_czas = 0; unsigned long aktualny_czas =0; const unsigned long Interwal = 1000; unsigned long previousTime = 0; const byte ROWS = 4; //four rows const byte COLS = 3; //three columns char keys[ROWS][COLS] = { {'1','2','3'}, {'4','5','6'}, }; byte rowPins[ROWS] = {11, 12}; //connect to the row pinouts of the keypad byte colPins[COLS] = {13,A3,A2}; //connect to the column pinouts of the keypad Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); char key ; int stoper(int Min, int Sec){ int m=Min; int s=Sec; char key; unsigned long zapamietany_czast=millis(); unsigned long aktualny_czast=millis(); while(1){ if(m==0 && s== 0){ lcd.setCursor(0,1); lcd.print(0); lcd.setCursor(1,1); lcd.print(0); lcd.setCursor(2,1); lcd.print(":"); lcd.setCursor(3,1); lcd.print(0); lcd.setCursor(4,1); lcd.print(0); break; } aktualny_czast=millis(); lcd.setCursor(0,1); lcd.print(m/10); lcd.setCursor(1,1); lcd.print(m%10); lcd.setCursor(2,1); lcd.print(":"); lcd.setCursor(3,1); lcd.print(s/10); lcd.setCursor(4,1); lcd.print(s%10); if(aktualny_czast-zapamietany_czast>=1000){ s--; zapamietany_czast=aktualny_czast;} if(s==-1 && m>0){ m--; s=59;} key = keypad.getKey(); if(key=='1' || key=='2' || key=='3' || key=='4' || key=='5'){ lcd.setCursor(0,1); lcd.print(0); lcd.setCursor(1,1); lcd.print(0); lcd.setCursor(2,1); lcd.print(":"); lcd.setCursor(3,1); lcd.print(0); lcd.setCursor(4,1); lcd.print(0); return 5; break; } } } int stoper_up(){ int m=0; int s=0; char key; unsigned long zapamietany_czast=millis(); unsigned long aktualny_czast=millis(); while(1){ aktualny_czast=millis(); lcd.setCursor(0,1); lcd.print(m/10); lcd.setCursor(1,1); lcd.print(m%10); lcd.setCursor(2,1); lcd.print(":"); lcd.setCursor(3,1); lcd.print(s/10); lcd.setCursor(4,1); lcd.print(s%10); if(aktualny_czast-zapamietany_czast>=1000){ s++; zapamietany_czast=aktualny_czast;} if(s>59){ m++; s=0;} key = keypad.getKey(); if(key=='6' ){ lcd.setCursor(0,1); lcd.print(0); lcd.setCursor(1,1); lcd.print(0); lcd.setCursor(2,1); lcd.print(":"); lcd.setCursor(3,1); lcd.print(0); lcd.setCursor(4,1); lcd.print(0); return 5; break; } } } void setColor(int red, int green, int blue) { #ifdef COMMON_ANODE red = 255 - red; green = 255 - green; blue = 255 - blue; #endif analogWrite(redPin, red); analogWrite(greenPin, green); analogWrite(bluePin, blue); } void setup() { pinMode(2, OUTPUT); //elektro zawór 1 pinMode(4, OUTPUT); //elektro zawór 2 pinMode(7, OUTPUT); //elektro zawór 3 pinMode(8, OUTPUT); //elektro zawór 4 pinMode(10, OUTPUT); //pompa pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT); digitalWrite(pompa, HIGH); //Wyłączenie wszystkiego digitalWrite(ele1, HIGH); digitalWrite(ele2, HIGH); digitalWrite(ele3, HIGH); digitalWrite(ele4, HIGH); lcd.begin(); lcd.backlight(); lcd.print("Czas:"); } void loop() { if(blokada==1){ blokada_up=1; while(1){ digitalWrite(pompa, HIGH); digitalWrite(ele1, HIGH); digitalWrite(ele2, HIGH); digitalWrite(ele3, HIGH); digitalWrite(ele4, HIGH); setColor(0, 255, 0); blokada=stoper(0,15); if( blokada==5){ break;} digitalWrite(pompa, LOW); digitalWrite(ele1, LOW); setColor(0, 0, 255); blokada=stoper(0,10); if( blokada==5){ break;} digitalWrite(pompa, HIGH); digitalWrite(ele1, HIGH); setColor(0, 255, 0); blokada=stoper(0,15); if( blokada==5){ break;} digitalWrite(pompa, LOW); digitalWrite(ele2, LOW); setColor(0, 0, 255); blokada=stoper(0,10); if( blokada==5){ break;} digitalWrite(pompa, HIGH); digitalWrite(ele2, HIGH); setColor(0, 255, 0); blokada=stoper(0,15); if( blokada==5){ break;} digitalWrite(pompa, LOW); digitalWrite(ele3, LOW); setColor(0, 0, 255); blokada=stoper(0,10); if( blokada==5){ break;} digitalWrite(pompa, HIGH); digitalWrite(ele3, HIGH); setColor(0, 255, 0); blokada=stoper(0,15); if( blokada==5){ break;} digitalWrite(pompa, LOW); digitalWrite(ele4, LOW); setColor(0, 0, 255); blokada=stoper(0,10); if( blokada==5){ break;} }} key = keypad.getKey(); if(key == '1'){ while(1){ digitalWrite(pompa, LOW); digitalWrite(ele1, LOW); digitalWrite(ele2, HIGH); digitalWrite(ele3, HIGH); digitalWrite(ele4, HIGH); setColor(255, 255, 0); blokada_up=stoper_up(); if(blokada_up==5){ blokada=1; break;}}} if(key == '2'){ while(1){ digitalWrite(pompa, LOW); digitalWrite(ele2, LOW); digitalWrite(ele1, HIGH); digitalWrite(ele3, HIGH); digitalWrite(ele4, HIGH); setColor(255, 255, 0); blokada_up=stoper_up(); if(blokada_up==5){ blokada=1; break;}}} if(key == '3'){ while(1){ digitalWrite(pompa, LOW); digitalWrite(ele3, LOW); digitalWrite(ele1, HIGH); digitalWrite(ele2, HIGH); digitalWrite(ele4, HIGH); setColor(255, 255, 0); blokada_up=stoper_up(); if(blokada_up==5){ blokada=1; break;}}} if(key == '4'){ while(1){ digitalWrite(pompa, LOW); digitalWrite(ele4, LOW); digitalWrite(ele1, HIGH); digitalWrite(ele2, HIGH); digitalWrite(ele3, HIGH); setColor(255, 255, 0); blokada_up=stoper_up(); if(blokada_up==5){ blokada=1; break;}}} if(key == '5'){ while(1){ digitalWrite(pompa, HIGH); digitalWrite(ele1, HIGH); digitalWrite(ele2, HIGH); digitalWrite(ele3, HIGH); digitalWrite(ele4, HIGH); setColor(0, 255, 0); blokada_up=stoper_up(); if(blokada_up==5){ blokada=1; break;}}} }