Advertisement
Guest User

Untitled

a guest
May 21st, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3. long laikas; //long kintamasis skirtas išsaugoti kiek laiko eina ultragarso signalas
  4.  
  5. int atstumas1; //kintamasis skirtas išsaugoti koks atstumas yra iki objekto
  6.  
  7. byte paspaustas = 0; //byte kintamasis kadangi bus išsaugoma tik 1 arba 0 kai yra paspaustas mygtukas
  8. byte arminta = 0; //byt kintamasis kadangi bus išsaugoma tik 1 arba 0 kai yra paspaustas atrakinimo mygtukas
  9.  
  10. // Priskiriame kiekviena kanala mygtukui ar kitam komponentui
  11.  
  12. #define trigPin 4
  13. #define echoPin 3
  14.  
  15. #define potencas A3
  16. #define smugis_in 2
  17. #define atrakinti 6
  18. #define uzrakinti 9
  19. #define led1 8
  20. #define led2 12
  21. #define rele1 11
  22. #define rele2 10
  23.  
  24.  
  25. void setup() {
  26.   //čia nustatome ar prikirtas kanalas yra išėjimas ar įėjimas
  27.   pinMode(trigPin, OUTPUT);
  28.   pinMode(echoPin, INPUT);
  29.  
  30.   pinMode(smugis_in, INPUT_PULLUP); //smūgio daviklis
  31.   pinMode(atrakinti, INPUT_PULLUP); //atrakinimas
  32.   pinMode(uzrakinti, INPUT_PULLUP); //užrakinimas
  33.   pinMode(potencas, INPUT); //potencas
  34.   pinMode(led1, OUTPUT); //led1
  35.   pinMode(led2, OUTPUT); //led2
  36.   pinMode(rele1, OUTPUT); //relay1 spyna
  37.   pinMode(rele2, OUTPUT); //relay2
  38.  
  39. }
  40.  
  41. void loop() {
  42.   int atrakinta = digitalRead(atrakinti);  //čia kiekvieną kartą kai įvyksta ciklas nuskaitome priskirtą mygtuko kanalą ir išsaugome į kintamajį
  43.   int uzrakinta = digitalRead(uzrakinti);
  44.   int smugis = digitalRead(smugis_in);
  45.  
  46.   int pot = analogRead(potencas); //čia kiekvieną kartą kai įvyksta ciklas nuskaitome priskirtą potenciometro kanalą ir išsaugome į kintamajį
  47.   int pot2 = map(pot, 0, 1021, 0, 1500); //čia potenciometro reikšmes konvertuojame į savo norimą atstumo diapazoną
  48.  
  49.   if (uzrakinta == 0) { //if (jeigu) salyga kurioje žiūrime ar uzrakinimo mygtukas paspaustas, jeigu taip (uzrakinta == 0), tai tada į paspaustas kintamąjį išsaugome kad buvo paspaustas mygtukas (1) ir įjungiame rėlę, led bei sumirksiname kitą led'a
  50.     paspaustas = 1;
  51.     digitalWrite(led2, HIGH); //led
  52.     digitalWrite(rele1, HIGH); //rele spynos
  53.     mirkt(2);
  54.   }
  55.   if (atrakinta == 0) { //if (jeigu) salyga kurioje žiūrime ar atrakinimo mygtukas paspaustas, jeigu taip (atrakinta == 0), tai tada į paspaustas kintamąjį išsaugome kad buvo "atspaustas" užrakinimo mygtukas viską ką buvome įjungę (relės, led'ai) išjungiame, bei sumirksiname led'a
  56.     paspaustas = 0;
  57.     mirkt(1);
  58.     digitalWrite(led1, LOW);
  59.     digitalWrite(rele1, LOW); //rele spynos
  60.     digitalWrite(rele2, LOW); //rele signalizacijos ir registratoriaus
  61.     digitalWrite(led2, LOW);
  62.     arminta = 0;
  63.   }
  64.   if (paspaustas == 1) { //jei paspausto kintamasis == 1, t.y. tada kai yra paspaustas uzrakinimo mygtukas, mes autombolį užrakiname ir laukiame kol sureguos kažkuris iš sensorių
  65.     atstumas(); //žiurime koks atstumas iki daikto
  66.     if (smugis == 0 || atstumas1 <= pot2) { //if salyga kurioje žiurime ar sureagavo smugio sensorius arba (|| šis ženklas reiškia arba) žiūrime koks atstumas, jeigu bent viena iš sąlygų teisinga (smugio daviklis sureagavo arba atstumas yra mažesnis negu yra nustatyta su potenciometru) tada įjungiame relė signalzicaijai ir įjungiame led'a
  67.       digitalWrite(led1, HIGH);
  68.       digitalWrite(rele2, HIGH);
  69.     }
  70.   }
  71. }
  72.  
  73.  
  74. void atstumas() { //čia mes skaičiuojame kiek laiko keliauja ultragarsas ir tą laiką konvertuojame į atstumą
  75.   digitalWrite(trigPin, LOW);
  76.   delayMicroseconds(2);
  77.   digitalWrite(trigPin, HIGH);
  78.   delayMicroseconds(10);
  79.   digitalWrite(trigPin, LOW);
  80.   laikas = pulseIn(echoPin, HIGH);
  81.   atstumas1 = laikas * 0.034 / 2; //atstumo skaiciavimas
  82. }
  83.  
  84. void mirkt(int kiek) //mirksėjimo sąlyga, įrašę mirkt(x), led lemputė sumirksi x kartų, tai supaprastina kodo rašymą
  85. {
  86.   for (int x = 0; x < kiek; x++) {
  87.     digitalWrite(led1, LOW);
  88.     delay(100);
  89.     digitalWrite(led1, HIGH);
  90.     delay(100);
  91.     digitalWrite(led1, LOW);
  92.     delay(100);
  93.   }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement