Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define Opoznienie 0
- #define czyRaport 1
- // Przypisanie pinow Arduino do wejsc i wyjsc ukladu windy
- int Button0 = A0; // Pin dla przycisku przywolania windy na poziom nr 0.
- int Button1 = A1; // Pin dla przycisku przywolania windy na poziom nr 1.
- int Button3 = A3; // Pin dla przycisku przywolania windy na poziom nr 3.
- int Sensor0 = A4; // Pin dla sensora obecnosci windy na poziomie nr 0.
- int Sensor1 = A5; // Pin dla sensora obecnosci windy na poziomie nr 1.
- int Sensor3 = 13;// Pin dla sensora obecnosci windy na poziomie nr 3.
- int OutputQ1Pin=5;// Pin dla Control Signal of Relay 3 / Output Signal Q1 / Forward/Reverse Signal
- int OutputQ2Pin=4;// Pin dla Control Signal of Relay 4 / Output Signal Q2 / Start/Stop Signal
- //Zmienne globalne
- boolean Q1 = 1;//Forward/Reverse Control Signal Relay 3
- boolean Q2 = 0;//Start/Stop Control Signal Relay 4
- boolean I1 = 0;//Odczyt z "Przycisk żądanie 0-go poziomu"
- boolean I2 = 0;//Odczyt z "Przycisk żądanie 1-go poziomu"
- boolean I4 = 0;//Odczyt z "Przycisk żądanie 3-go poziomu"
- boolean I5 = 0;//Odczyt z "Sensor obecności kabiny na 0. poziomie"
- boolean I6 = 0;//Odczyt z "Sensor obecności kabiny na 1. poziomie"
- boolean I8 = 0;//Odczyt z "Sensor obecności kabiny na 3. poziomie"
- //Flagi stanow dla chwili t
- boolean M1 = 0;
- boolean M2 = 0;
- boolean M3 = 0;
- boolean M4 = 0;
- boolean M5 = 0;
- boolean M6 = 0;
- boolean M7 = 0;
- boolean M9 = 0;
- boolean Mdziesiec = 0;
- //Flagi stanow dla chwili t + 1
- boolean M1p = 0;
- boolean M2p = 0;
- boolean M3p = 0;
- boolean M4p = 0;
- boolean M5p = 0;
- boolean M6p = 0;
- boolean M7p = 0;
- boolean M9p = 0;
- boolean Mdziesiecp = 0;
- void raport()
- {
- Serial.println("Odczyt przyciskow ");
- Serial.print(I1);
- Serial.print(I2);
- Serial.print(I4);
- Serial.println();
- Serial.println("Odczyt sensorow ");
- Serial.print(I5);
- Serial.print(I6);
- Serial.print(I8);
- Serial.println();
- Serial.println("Stan wewnetrzny (flagi) ");
- Serial.print(M1);
- Serial.print(M2);
- Serial.print(M3);
- Serial.print(M4);
- Serial.print(M5);
- Serial.print(M6);
- Serial.print(M7);
- Serial.print(M9);
- Serial.print(Mdziesiec);
- Serial.println();
- Serial.println("Stan wyjsc ");
- Serial.print(Q1);
- Serial.print(Q2);
- Serial.println();
- }
- void odczytWejsc()
- {
- I1 = digitalRead(Button0);
- I2 = digitalRead(Button1);
- I4 = digitalRead(Button3);
- I5 = digitalRead(Sensor0);
- I6 = digitalRead(Sensor1);
- I8 = digitalRead(Sensor3);
- }
- void funkcjaPrzejscia()
- {
- //Obliczanie nowych wartosci funkcji przejsc stanow
- M1p = (M1 & !I1 & !I2) | (M7 & I8) | (Mdziesiec & I8);
- M2p = (M2 & !I1 & !I4) | (M4 & I6) | (M9 & I6);
- M3p = (M3 & !I2 & !I4) | (M5 & I5) | (M6 & I5);
- M4p = (M1 & I2)| (M4 & !I6);
- M5p = (M1 & I1) | (M5 & !I5) | !(M1 | M2 | M3 | M4 | M5 | M6 | M7 | M9 | Mdziesiec);
- M6p = (M2 & I1) | (M6 & !I5);
- M7p = (M2 & I4) | (M7 & !I8);
- M9p = (M3 & I2) | (M9 & !I6);
- Mdziesiecp = (M3 & I4) | (Mdziesiec & !I8);
- M1 = M1p;
- M2 = M2p;
- M3 = M3p;
- M4 = M4p;
- M5 = M5p;
- M6 = M6p;
- M7 = M7p;
- M9 = M9p;
- Mdziesiec = Mdziesiecp;
- }
- void funkcjaWyjscia()
- {
- Q1 = M4 | M5 | M6;
- Q2 = M1 | M2 | M3;
- }
- void zapisWyjscia()
- {
- digitalWrite(OutputQ1Pin,Q1);
- digitalWrite(OutputQ2Pin,Q2);
- }
- void setup()
- {
- pinMode(Button0, INPUT);
- pinMode(Button1, INPUT);
- pinMode(Button3, INPUT);
- pinMode(Sensor0, INPUT);
- pinMode(Sensor1, INPUT);
- pinMode(Sensor3, INPUT);
- pinMode(OutputQ1Pin, OUTPUT);
- pinMode(OutputQ2Pin, OUTPUT);
- Serial.begin(9600);
- Serial.println("Koniec wykonywania Setup");
- }
- void loop()
- {
- odczytWejsc();
- funkcjaPrzejscia();
- funkcjaWyjscia();
- zapisWyjscia();
- if (czyRaport == 1)
- raport();
- delay(Opoznienie);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement