İçeri giren yabancı birisini ultrasonik sensör (hc-sr04) kullanarak tespit edeceğiz ve uyarımızı yapacağız.
Bu proje çok yönlüdür ve çeşitli şekillerde kullanılabilir ve uyarlanabilir. Ultrasonik sensör mesafeyi tanımlayabildiğinden, örneğin, bir alanı tanımlamak ve bu çevre ihlal edildiğinde bir alarmı tetiklemek için kullanabilirsiniz. Hc-sr04 bir radara benzer şekilde çalışır: ultrasonik bir sinyal gönderir. Bu sinyal bir nesneye çarptığında, bir yankı gibi geri seker ve yankı sensöre dönene kadar geçen süre mesafeyi hesaplamak için kullanılır. Arduino bu hesaplamayı bir olayı tetiklemek için alınan değere bağlı olarak kullanabilir.
Bu projede, algılayıcı önceden tanımlanmış bir alanda herhangi birini tespit ettiğinde, kırmızı LED yanacak ve servo kolu hareket edecektir. Bu projeyi, davetsiz misafir algılandığında, bir güvenlik sistemi düğmesine basmak veya bir kapıyı kilitlemek gibi farklı bir olayı tetiklemek için uyarlayabilirsiniz. Daha dostça bir senaryoda, mesafeyi çok yaklaştırabilirsiniz; böylece elinizi sensörün önünde salladığınızda, servo şeker ya da oyuncak gibi bir nesneyi bırakmak için bir düğmeye basabilir.
Bir nesne tetikleme mesafesi içindeyse, kırmızı LED yanacaktır ve servo 45 derece hareket edecektir. Bu örnekte, 15 cm'lik bir mesafe içinde bir şey algılanırsa, bir sonraki kod bloğu çalışacaktır. "if (mesafe <= 15)" kod satırında 15 değerini değiştirerek daha uzak veya yakındaki durumu kontrol edebilirsiniz.
Sensördeki Trig pini Arduino pini 12'ye bağlanmıştır ve ultrasonik bir sinyal gönderir. Sinyal bir nesneye ulaştığında, tekrar modüle geri döner ve bu yansıyan sinyal Arduino pin 13'e gönderilir. İki sinyal arasındaki zaman farkı bize mesafeyi okumamızı sağlar. Mesafe ayarlanan minimum değerden fazlaysa yeşil LED yanık kalır; değilse kırmızı LED yanar ve servo hareket eder.
#include <NewPing.h> #include <Servo.h> #define trigPin 12 #define echoPin 13 #define MAX_DISTANCE 500 NewPing sonar(trigPin, echoPin, MAX_DISTANCE); int yLed = 3; int kLed = 2; int pos = 20; Servo srv; void setup() { Serial.begin (115200); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(yLed, OUTPUT); pinMode(kLed, OUTPUT); srv.attach(9); } void loop() { int duration, mesafe, pos = 0, i; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); mesafe = (duration / 2) / 29.1; // dönen değer cm'ye dönüştürülüyor Serial.print(mesafe); Serial.println(" cm"); if (mesafe <= 15) { digitalWrite(yLed, LOW); digitalWrite(kLed, HIGH); srv.write(180); delay(450); digitalWrite(kLed, LOW); srv.write(90); delay(450); digitalWrite(kLed, HIGH); srv.write(0); delay(450); digitalWrite(kLed, LOW); srv.write(90); } else { digitalWrite(kLed, LOW); digitalWrite(yLed, HIGH); srv.write(90); } delay(450); }
IOS 15'in 10 yeni özelliği
WEBP dosyalarını Adobe Photoshop ile açma, oluşturma
Windows 10 için ücretsiz Windows File Recovery programı
Arduino uzaktan kumanda ve IR receiver ile servo motor kontrolü
Arduino LCD ekranda kayan yazı yapalım
Arduino engelden kaçan araba yapımı