//Diody RGB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #include //Zaimplementowanie Bibliotek #include "Mux.h" //Zaimplementowanie Bibliotek using namespace admux; //Inicjalizacja Mux mux(Pinset(8, 7, 6, 5)); //Stworzenie obiektu/zmiennej "mux" i przypisanie pinów sterujących do pinów: D2, D3, D4, D5 int RGB = 0; //Serwo//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #include //Zaimplementowanie Biblioteki Servo servo; //Stworzenie obiektu "servo" int pos=0; //Zmienna "pos" przechowująca pozycję //Wyswietlacz//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #include //Zaimplementowanie Biblioteki #define CLK 12 //Pin D4 jako CLK #define DIO 11 //Pin D5 jako DIO TM1637Display display(CLK, DIO); //Konfiguracja wyświetlacza //Potencjometr//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// int wartosc_potencjometru_odczytana = 0; //Zmienna do przechowywania danych odczytanych z pinu unsigned int wartosc_potencjometru = 0; //Zmienna tylko dodatnia to przechowywania przetowrzonych danych z potencjometru //Przyciski//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// int shot_1 = A1; int shot_2 = A2; int shot_3 = A3; int shot_4 = A4; int shot_5 = A5; int stan_1 = LOW; int stan_2 = LOW; int stan_3 = LOW; int stan_4 = LOW; int stan_5 = LOW; //Pompa//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// int pompa = 10; void setup() { // put your setup code here, to run once: mux.channel(RGB); //RGB diody servo.attach(9); //Przypisanie serva do pinu D9 servo.write(0); uint8_t clearMe[]={ //Tablica czyszczaca wyświetlacz 0,0,0,0 }; display.setBrightness(0x02); //Ustawienie jasności w kodzie 16-tkowym display.setSegments(clearMe); //wyczyszczenie wyświetlacza pinMode(shot_1, INPUT_PULLUP); //Przycisk jako wejście pinMode(shot_2, INPUT_PULLUP); //Przycisk jako wejście pinMode(shot_3, INPUT_PULLUP); //Przycisk jako wejście pinMode(shot_4, INPUT_PULLUP); //Przycisk jako wejście pinMode(shot_5, INPUT_PULLUP); //Przycisk jako wejście pinMode(pompa, OUTPUT); digitalWrite(pompa, HIGH); rgb(); } void loop() { wartosc_potencjometru_odczytana = analogRead(A0); //Odczytanie danych i Pinu A0 i przypisanie ich do zmiennej wartosc_potencjometru = wartosc_potencjometru_odczytana * 0.0985; //Przemnożenie aby zmienić wartości z 0-1023 na 0-100 if(wartosc_potencjometru <=9){ //Sprawdzenie czy wartość nie jest mniejsza od 4 jeśli tak to ustawienie wartości na 5 wartosc_potencjometru = 10; }; display.showNumberDec(wartosc_potencjometru,false, 4, 0); if(stan_1 == HIGH){ mux.channel(2); } else{ mux.channel(0); }; if(stan_2 == HIGH){ mux.channel(5); } else{ mux.channel(0); }; if(stan_3 == HIGH){ mux.channel(8); } else{ mux.channel(0); }; if(stan_4 == HIGH){ mux.channel(11); } else{ mux.channel(0); }; if(stan_5 == HIGH){ mux.channel(14); } else{ mux.channel(0); }; if (digitalRead(shot_1) == HIGH ) { //Jeśli przycisk wciśnięty stan_1 = LOW; }if (digitalRead(shot_1) == LOW && stan_1 == LOW ){ nalej_1(); }; if (digitalRead(shot_2) == HIGH ) { //Jeśli przycisk wciśnięty stan_2 = LOW; }if (digitalRead(shot_2) == LOW && stan_2 == LOW ){ nalej_2(); }; if (digitalRead(shot_3) == HIGH ) { //Jeśli przycisk wciśnięty stan_3 = LOW; }if (digitalRead(shot_3) == LOW && stan_3 == LOW ){ nalej_3(); }; if (digitalRead(shot_4) == HIGH ) { //Jeśli przycisk wciśnięty stan_4 = LOW; }if (digitalRead(shot_4) == LOW && stan_4 == LOW ){ nalej_4(); }; if (digitalRead(shot_5) == HIGH ) { //Jeśli przycisk wciśnięty stan_5 = LOW; }if (digitalRead(shot_5) == LOW && stan_5 == LOW ){ nalej_5(); }; } void nalej_1() { mux.channel(1); servo.write(180); delay(1250); mux.channel(3); digitalWrite(pompa, LOW); delay(wartosc_potencjometru*125); digitalWrite(pompa, HIGH); mux.channel(2); delay(50); servo.write(178); delay(250); servo.write(180); delay(250); servo.write(178); delay(250); servo.write(0); delay(2000); mux.channel(0); stan_1 = HIGH; } void nalej_2() { mux.channel(4); servo.write(144); delay(1250); mux.channel(6); digitalWrite(pompa, LOW); delay(wartosc_potencjometru*125); digitalWrite(pompa, HIGH); mux.channel(5); delay(50); servo.write(146); delay(250); servo.write(142); delay(250); servo.write(146); delay(250); servo.write(0); delay(2000); mux.channel(0); stan_2 = HIGH; } void nalej_3() { mux.channel(7); servo.write(108); delay(1250); mux.channel(9); digitalWrite(pompa, LOW); delay(wartosc_potencjometru*125); digitalWrite(pompa, HIGH); mux.channel(8); delay(50); servo.write(110); delay(250); servo.write(106); delay(250); servo.write(110); delay(250); servo.write(0); delay(2000); mux.channel(0); stan_3 = HIGH; } void nalej_4() { mux.channel(10); servo.write(71); delay(1250); mux.channel(12); digitalWrite(pompa, LOW); delay(wartosc_potencjometru*125); digitalWrite(pompa, HIGH); mux.channel(11); delay(50); servo.write(73); delay(250); servo.write(69); delay(250); servo.write(73); delay(250); servo.write(0); delay(2000); mux.channel(0); stan_4 = HIGH; } void nalej_5() { mux.channel(13); servo.write(34); delay(1250); mux.channel(15); digitalWrite(pompa, LOW); delay(wartosc_potencjometru*125); digitalWrite(pompa, HIGH); mux.channel(14); delay(50); servo.write(36); delay(250); servo.write(32); delay(250); servo.write(36); delay(250); servo.write(0); delay(2000); mux.channel(0); stan_5 = HIGH; } void rgb(){ int czas = 100; RGB = 1; mux.channel(RGB); delay(czas); for (int i=0; i<3; i++) { RGB = RGB+3; mux.channel(RGB); delay(czas); } RGB = 13; mux.channel(RGB); delay(czas); for (int i=0; i<3; i++) { RGB = RGB-3; mux.channel(RGB); delay(czas); } RGB = 2; mux.channel(RGB); delay(czas); for (int i=0; i<3; i++) { RGB = RGB+3; mux.channel(RGB); delay(czas); } RGB = 14; mux.channel(RGB); delay(czas); for (int i=0; i<3; i++) { RGB = RGB-3; mux.channel(RGB); delay(czas); } RGB = 3; mux.channel(RGB); delay(czas); for (int i=0; i<3; i++) { RGB = RGB+3; mux.channel(RGB); delay(czas); } RGB = 15; mux.channel(RGB); delay(czas); for (int i=0; i<3; i++) { RGB = RGB-3; mux.channel(RGB); delay(czas); } RGB = 1; mux.channel(RGB); delay(czas); for (int i=0; i<14; i++) { RGB = RGB+1; mux.channel(RGB); delay(czas); } RGB = 1; mux.channel(RGB); delay(czas/2); for (int i=0; i<4; i++) { RGB = RGB+3; mux.channel(RGB); delay(czas/2); } delay(czas/2); RGB = 2; mux.channel(RGB); delay(czas/2); for (int i=0; i<4; i++) { RGB = RGB+3; mux.channel(RGB); delay(czas/2); } delay(czas/2); RGB = 3; mux.channel(RGB); delay(czas/2); for (int i=0; i<4; i++) { RGB = RGB+3; mux.channel(RGB); delay(czas/2); } delay(czas/2); RGB = 0; }