Arduino Kodu ve HC-SR501 Hareket Sensörü için Video
Bu eğitimde, kızılötesi teknolojisi aracılığıyla hareketi algılamak üzere tasarlanmış HC-SR501 hareket sensörünü inceleyeceğiz. Sensör, hareket algılamaya dayalı olarak LED veya alarm gibi cihazları kontrol etmenize olanak tanıyan bir çıkış tetikleyebilir. Bu eğitimin sonunda, sensörü nasıl bağlayacağınızı ve etkili bir şekilde çalışmasını sağlamak için Arduino kodunu nasıl uygulayacağınızı net bir şekilde anlayacaksınız. (videoda 00:45'te)

Donanım Açıklaması
HC-SR501 hareket sensörü, 32 x 24 milimetre ölçülerinde, 5 ila 20 volt arasında bir voltaj aralığında çalışabilen kompakt bir modüldür. Çekirdeğinde, kızılötesi radyasyondaki değişiklikleri algılayarak hareketi tespit eden LHI 778 kızılötesi sensör bulunur. Bu, onu güvenlik sistemleri ve robotik projeler dahil olmak üzere çeşitli uygulamalar için uygun hale getirir.
Bu modül üç ana pine sahiptir: güç için VCC, toprak için GND ve çıkış sinyali için OUT. Hareket algılandığında, OUT pini alarmları veya diğer cihazları tetiklemek için kullanılabilen yüksek bir sinyal (3,3 volt TTL) gönderir. Sensör ayrıca, özel ihtiyaçlarınıza göre çalışmasını özelleştirmenize olanak tanıyan ayarlanabilir hassasiyet ve zaman gecikmesi ayarlarına sahiptir.
Veri Sayfası Ayrıntıları
| Üretici | HC-SR501 |
|---|---|
| Parça numarası | HC-SR501 |
| Mantık/G/Ç voltajı | 3,3 V |
| Besleme voltajı | 5–20 V |
| Çıkış akımı (kanal başına) | ≤ 20 mA |
| Tepe akımı (kanal başına) | ≤ 50 mA |
| PWM frekansı kılavuzu | Uygulanamaz |
| Giriş mantık eşikleri | 0,8 V (DÜŞÜK), 2,0 V (YÜKSEK) |
| Voltaj düşümü / RDS(on) / doyum | 0,1 V |
| Termal sınırlar | 0°C ila 70°C |
| Paket | Modül |
| Notlar / varyantlar | Ayarlanabilir hassasiyet ve zaman gecikmesi |
- Doğru güç kaynağı voltajını (5-20 V) sağlayın.
- Akımı sınırlamak için LED'lerle seri bir direnç kullanın.
- Algılama menzili için hassasiyet potansiyometresini ayarlayın.
- Çıkışın ne kadar süre yüksek kalacağını kontrol etmek için zaman gecikmesini ayarlayın.
- Yüzen girişlere dikkat edin; gerektiğinde pull-up veya pull-down dirençleri kullanın.
Bağlantı Talimatları

HC-SR501 hareket sensörünü bağlamak için, VCC pinini Arduino'daki 5V çıkışına bağlayarak başlayın. Ardından, GND pinini Arduino'daki toprağa (GND) bağlayın. OUT pini, hareket algılama sinyalini okuyacak olan Arduino'daki dijital pin 2'ye bağlanmalıdır.
Görsel geri bildirim için bir LED kullanıyorsanız, LED'in anotunu (uzun pin) Arduino'daki dijital pin 8'e bağlayın. Katot (kısa pin), 680 ohm'luk bir direncin bir ucuna bağlanmalı ve direncin diğer ucu toprağa gitmelidir. Bu kurulum, Arduino'nun hareket algılamaya dayalı olarak LED'i kontrol etmesini sağlar.
Kod Örnekleri ve Açıklaması
Bu kurulum için Arduino kodu, seri monitörü başlatır ve giriş ve çıkış pinlerini yapılandırır. Koddaki anahtar tanımlayıcılar, hareket sensörünün durumunu saklayan motion ve girişi okumak ve LED'i kontrol etmek için kullanılan dijital pinleri içerir.
void setup() {
Serial.begin(9600);// bilgileri görüntülemek için Seri Monitörü kurun
pinMode(2, INPUT);// Sensörden giriş
pinMode(8, OUTPUT);// Alarm veya LED'e ÇIKIŞ
}
Bu alıntıda, setup() işlevi seri iletişimi başlatır ve sensör ile LED için pin modlarını ayarlar. Pin 2, hareket sensörünün çıkışını okumak için giriş olarak ayarlanırken, pin 8 LED'i kontrol etmek için çıkış olarak ayarlanır.
void loop() {
int motion = digitalRead(2);
if(motion){
Serial.println("Hareket algılandı");
digitalWrite(8, HIGH);
}else{
Serial.println("===hiçbir şey hareket etmiyor");
digitalWrite(8, LOW);
}
delay(500);
}
Bu kod parçası, programın hareket sensörünün durumunu sürekli olarak kontrol ettiği ana döngüyü temsil eder. Hareket algılanırsa, seri monitöre "Hareket algılandı" yazdırır ve LED'i yakar. Hareket algılanmazsa, "===hiçbir şey hareket etmiyor" yazdırır ve LED'i kapatır.
Gösterim / Beklentiler
Kurulum tamamlandığında ve kod Arduino'ya yüklendiğinde, HC-SR501 sensörü tarafından hareket algılandığında LED'in yanmasını beklemelisiniz. Ayrıca, seri monitör hareketin algılanıp algılanmadığını belirten mesajlar görüntüleyecektir. Sensördeki hassasiyet ve zaman gecikmesi ayarlarını yaparsanız, sensörün harekete ne kadar hızlı tepki verdiğinde değişiklikler fark edebilirsiniz (videoda 05:30'da).
Yaygın tuzaklar arasında, VCC ve GND bağlantılarını ters çevirmek gibi yanlış kablolama yer alır ve bu sensöre zarar verebilir. Yüzen girişleri önlemek için sensörün çıkış pininin Arduino'daki belirlenmiş giriş pinine doğru şekilde bağlandığından emin olun.
Video Zaman Damgaları
- 00:00 Giriş
- 00:45 Donanıma Genel Bakış
- 02:30 Bağlantı Talimatları
- 04:00 Kod Açıklaması
- 05:30 Gösterim
/*
* This is the Arduino code for HC-SR501 Motion Sensor
* to detect motion of humans or objects using Arduino for robotic car and other applications
* Watch the video https://youtu.be/mZCJNOf69JI
*
* Written by Ahmad Shamshiri for Robojax Video
* Date: Dec 27, 2017, in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purposes only.
*
*/
void setup() {
Serial.begin(9600);// setup Serial Monitor to display information
pinMode(2, INPUT);// Input from sensor
pinMode(8, OUTPUT);// OUTPUT to alarm or LED
}
void loop() {
int motion =digitalRead(2);
if(motion){
Serial.println("Motion detected");
digitalWrite(8,HIGH);
}else{
Serial.println("===nothing moves");
digitalWrite(8,LOW);
}
delay(500);
}
Kaynaklar ve referanslar
Henüz kaynak yok.
Dosyalar📁
Diğer dosyalar
-
HC-SR501 hareket sensörü LHI778 kılavuzu
robojax-HC-SR501-motion-LHI778-manual.pdf0.20 MB