Kod Ara

Arduino Kodu ve HC-SR501 Hareket Sensörü için Video

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ı

ÜreticiHC-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ılavuzuUygulanamaz
Giriş mantık eşikleri0,8 V (DÜŞÜK), 2,0 V (YÜKSEK)
Voltaj düşümü / RDS(on) / doyum0,1 V
Termal sınırlar0°C ila 70°C
PaketModül
Notlar / varyantlarAyarlanabilir 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ı

Arduino wiring for HC-SR501 Motions sensor
Arduino wiring for HC-SR501 Motions sensor

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

Görseller

HC-SR501 back
HC-SR501 back
HC-SR501 module
HC-SR501 module
Arduino wiring for HC-SR501 Motions sensor
Arduino wiring for HC-SR501 Motions sensor
48-This is the Arduino code for the HC-SR501 motion sensor.
Dil: C++
/*
 * 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