Advertisement
Guest User

Untitled

a guest
Mar 19th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.51 KB | None | 0 0
  1. #include <Servo.h>
  2.  
  3. // ovde se vezu ulazi sa releja,
  4. // znaci stavite 10 k prema zemlji sa tih pinova
  5. // i takodje povezete releje na njih, bilo bi dobro
  6. // postaviti mali kondenzator keramicki izmedju ulaza i GND
  7. #define otvoriRampu 2
  8. #define zatvoriRampu 3
  9.  
  10. // obe zelene na ovaj pin, mislim da ne treba tranzistor
  11. #define semaforZelena 4
  12.  
  13. // obe crvene na ovaj pin
  14. #define semaforCrvena 5
  15.  
  16. // definisemo pinove servo motora i njihove objekte
  17. #define servoPin1 9
  18. #define servoPin2 10
  19.  
  20. Servo servo1, servo2;
  21.  
  22. // definisimo uglove za zatvoreno, otvoreno ( prilagodite po potrebi ), i trenutni ugao
  23. #define ugaoZatvoreno 0
  24. #define ugaoOtvoreno 90
  25. byte trenutniUgao;
  26.  
  27. void setup() {
  28.   // postavimo ulaze izlaze
  29.   pinMode(otvoriRampu, INPUT);
  30.   pinMode(zatvoriRampu, INPUT);
  31.   pinMode(semaforZelena, OUTPUT);  
  32.   pinMode(semaforCrvena, OUTPUT);
  33.  
  34.   // zakacimo servo motore i vratimo ih u pocetne pozicije tj na ugao od 90
  35.   // stepeni, podesite polugice na pravi polozaj kada vidite da je odradio ovaj dio
  36.   servo1.attach(servoPin1);
  37.   servo2.attach(servoPin2);
  38.  
  39.   servo1.write(ugaoOtvoreno);
  40.   servo2.write(ugaoOtvoreno);
  41.   trenutniUgao = ugaoOtvoreno;
  42.   // postavimo stanja sijalica
  43.   digitalWrite(semaforZelena, 1);
  44.   digitalWrite(semaforCrvena, 0);
  45.  
  46.    
  47. }
  48.  
  49. void loop() {
  50.  
  51.   // provjerimo da li dobijamo signal na ulazu za zatvaranje rampe
  52.   if(digitalRead(zatvoriRampu)){
  53.     // posto koristimo induktivne senzore postoji mogucnos da ce ova
  54.     // petlja biti zakacena vise puta, tako da cemo ovo samo uraditi ako
  55.     // mjenjamo ugao semafora..
  56.     if(trenutniUgao != ugaoZatvoreno){
  57.       // promjenimo semafor
  58.       digitalWrite(semaforCrvena, 1);
  59.       digitalWrite(semaforZelena, 0);
  60.       // postavimo servo u zatvorenu poziciju
  61.       servo1.write(ugaoZatvoreno);
  62.       servo2.write(ugaoZatvoreno);
  63.       trenutniUgao = ugaoZatvoreno;
  64.     }
  65.    
  66.   }
  67.   // provjerimo da li dobijamo signal na ulazu za otvaranje rampe
  68.   if(digitalRead(otvoriRampu)){
  69.      // posto koristimo induktivne senzore postoji mogucnos da ce ova
  70.     // petlja biti zakacena vise puta, tako da cemo ovo samo uraditi ako
  71.     // mjenjamo ugao semafora..
  72.     if(trenutniUgao != ugaoOtvoreno){
  73.       // promjenimo semafor
  74.       digitalWrite(semaforCrvena, 0);
  75.       digitalWrite(semaforZelena, 1);
  76.       // postavimo servo u zatvorenu poziciju
  77.       servo1.write(ugaoOtvoreno);
  78.       servo2.write(ugaoOtvoreno);
  79.       trenutniUgao = ugaoOtvoreno;
  80.     }
  81.   }
  82.   // neka program ima mali odmor
  83.   delay(50);
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement