// C++ code /* Bariyer Sistemi v1 HC-SR-04 Ultrasonic Distance Sensor Ses havada ortalama 340 m/sn hızla ilerler. Bu da 34000 cm/sn demektir. Bu 34 cm/milisn'ye eşittir. Ölçümlerimizi Arduino'da mikrosaniye cinsinden yaptığımız için 0.034 cm/mikrosaniye bizim için birim değerimizdir. */ #define trigPin 13 #define echoPin 8 #include <Servo.h> Servo servom; float mesafe; long sure; bool mesafeSensor=true; char deger; void setup() { pinMode(7, OUTPUT); digitalWrite(7,1); pinMode(12, OUTPUT); pinMode(2, INPUT); pinMode(4, INPUT); pinMode(trigPin,OUTPUT); //Trig pinMode(echoPin,INPUT); //Eco servom.attach(15); Serial.begin(9600); } void loop() { if(digitalRead(2)){ mesafeSensor=true; digitalWrite(7,1); digitalWrite(12,0); } if(digitalRead(4)){ mesafeSensor=false; digitalWrite(7,0); digitalWrite(12,1); } if(mesafeSensor==true){ mesafeOlc(); if(mesafe<20){ servom.write(90); } else{ servom.write(0); } } else{ deger=Serial.read(); if(deger=='a'){ servom.write(90); } if(deger=='k'){ servom.write(0); } } } void mesafeOlc(){ digitalWrite(trigPin, LOW); delayMicroseconds(2); // 2 mikro saniye bekle digitalWrite(trigPin, HIGH); delayMicroseconds(10); //tetik pini 10 mikrosaniye boyunca ses dalgası yayınlıyor. digitalWrite(trigPin, LOW); // ses yayınını bitir. sure=pulseIn(echoPin,HIGH); //süre sesin gidiş geliş süresi.Bu nedenle hesaplamada 2'ye bölmeliyiz. mesafe= (sure/2)*0.034; // 340 m/sn = 0.034 cm/mikrosn }