Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //definiowanie pinów od przełaczników panelu sterowania
- #define s1 41//
- #define s2 49
- #define s3 47
- #define s4 45
- #define s5 35
- #define s6 37
- #define s7 39
- #define s8 43
- #define s9 31
- #define s10 33
- //zdefiniowanie pinów led panelu sterowania
- #define led1 40
- #define led2 42
- #define led3 32
- #define led4 30
- #define led5 44
- #define led6 46
- #define led7 34
- #define led8 36
- #define led9 48
- #define led10 38
- //zdefiniowanie zmiennych globalnych służących do stworzenia opóźnień itd.
- unsigned long current_time = 0 ;
- // zmienne od używania millis
- unsigned long savedtime_room1 = 0 ;
- unsigned long savedtime_room2 = 0 ;
- unsigned long savedtime_room3 = 0 ;
- unsigned long savedtime_room4 = 0 ;
- unsigned long savedtime_room5 = 0 ;
- unsigned long savedtime_room6 = 0 ;
- unsigned long savedtime_room7 = 0 ;
- unsigned long savedtime_room8 = 0 ;
- unsigned long savedtime_room9 = 0 ;
- unsigned long savedtime_room10 = 0;
- unsigned long savedtime_pomiar = 0 ;
- //zmienna do zapisywanie wylosowaniej długości świecenia
- unsigned long duration1 = 0 ;
- unsigned long duration2 = 0 ;
- unsigned long duration3 = 0 ;
- unsigned long duration4 = 0 ;
- unsigned long duration5 = 0 ;
- unsigned long duration6 = 0 ;
- unsigned long duration7 = 0 ;
- unsigned long duration8 = 0 ;
- unsigned long duration9 = 0 ;
- unsigned long duration10 = 0;
- //zmienna od wyswietlanych danych o mocy
- double power1 = 0;
- //zmienna od maksymalnej i m inimalnej długości świecenia
- int lighting_time_min = 100;
- int lighting_time_max = 15000;
- //przypisanie pinów oświetlenią w pokojach
- #define room1 13
- #define room2 22
- #define room3 24
- #define room4 26
- #define room5 28
- #define room6 12
- #define room7 11
- #define room8 10
- #define room9 9
- #define room10 8
- //dekleracjia zmiennych od pozimów logicznych pinów
- byte lv1 = 0;
- byte lv2 = 0;
- byte lv3 = 0;
- byte lv4 = 0;
- byte lv5 = 0;
- byte lv6 = 0;
- byte lv7 = 0;
- byte lv8 = 0;
- byte lv9 = 0;
- byte lv10 = 0;
- //okres wyświetlania się wyników pomiaru na lcd
- unsigned long pomiartime = 500 ;
- //zmienne od RTC
- int s = 0 ;
- int m = 0 ;
- int h = 0 ;
- unsigned long savedtimeRTC = 0;
- //zmianne od czasu na makiecie
- int sm = 0 ;
- int mm = 0 ;
- int hm = 0 ;
- unsigned long savedtimeRTCm = 0;
- //cykl dobowy
- int stan = 1;
- #include <LiquidCrystal.h> //Dołączenie bilbioteki
- LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Informacja o podłączeniu nowego wyświetlacza
- //============================//
- // obsługa pomiarów //
- //============================//
- //==================
- int mVperAmp = 185; // use 100 for 20A Module and 66 for 30A Module
- int ACSoffset = 2500;
- const int analogIn1 = A0;
- const int analogIn2 = A1;
- const int analogIn3 = A2 ;
- const int analogIn4 = A3;
- //=================
- float RawValue1 = 0;
- float RawValue2 = 0;
- float RawValue3 = 0;
- float RawValue4 = 0;
- //=================
- double Voltage1 = 0;
- double Voltage2 = 0;
- double Voltage3 = 0;
- float Voltage4 = 0;
- //==================
- double Amps1 = 0;
- double Amps2 = 0;
- //==================
- void setup() {
- //rozpoczecie teransmisi uart
- Serial.begin(9600);
- lcd.begin(40, 4); //Deklaracja typu
- //zdefinowianie trybu pinów od oświetlenia
- pinMode(room1, OUTPUT);
- pinMode(room2, OUTPUT);
- pinMode(room3, OUTPUT);
- pinMode(room4, OUTPUT);
- pinMode(room5, OUTPUT);
- pinMode(room6, OUTPUT);
- pinMode(room7, OUTPUT);
- pinMode(room8, OUTPUT);
- pinMode(room9, OUTPUT);
- pinMode(room10, OUTPUT);
- //zadelarownie pinów led panelu sterowania
- pinMode(30, OUTPUT);
- pinMode(32, OUTPUT);
- pinMode(34, OUTPUT);
- pinMode(36, OUTPUT);
- pinMode(38, OUTPUT);
- pinMode(40, OUTPUT);
- pinMode(42, OUTPUT);
- pinMode(44, OUTPUT);
- pinMode(46, OUTPUT);
- pinMode(48, OUTPUT);
- //deklarowanie pinów od przełaczników panelu sterowania
- pinMode(s1, INPUT_PULLUP); //Przycisk jako wejście
- pinMode(s2, INPUT_PULLUP); //Przycisk jako wejście
- pinMode(s3, INPUT_PULLUP); //Przycisk jako wejście
- pinMode(s4, INPUT_PULLUP); //Przycisk jako wejście
- pinMode(s5, INPUT_PULLUP); //Przycisk jako wejście
- pinMode(s6, INPUT_PULLUP); //Przycisk jako wejście
- pinMode(s7, INPUT_PULLUP); //Przycisk jako wejście
- pinMode(s8, INPUT_PULLUP); //Przycisk jako wejście
- pinMode(s9, INPUT_PULLUP); //Przycisk jako wejście
- pinMode(s10, INPUT_PULLUP); //Przycisk jako wejście
- //=============================
- //formtowanie wyswietlacza //
- //=============================
- lcd.begin(20, 4);
- lcd.setCursor(9, 0);
- lcd.print("RTC");
- lcd.setCursor(9, 1);
- lcd.print("TM");
- lcd.setCursor(0, 2);
- lcd.print("B=");
- lcd.setCursor(0, 0);
- lcd.print("Pi=");
- lcd.setCursor(0, 1);
- lcd.print("Po=");
- lcd.setCursor(0, 3);
- lcd.print("U");
- }
- //==============================//
- // zmienne od panelu sterowania //
- //==============================//
- void loop() {
- //ustawienie seed'u
- randomSeed(analogRead(15));
- //zapisanie obecnego czasu
- current_time = millis();
- //||||||||||||||||||||||||||||||||||||||||||||||||||//
- // dzień //
- //||||||||||||||||||||||||||||||||||||||||||||||||||//
- if (stan == 1) {
- lv1=0;
- lv2=0;
- lv3=0;
- lv4=0;
- lv5=0;
- lv6=0;
- lv7=0;
- lv8=0;
- lv9=0;
- lv10=0;
- }
- //||||||||||||||||||||||||||||||||||||||||||||||||||//
- // noc //
- //||||||||||||||||||||||||||||||||||||||||||||||||||//
- if (stan == 2) {
- //===========================================//
- // miganie oswietleniem w nocy //
- //===========================================//
- //miganie room1
- if (current_time - savedtime_room1 >= duration1)
- { lv1 = !lv1;
- duration1 = random(lighting_time_min, lighting_time_max );
- savedtime_room1 = current_time;
- digitalWrite(room1, lv1);
- }
- //miganie room2
- if (current_time - savedtime_room2 >= duration2)
- { lv2 = !lv2;
- duration2 = random( lighting_time_min, lighting_time_max );
- savedtime_room2 = current_time;
- digitalWrite(room2, lv2);
- }
- //miganie room3
- if (current_time - savedtime_room3 >= duration3)
- { lv3 = !lv3;
- duration3 = random( lighting_time_min, lighting_time_max );
- savedtime_room3 = current_time;
- digitalWrite(room3, lv3);
- }
- //miganie room4
- if (current_time - savedtime_room4 >= duration4)
- { lv4 = !lv4;
- duration4 = random( lighting_time_min, lighting_time_max );
- savedtime_room4 = current_time;
- digitalWrite(room4, lv4);
- }
- //miganie room5
- if (current_time - savedtime_room7 >= 1000)
- { lv7 = !lv7;
- duration7 = random( lighting_time_min, lighting_time_max);
- savedtime_room7 = current_time;
- digitalWrite(room7, lv7);
- }
- }
- //=========================================//
- // Pomiary //
- //=========================================//
- RawValue1 = analogRead(analogIn1);
- Voltage1 = (RawValue1 / 1024.0) * 5000;
- Amps1 = ((Voltage1 - ACSoffset) / mVperAmp);
- Amps1 = Amps1*Voltage4;
- RawValue2 = analogRead(analogIn2);
- Voltage2 = (RawValue2 / 1024.0) * 5000;
- Amps2 = ((Voltage2 - ACSoffset) / mVperAmp);
- Amps2 = Amps2 * 5;
- RawValue4=analogRead(analogIn4);
- Voltage4=((RawValue4/1024.0)*5);
- //=================================================//
- //przetworzenie wyników pomiarów i ich wyświetlenie//
- //=================================================//
- if (current_time - savedtime_pomiar >= pomiartime)
- { savedtime_pomiar = current_time;
- RawValue3 = analogRead(analogIn3);
- Voltage3 = (RawValue3 / 1024.0) * 5000;
- Voltage3 = Voltage3 - 0.3;
- power1 = Voltage3 * Amps1;
- lcd.setCursor(0, 0);
- lcd.setCursor(3, 0);
- lcd.print(Amps1, 2);
- lcd.setCursor(3, 1);
- lcd.print(Amps2, 2);
- }
- //==============================================
- // RTC //
- //==============================================
- //sekundy
- if (current_time - savedtimeRTC >= 1000)
- { savedtimeRTC = current_time;
- s++;
- //minuty
- if (s >= 60) {
- s = 0;
- m++;
- }
- //godziny
- if (m >= 60) {
- m = 0;
- h++;
- }
- //doba
- if (h >= 24) {
- h = 0;
- }
- //wyświetlanie godziny
- lcd.setCursor(12, 0);
- if (h < 10) {
- lcd.print(0);
- }
- lcd.print(h);
- lcd.print(":");
- if (m < 10) {
- lcd.print(0);
- }
- lcd.print(m);
- lcd.print(":");
- if (s < 10) {
- lcd.print(0);
- }
- lcd.println(s);
- }
- //========================================//
- // Czas makieta //
- //========================================//
- //sekundy
- if (current_time - savedtimeRTCm >= 1)
- { savedtimeRTCm = current_time;
- sm = sm + 11;
- //minuty
- if (sm >= 60)
- { sm = 0 ;
- mm++;
- }
- //godziny
- if (mm >= 60) {
- mm = 0;
- hm++;
- }
- //doba
- if (hm >= 24) {
- hm = 0;
- }
- //wyświetlanie godziny
- lcd.setCursor(12, 1);
- if (hm < 10) {
- lcd.print(0);
- }
- lcd.print(hm);
- lcd.print(":");
- if (mm < 10) {
- lcd.print(0);
- }
- lcd.print(mm);
- lcd.print(":");
- if (sm < 10) {
- lcd.print(0);
- }
- lcd.println(sm);
- }
- //====================
- // lcd //
- //=====================
- lcd.setCursor(9, 0);
- lcd.print("RTC");
- lcd.setCursor(9, 1);
- lcd.print("TM");
- lcd.setCursor(0, 2);
- lcd.print("B=");
- lcd.print(RawValue4);
- lcd.setCursor(0, 0);
- lcd.print("Pi=");
- lcd.setCursor(0, 1);
- lcd.print("Po=");
- lcd.setCursor(0, 3);
- lcd.print("U=");
- //==============
- //noce i dnie //
- //==============
- if (hm >= 6 && hm <= 19) {
- stan = 1;
- }
- if (hm < 6 && hm < 19) {
- stan = 2;
- }
- //============================//
- // obsługa panelu sterowania //
- //============================//
- if(digitalRead(s1)==1||digitalRead(s2)==1||digitalRead(s3)==1||digitalRead(s4)==1||digitalRead(s5)==1||digitalRead(s6)==1||digitalRead(s7)==1||digitalRead(s8)==1||digitalRead(s9)==1||digitalRead(s10)==1)
- {lv1=0;
- lv2=0;
- lv3=0;
- lv4=0;
- lv5=0;
- lv6=0;
- lv7=0;
- lv8=0;
- lv9=0;
- lv10=0;}
- if(digitalRead(s1)==1){lv1=1;stan=3; }
- if(digitalRead(s2)==1){lv2=1; stan=3;}
- if(digitalRead(s3)==1){lv3=1; ;stan=3;}
- if(digitalRead(s4)==1){lv4=1; stan=3;}
- if(digitalRead(s5)==1){lv5=1;stan=3;}
- if(digitalRead(s6)==1){lv6=1; stan=3;}
- if(digitalRead(s7)==1){lv7=1; stan=3;}
- if(digitalRead(s8)==1){lv8=1; stan=3;}
- if(digitalRead(s9)==1){lv9=1; stan=3;}
- if(digitalRead(s10)==1){lv10=1; ;stan=3;}
- if(digitalRead(s1)==1||digitalRead(s2)==1||digitalRead(s3)==1||digitalRead(s4)==1||digitalRead(s5)==1|digitalRead(s6)==1||digitalRead(s7)==1||digitalRead(s8)==1||digitalRead(s9)==1||digitalRead(s10)==1){
- if(digitalRead(s1)==0){lv1=0; }
- if(digitalRead(s2)==0){lv2=0;}
- if(digitalRead(s3)==0){lv3=0; }
- if(digitalRead(s4)==0){lv4=0; }
- if(digitalRead(s5)==0){lv5=0; }
- if(digitalRead(s6)==0){lv6=0; }
- if(digitalRead(s7)==0){lv7=0; }
- if(digitalRead(s8)==0){lv8=0; }
- if(digitalRead(s9)==0){lv9=0; }
- if(digitalRead(s10)==0){lv10=0;}
- }
- if(digitalRead(s1)==0&&digitalRead(s2)==0&&digitalRead(s3)==0&&digitalRead(s4)==0&&digitalRead(s5)==0&&digitalRead(s6)==0&&digitalRead(s7)==0&&digitalRead(s8)==0&&digitalRead(s9)==0&&digitalRead(s10)==0&&stan==3){
- }
- if(lv1==1){digitalWrite(led1,1);
- digitalWrite(room1,1);}
- if(lv2==1){digitalWrite(led2,1);
- digitalWrite(room2,1);}
- if(lv3==1){digitalWrite(led3,1);
- digitalWrite(room3,1);}
- if(lv4==1){digitalWrite(led4,1);
- digitalWrite(room4,1);}
- if(lv5==1){digitalWrite(led5,1);
- digitalWrite(room5,1);}
- if(lv6==1){digitalWrite(led6,1);
- digitalWrite(room6,1);}
- if(lv7==1){digitalWrite(led7,1);
- digitalWrite(room7,1);}
- if(lv8==1){digitalWrite(led8,1);
- digitalWrite(room8,1);}
- if(lv9==1){digitalWrite(led9,1);
- }
- if(lv10==1){digitalWrite(led10,1);
- digitalWrite(room10,1);}
- if(lv1==0){digitalWrite(led1,0);
- digitalWrite(room1,0);}
- if(lv2==0){digitalWrite(led2,0);
- digitalWrite(room2,0);}
- if(lv3==0){digitalWrite(led3,0);
- digitalWrite(room3,0);}
- if(lv4==0){digitalWrite(led4,0);
- digitalWrite(room4,0);}
- if(lv5==0){digitalWrite(led5,0);
- digitalWrite(room5,0);}
- if(lv6==0){digitalWrite(led6,0);
- digitalWrite(room6,0);}
- if(lv7==0){digitalWrite(led7,0);
- digitalWrite(room7,0);}
- if(lv8==0){digitalWrite(led8,0);
- digitalWrite(room8,0);}
- if(lv9==0){digitalWrite(led9,0);
- digitalWrite(room9,0);}
- if(lv10==0){digitalWrite(led10,0);
- digitalWrite(room10,0);}
- Serial.println(lv9);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement