Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //definiujemy przekaźniki
- #define przekaznik1 4 // przekaźnik odpowiadający za przełączenie silnika 1 na bieg 1
- #define przekaznik2 5 // przekaźnik odpowiadający za przełączenie silnika 1 na bieg 2
- #define przekaznik3 6 // zgodny kierunek jazdy przenosnika 1
- #define przekaznik4 7 // zmiana kierunku jazdy na przeciwny przenosnika 1
- #define przekaznik5 13 // przekaźnik odpowiadający za przełączenie silnika 2 na bieg 1
- #define przekaznik6 14 // przekaźnik odpowiadający za przełączenie silnika 2 na bieg 2
- #define przekaznik7 15 // zgodny kierunek jazdy przenosnika 2
- #define przekaznik8 16 // zmiena kierunku jazdy na przeciwny przenosnika 2
- #define alarm 8 //sygnał dźwiękowy
- #define sygnalizator 9 //sygnał świetlny
- #define przycisk_wlacz 10 // przycisk uruchamiający przenośniki
- #define przycisk_wylacz 11 // przycisk hamowania manewrowego
- int wartoscprzekladnika1 = 0; // zmienna przechowywująca wartość prądu silnika 1 w zakresie 0 do 1023
- float skalowanie1; // przeskalowana wartość krotność prądu znamionowego silnika 1, gdzie 7In to maksymalna odczytana wartość na arduino
- int wartoscprzekladnika2 = 0; // zmienna przechowywująca wartość prądu silnika 2 w zakresie 0 do 1023
- float skalowanie2; //przeskalowana wartość krotność prądu znamionowego silnika 1, gdzie 7In to maksymalna odczytana wartość na arduino
- boolean stansilnika1 = false; // stan silnika 1, true-załączony, false-wyłączony
- boolean stansilnika2 = false; // stan silnika 1, true-załączony, false-wyłączony
- void setup() {
- Serial.begin(9600); //uruchamiamy transmisję do testów
- inicjowanie();
- }
- void inicjowanie(){
- pinMode(przekaznik1, OUTPUT); // przypisanie przekaźników jako wyjścia
- pinMode(przekaznik2, OUTPUT);
- pinMode(przekaznik3, OUTPUT);
- pinMode(przekaznik4, OUTPUT);
- pinMode(przekaznik5, OUTPUT);
- pinMode(przekaznik6, OUTPUT);
- pinMode(przekaznik7, OUTPUT);
- pinMode(przekaznik8, OUTPUT);
- digitalWrite(przekaznik1, LOW); // inicjowanie początkowych stanów przekaźników
- digitalWrite(przekaznik2, LOW);
- digitalWrite(przekaznik3, LOW);
- digitalWrite(przekaznik4, LOW);
- digitalWrite(przekaznik5, LOW);
- digitalWrite(przekaznik6, LOW);
- digitalWrite(przekaznik7, LOW);
- digitalWrite(przekaznik8, LOW);
- pinMode(alarm, OUTPUT); // przypisujemy alarm oraz sygnalizator jako wyjścia
- pinMode(sygnalizator, OUTPUT);
- pinMode(przycisk_wlacz, INPUT); // przypisanie przycisku włączającego układ
- pinMode(przycisk_wylacz, INPUT); // przypisanie przycisku wyłączającego układ w sposób manewrowy
- }
- float getADCValue(){
- int wartoscprzekladnika1 = analogRead(A4); // odczytanie i przeskalowanie wartości z przekładnika prądowego nr 1
- float skalowanie1 = map(wartoscprzekladnika1, 0, 1023, 0, 700)/100.0;
- Serial.println(skalowanie1);
- return skalowanie1;
- }
- float getADCValue2(){
- int wartoscprzekladnika2 = analogRead(A5); // odczytanie i przeskalowanie wartości z przekładnika prądowego nr 2
- float skalowanie2 = map(wartoscprzekladnika2, 0, 1023, 0, 700)/100.0;
- Serial.println(skalowanie2);
- return skalowanie2;
- }
- void silnikistop(){
- if(stansilnika2 == true){
- digitalWrite(przekaznik1, LOW); // wyłączenie silnika 2, jeżeli został uruchomiony
- digitalWrite(przekaznik2, LOW);
- digitalWrite(przekaznik3, LOW);
- digitalWrite(przekaznik4, LOW);
- Serial.println("wyłączono 2 silnik");
- stansilnika2 = false;
- }
- delay(5000);
- if(stansilnika1 == true){
- digitalWrite(przekaznik5, LOW); // wyłączenie silnika 1, jeżeli został uruchomiony
- digitalWrite(przekaznik6, LOW);
- digitalWrite(przekaznik7, LOW);
- digitalWrite(przekaznik8, LOW);
- Serial.println("wyłączono 1 silnik");
- stansilnika1 = false;
- }
- }
- void silnikistart(){
- Serial.println("Uwaga! Rozruch Przenośnika 1");
- digitalWrite(alarm, HIGH); //włącz alarm i sygnalizator na 5 sekund
- digitalWrite(sygnalizator, HIGH);
- delay(5000);
- digitalWrite(alarm, LOW); //wyłącz alarm i sygnalizator
- digitalWrite(sygnalizator, LOW);
- digitalWrite(przekaznik3, HIGH); //zgodny kierunek jazdy przenosnika 1
- digitalWrite(przekaznik1, HIGH); //załącz przekaźnik p1 uruchamiający silnik 1 na bieg 1
- stansilnika1 = true;
- Serial.println("przelaczenie na 1 bieg silnika 1");
- delay(2000);
- skalowanie1 = getADCValue();
- /*
- Po odczytaniu wartości czekamy, aż prąd spadnie do wartości 1,1In i nastąpi przełączenie
- silnika 1 na bieg 2
- */
- while(skalowanie1 >= 1.10){
- if(digitalRead(przycisk_wylacz) == HIGH) return;
- skalowanie1 = getADCValue();
- if(skalowanie1 <=1.10) break;
- }
- digitalWrite(przekaznik1, LOW); // rozłącz przekaźnik 1, w celu umożlwienia zmiany biegu
- digitalWrite(przekaznik2, HIGH); // załącz przekaźnik 2, uruchamiający silnik 1 na bieg 2
- Serial.println("przelaczenie na 2 bieg silnika 1");
- delay(5000); //odczekanie 5 sek na potrzebę testów
- /*
- oczekiwanie na ustabilizowanie się prądu silnika 1 na poziomie 1,1In po czym nastąpi
- uruchomienie silnika 2 na bieg 1
- */
- while(skalowanie1 >= 1.10)
- {
- if(digitalRead(przycisk_wylacz) == HIGH) return;
- skalowanie1 = getADCValue();
- if(skalowanie1 <=1.10) break;
- }
- Serial.println("Uwaga! Rozruch Przenośnika 2");
- digitalWrite(przekaznik7, HIGH); //zgodny kierunek jazdy przenosnika 2
- digitalWrite(przekaznik5, HIGH); //załącz przekaźnik 5, uruchamiający silnik 2 na bieg 1
- stansilnika2 = true;
- Serial.println("Przelaczenie biegu silnika 2 na 1 bieg");
- delay(2000);
- skalowanie2 = getADCValue2();
- /*
- Po odczytaniu wartości czekamy, aż prąd spadnie do wartości 1,1In i nastąpi przełączenie
- silnika 2 na bieg 2
- */
- while(skalowanie2 >= 1.10)
- {
- if(digitalRead(przycisk_wylacz) == HIGH) return;
- skalowanie2 = getADCValue2();
- if(skalowanie2 <=1.10) break;
- }
- digitalWrite(przekaznik5, LOW); // rozłącz przekaźnik 5, w celu umożlwienia zmiany biegu
- digitalWrite(przekaznik6, HIGH); // zaczącz przekaźnik 6, uruchamiający silnik 2 na bieg 2
- Serial.println("Przelaczenie na 2 bieg silnika 2");
- delay(1000);
- Serial.println("Praca ciagla");
- }
- void loop()
- {
- if(digitalRead(przycisk_wlacz) == HIGH) //wciśnięcie przycisku włącz
- {
- silnikistart();
- }
- if((stansilnika2 == true || stansilnika1 == true) && digitalRead(przycisk_wylacz) == HIGH)
- {
- silnikistop();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement