Otomatik kapı maketi, bir mesafe ya da hareket sensörü, servo motor ve Arduino ile yapılır. HC-SR04 sensörü 20 cm'den yakın bir cisim görünce Arduino servoyu 90° çevirip kapıyı açar. Cisim uzaklaştıktan 3 saniye sonra servo 0°'ye döner ve kapı kapanır.
Marketlerin girişindeki kapılar siz yaklaşınca kendiliğinden açılır. Bu yazıda aynı fikri küçük bir maketle yapıyoruz. Arduino Uno, HC-SR04 mesafe sensörü ve SG90 servo motorla kapı, bir cisim yaklaşınca açılıyor ve birkaç saniye sonra kapanıyor. Mesafe eşiğini ve açık kalma süresini nasıl ayarlayacağınızı da anlatıyoruz.
Otomatik kapı nedir?
Otomatik kapı, bir sensör birinin yaklaştığını algıladığında motorla kendiliğinden açılan ve bir süre sonra kapanan bir kapıdır. Her otomatik kapıda üç bölüm vardır: algılayan sensör, karar veren denetleyici ve kapıyı hareket ettiren motor. Bizim maketimizde bunlar HC-SR04, Arduino Uno ve SG90 servodur.
Gerçek kapılarda genellikle mikrodalga radar ya da kızılötesi sensör kullanılır. Ayrıca kapı kapanırken araya biri girerse kapıyı durduran güvenlik sensörleri bulunur. Maketimiz bu sistemin basit bir modelidir.
HC-SR04 mü PIR sensör mü kullanılmalı?
Kapının belirli bir mesafede açılmasını istiyorsanız HC-SR04, yalnızca hareketi algılamak yetiyorsa PIR sensör kullanın. HC-SR04 mesafeyi santimetre olarak ölçer ve eşiği koddan ayarlarsınız. PIR sensör ise insan vücudunun yaydığı ısının (kızılötesi ışınım) değişimini algılar.
| Özellik | HC-SR04 ultrasonik | HC-SR501 PIR |
|---|---|---|
| Neyi algılar? | Her cismi (el, kutu, kitap) | Hareket eden sıcak cisimleri (insan, hayvan) |
| Çıkış | Mesafe (yankı süresi) | Var / yok (HIGH / LOW) |
| Menzil | Yaklaşık 2-400 cm | Birkaç metre, kartın üzerinden ayarlı |
| Eşik ayarı | Koddan, santimetre olarak | Kartın üzerindeki vidadan |
| Hazır olma | Hemen | Açılışta yaklaşık 1 dakika ısınma |
| Maket için | Elle denemesi kolay | Oyuncak bebekle çalışmaz |
Maket için HC-SR04 daha kullanışlıdır, çünkü elinizi ya da bir oyuncağı yaklaştırarak deneyebilirsiniz. Sensörün çalışma ilkesini HC-SR04 ultrasonik sensör yazısında, PIR'ı PIR hareket sensörü yazısında anlattık.
Hangi malzemeler gerekir?
Otomatik kapı maketi için bir Arduino Uno, HC-SR04 sensör, SG90 servo motor, breadboard ve jumper kablo yeterlidir. Kapı ve duvarlar için karton ya da köpük levha kullanabilirsiniz.
Malzeme listesi
| Malzeme | Adet | Ne işe yarar? |
|---|---|---|
| Arduino UNO R3 | 1 | Mesafeyi okur, kapıyı açıp kapatmaya karar verir |
| HC-SR04 ultrasonik mesafe sensörü | 1 | Kapıya yaklaşan cismin mesafesini ölçer |
| SG90 mini servo motor | 1 | Kapıyı 0° ile 90° arasında döndürür |
| HC-SR501 PIR hareket sensörü | 1 | İsteğe bağlı; insan hareketini algılar |
| 830 pin breadboard | 1 | Lehimsiz bağlantı yapılır |
| Erkek-dişi jumper kablo | 8-10 | Sensörü ve servoyu karta bağlar |
Otomatik kapı adım adım nasıl yapılır?
Otomatik kapı, önce karton maket hazırlanıp servo kapı menteşesine yerleştirilerek, sonra sensör ve servo Arduino'ya bağlanıp kod yüklenerek yapılır. Bağlantıyı yaparken USB kablosu takılı olmasın.
- Karton ya da köpük levhadan bir duvar ve yaklaşık 8 x 12 cm'lik hafif bir kapı kesin.
- Servoyu duvara, mili yukarı bakacak şekilde sıcak silikonla yapıştırın. Servo kolunu kapının menteşe tarafına yapıştırın.
- HC-SR04'ü kapının önüne, yaklaşanı görecek şekilde yerleştirin.
- HC-SR04 bağlantısı: VCC → 5V, Trig → D9, Echo → D10, GND → GND.
- Servo bağlantısı: kırmızı → 5V, kahverengi → GND, turuncu (sinyal) → D6.
- Aşağıdaki kodu yükleyin. Servo önce 0°'ye (kapalı) döner.
#include <Servo.h>
const byte TRIG = 9, ECHO = 10, SERVO_PIN = 6;
const int ESIK_CM = 20; // bu mesafeden yakınsa kapı açılır
const int KAPALI = 0, ACIK = 90; // servo açıları
const unsigned long ACIK_SURE = 3000; // son görülmeden sonra 3 s açık kalır
Servo kapi;
bool acik = false;
unsigned long sonGorulme = 0;
long mesafe() {
digitalWrite(TRIG, LOW); delayMicroseconds(2);
digitalWrite(TRIG, HIGH); delayMicroseconds(10);
digitalWrite(TRIG, LOW);
long sure = pulseIn(ECHO, HIGH, 30000); // en çok 30 ms bekle
if (sure == 0) return 999; // yankı yok: uzakta
return sure / 58; // mikrosaniye -> cm
}
void setup() {
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
kapi.attach(SERVO_PIN);
kapi.write(KAPALI);
Serial.begin(9600);
}
void loop() {
long cm = mesafe();
Serial.println(cm);
if (cm < ESIK_CM) {
sonGorulme = millis();
if (!acik) { kapi.write(ACIK); acik = true; }
}
if (acik && millis() - sonGorulme > ACIK_SURE) {
kapi.write(KAPALI);
acik = false;
}
delay(60);
}
Kod her 60 ms'de bir mesafe ölçer. HC-SR04 ses dalgası gönderir ve yankının dönüş süresini ölçer. Ses havada yaklaşık 343 m/s hızla gider; süre mikrosaniye olarak 58'e bölününce gidiş-dönüş hesaba katılmış mesafe santimetre olarak bulunur. Örneğin 1.160 µs süre 1.160 / 58 = 20 cm demektir. Servonun çalışmasını servo motor nedir yazısında anlattık.
Kapı ne zaman açılıp kapanır?
Kapı, ölçülen mesafe 20 cm'nin altına düşünce açılır ve cisim en son görüldükten 3 saniye sonra kapanır. Bu iki sayı koddaki ESIK_CM ve ACIK_SURE değerleridir. Cisim kapının önünde durdukça sonGorulme zamanı yenilenir; böylece kapı birinin üzerine kapanmaz.
- Mesafe eşiği: 20 cm bir maket için uygundur. Eşiği büyütürseniz kapı daha uzaktan açılır, ama yandan geçen cisimler de kapıyı açabilir.
- Açık kalma süresi: 3.000 ms = 3 saniyedir. Gerçek kapılarda birkaç saniye kullanılır. Çok kısa süre, yavaş geçen birinin önünde kapının kapanmasına neden olur.
- Açılma açısı: 90° kapıyı tam açar. Servo kolu ters takıldıysa
KAPALIveACIKdeğerlerini yer değiştirin.
PIR sensörü kullanmak isterseniz OUT ucunu D2'ye, VCC'yi 5V'a, GND'yi GND'ye bağlayın. Koddaki cm < ESIK_CM koşulunu digitalRead(2) == HIGH yapın ve setup() içine pinMode(2, INPUT); ekleyin. Açılıştan sonra yaklaşık bir dakika bekleyin.
Hangi güvenlik kurallarına dikkat edilmeli?
Maket 5 V ile çalıştığı için güvenlidir; yine de şu kurallara uyun:
- Devreyi yalnızca bilgisayarın USB çıkışından ya da USB powerbank'tan besleyin. 220V şebeke elektriğine hiçbir şey bağlamayın.
- Maket kesimini ve sıcak silikon işini bir yetişkin gözetiminde yapın; maket bıçağı ve silikon tabancası yaralayabilir.
- Servo dönerken parmağınızı kapı ile duvar arasına sokmayın.
- Servo titriyor ya da Arduino yeniden başlıyorsa servoyu 4 kalem pilden (6 V) besleyin ve pilin eksisini Arduino GND'sine bağlayın. Pili ters takmayın, kısa devre etmeyin.
- Kapıyı hafif tutun. Ağır kapı servoyu zorlar, ısıtır ve dişlilerini bozabilir.
Ödevinizi nasıl sunarsınız?
Ödevinizi, maketi çalıştırıp eşik mesafesi ile açık kalma süresinin etkisini ölçümlerle göstererek sunabilirsiniz.
- Problem: "Kapı, insanlar elleriyle dokunmadan nasıl açılabilir?" Bunun hijyen ve engelli erişimi için önemini anlatın.
- Ölçüm: Bir cetvelle elinizi farklı mesafelerde tutun. Seri Monitör'deki değerle cetveli karşılaştırıp bir tabloya yazın.
- Deney: Eşiği 10, 20 ve 40 cm yapın. Her birinde kapının ne kadar sık gereksiz açıldığını sayın.
- Karşılaştırma: Aynı maketi PIR sensörle deneyin; iki sensörün iyi ve zayıf yönlerini yazın.
Sunumda maketin önüne bir yol ve küçük bir "giriş" tabelası koyun. Dinleyicilerin elini yaklaştırmasına izin verin. Daha güçlü servolar için servo motorlar kategorisine bakabilirsiniz.
Sık sorulan sorular
Servo neden titriyor?
Servo genellikle beslemesi yetmediği için titrer. SG90 dönmeye başlarken kısa süreli yüksek akım çeker; USB'den beslenen Arduino'nun 5V pini bunu her zaman karşılayamaz. Servoyu 4 kalem pilden ayrı besleyin ve GND'leri birleştirin. Kapı ağırsa ya da menteşe sıkışıyorsa da servo zorlanır; kapıyı hafifletip menteşeyi serbest bırakın.
HC-SR04 neden yanlış mesafe gösteriyor?
HC-SR04, ses dalgası cisimden kendisine geri yansımazsa yanlış değer gösterir. Yumuşak kumaş, köşeli ya da eğik yüzeyler sesi başka yöne yansıtabilir. Sensör 2 cm'den yakın cisimleri de ölçemez. Sensörün önünü açık tutun, düz yüzeyli bir cisimle deneyin ve kabloların sağlam takıldığını kontrol edin. Koddaki 999 değeri, yankı alınamadığını gösterir.
Kapının açık kalma süresi nasıl değiştirilir?
Kapının açık kalma süresi, koddaki ACIK_SURE değeri değiştirilerek ayarlanır. Değer milisaniye cinsindendir: 3000 yazarsanız 3 saniye, 5000 yazarsanız 5 saniye açık kalır. Süre, cismin en son görüldüğü andan itibaren sayılır. Bu yüzden kapının önünde biri beklerken kapı kapanmaz. Değeri değiştirdikten sonra kodu yeniden yükleyin.
PIR sensör neden sürekli tetikleniyor?
PIR sensör, açıldıktan sonraki ilk dakikada ya da önünde ısı değişimi olduğunda sürekli tetiklenebilir. Sensörü güneş ışığından, kalorifer ve klimadan uzak tutun. Kartın üzerinde iki ayar vidası bulunur: biri hassasiyeti, diğeri çıkışın HIGH kalma süresini ayarlar. Hassasiyeti azaltıp süreyi kısaltarak deneyin. Sensörü açtıktan sonra yaklaşık bir dakika bekleyin.
Gerçek bir kapıya takılabilir mi?
Hayır, bu proje gerçek bir kapı için uygun değildir. SG90 yalnızca hafif maket kapıları çevirebilir. Gerçek otomatik kapılarda güçlü motorlar, şebeke elektriği ve sıkışmayı önleyen güvenlik sensörleri bulunur. Bu sistemleri yalnızca yetkili teknisyenler kurar. Projenizi maket üzerinde tutun ve gerçek kapıdaki güvenlik önlemlerini sunumunuzda anlatın.
Özet
- Otomatik kapının üç bölümü vardır: sensör, denetleyici ve motor.
- HC-SR04 mesafeyi ölçer; PIR yalnızca hareketi algılar.
- Bağlantı: Trig D9, Echo D10, servo sinyali D6; hepsi 5V ve GND ile beslenir.
- Kapı 20 cm'den yakın cisimde 90° açılır, cisim gidince 3 saniye sonra kapanır.
- Servo titriyorsa ayrı pille besleyin; maket işini yetişkin gözetiminde yapın.
- Ödevde eşik mesafesi ve sensör türünü deneyerek karşılaştırın.
