Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- long laikas; //long kintamasis skirtas išsaugoti kiek laiko eina ultragarso signalas
- int atstumas1; //kintamasis skirtas išsaugoti koks atstumas yra iki objekto
- byte paspaustas = 0; //byte kintamasis kadangi bus išsaugoma tik 1 arba 0 kai yra paspaustas mygtukas
- byte arminta = 0; //byt kintamasis kadangi bus išsaugoma tik 1 arba 0 kai yra paspaustas atrakinimo mygtukas
- // Priskiriame kiekviena kanala mygtukui ar kitam komponentui
- #define trigPin 4
- #define echoPin 3
- #define potencas A3
- #define smugis_in 2
- #define atrakinti 6
- #define uzrakinti 9
- #define led1 8
- #define led2 12
- #define rele1 11
- #define rele2 10
- void setup() {
- //čia nustatome ar prikirtas kanalas yra išėjimas ar įėjimas
- pinMode(trigPin, OUTPUT);
- pinMode(echoPin, INPUT);
- pinMode(smugis_in, INPUT_PULLUP); //smūgio daviklis
- pinMode(atrakinti, INPUT_PULLUP); //atrakinimas
- pinMode(uzrakinti, INPUT_PULLUP); //užrakinimas
- pinMode(potencas, INPUT); //potencas
- pinMode(led1, OUTPUT); //led1
- pinMode(led2, OUTPUT); //led2
- pinMode(rele1, OUTPUT); //relay1 spyna
- pinMode(rele2, OUTPUT); //relay2
- }
- void loop() {
- int atrakinta = digitalRead(atrakinti); //čia kiekvieną kartą kai įvyksta ciklas nuskaitome priskirtą mygtuko kanalą ir išsaugome į kintamajį
- int uzrakinta = digitalRead(uzrakinti);
- int smugis = digitalRead(smugis_in);
- int pot = analogRead(potencas); //čia kiekvieną kartą kai įvyksta ciklas nuskaitome priskirtą potenciometro kanalą ir išsaugome į kintamajį
- int pot2 = map(pot, 0, 1021, 0, 1500); //čia potenciometro reikšmes konvertuojame į savo norimą atstumo diapazoną
- 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
- paspaustas = 1;
- digitalWrite(led2, HIGH); //led
- digitalWrite(rele1, HIGH); //rele spynos
- mirkt(2);
- }
- 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
- paspaustas = 0;
- mirkt(1);
- digitalWrite(led1, LOW);
- digitalWrite(rele1, LOW); //rele spynos
- digitalWrite(rele2, LOW); //rele signalizacijos ir registratoriaus
- digitalWrite(led2, LOW);
- arminta = 0;
- }
- 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ų
- atstumas(); //žiurime koks atstumas iki daikto
- 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
- digitalWrite(led1, HIGH);
- digitalWrite(rele2, HIGH);
- }
- }
- }
- void atstumas() { //čia mes skaičiuojame kiek laiko keliauja ultragarsas ir tą laiką konvertuojame į atstumą
- digitalWrite(trigPin, LOW);
- delayMicroseconds(2);
- digitalWrite(trigPin, HIGH);
- delayMicroseconds(10);
- digitalWrite(trigPin, LOW);
- laikas = pulseIn(echoPin, HIGH);
- atstumas1 = laikas * 0.034 / 2; //atstumo skaiciavimas
- }
- void mirkt(int kiek) //mirksėjimo sąlyga, įrašę mirkt(x), led lemputė sumirksi x kartų, tai supaprastina kodo rašymą
- {
- for (int x = 0; x < kiek; x++) {
- digitalWrite(led1, LOW);
- delay(100);
- digitalWrite(led1, HIGH);
- delay(100);
- digitalWrite(led1, LOW);
- delay(100);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement