Kod Ara

HC-SR505 hareket sensörü modülü ve röle için Arduino kodu ve video

HC-SR505 hareket sensörü modülü ve röle için Arduino kodu ve video

Bu eğitimde, HC-SR505 hareket sensörü ve bir röle modülü kullanarak bir hareket algılama sistemi kuracağız. Bu kurulum, hareket algılandığında ışıklar veya ziller gibi cihazları açmanıza olanak tanır. Röle, yüksek voltajlı cihazları güvenli bir şekilde kontrol etmek için bir anahtar görevi görür. Bu kılavuzun sonunda, hareket algılamaya dayalı olarak çeşitli cihazları etkinleştirebilen işlevsel bir hareket sensörü kurulumuna sahip olacaksınız. Daha net bir anlayış için, ilgili videoyu (videoda 0:00'da) kontrol ettiğinizden emin olun.

HC-SR505 motion sensor

Donanım Açıklaması

Bu projenin ana bileşenleri HC-SR505 hareket sensörü, bir röle modülü ve bir Arduino kartı içerir. HC-SR505, kızılötesi radyasyondaki değişiklikleri algılayarak hareketi tespit eden pasif bir kızılötesi (PIR) sensördür. Görüş alanındaki nesnelerin yaydığı ısıyı ölçerek çalışır. Hareket eden bir nesne algılandığında, sensör Arduino'ya bir sinyal gönderir.

Röle modülü, bir ampul gibi yüksek voltajlı bir cihazı kontrol etmek için kullanılır. Elektrikle çalışan bir anahtar görevi görerek Arduino'nun cihazı güvenli bir şekilde açıp kapatmasını sağlar. Rölenin iki ana konfigürasyonu vardır: normalde açık (NO) ve normalde kapalı (NC), bunlar röle etkinleştirilmediğinde varsayılan durumu belirler.

Veri Sayfası Detayları

ÜreticiHC-SR505
Parça numarasıHC-SR505
Mantık/G/Ç voltajı3.3V - 20V
Besleme voltajı5V
Çıkış akımı (kanal başına)20 mA
Tepe akımı (kanal başına)100 mA
PWM frekansı yönergesiYok
Giriş mantık eşikleri0.3V (düşük) / 2.5V (yüksek)
Voltaj düşümü / RDS(on) / doyum0.2V
Termal sınırlar+70 °C
PaketModül
Notlar / varyantlarKüçük form faktörü; düşük güç tüketimi

  • Yüksek akımlı yükler için uygun ısı dağılımını sağlayın.
  • Stabil güç kaynağı için dekuplaj kapasitörleri kullanın.
  • Yüksek voltaj bağlantılarında dikkatli olun; güvenliği sağlayın.
  • Rölelere bağlamadan önce sensörü basit çıkışlarla test edin.
  • Optimum algılama için PIR sensörünün yönünü kontrol edin.

Bağlantı Talimatları

Arduino wiring for  HC-SR505 motion sensor
Arduino wiring for HC-SR505 motion sensor

HC-SR505 hareket sensörünü bağlamak için önce güç pinini (+) olarak işaretli olanı Arduino'nuzdaki 5V çıkışına bağlayın. Ardından, toprak pinini (-) olarak işaretli olanı Arduino'nun toprak pinlerinden birine bağlayın. Sinyal pini (orta pin) Arduino üzerindeki dijital pin 2'ye bağlanmalıdır.

Röle modülü için VCC pinini Arduino'daki 5V çıkışına ve toprak pinini Arduino'nun toprağına bağlayın. Rölenin giriş pini Arduino üzerindeki dijital pin 9'a bağlanmalıdır. Son olarak, zilin pozitif terminalini dijital pin 8'e ve negatif terminalini toprağa bağlayın. Cihazınızı kontrol etmek için rölenin ortak ve normalde açık pinlerini uygun şekilde bağladığınızdan emin olun.

Kod Örnekleri ve Açıklama

Bu projenin kodu, sensör, zil ve röle için pinleri başlatır. Hareketi kontrol etmek için digitalRead() fonksiyonunu kullanır ve buna göre yanıt verir. Aşağıda kurulum fonksiyonundan bir alıntı bulunmaktadır:


void setup() {
  Serial.begin(9600); // Seri Monitörü kur
  pinMode(PIR, INPUT_PULLUP); // pini sensör için Giriş olarak tanımla
  pinMode(BUZZER, OUTPUT); // pini zil için ÇIKIŞ olarak tanımla
  pinMode(RELAY, OUTPUT); // pini röle için ÇIKIŞ olarak tanımla
}

Bu alıntıda, pinler giriş veya çıkış moduna ayarlanır. Serial.begin(9600) hata ayıklama için seri iletişimi başlatır.

Ana döngü hareketi kontrol eder ve hareket algılandığında zili ve röleyi etkinleştirir. İşte döngü fonksiyonundan odaklanmış bir alıntı:

Wirig relay module to AC load

void loop() {
  int motion = digitalRead(PIR); // sensörü oku
  if(motion) {
    Serial.println("Hareket algılandı");
    digitalWrite(BUZZER, HIGH); // zili AÇ
    digitalWrite(RELAY, LOW); // röleyi AÇ
  } else {
    Serial.println("===hiçbir şey hareket etmiyor");
    digitalWrite(BUZZER, LOW); // zili KAPALI tut
    digitalWrite(RELAY, HIGH); // röleyi KAPAT
  }
  delay(500);
}

Bu alıntı, PIR sensörünün durumunu okur ve algılanan harekete göre zili ve röleyi etkinleştirir veya devre dışı bırakır. 500 milisaniyelik gecikme, döngünün sensörü makul bir aralıkta kontrol etmesini sağlar.

Gösterim / Ne Beklemeli

Hareket algılandığında, röleye bağlı ışık yanacak ve zil çalacaktır. Hareket algılanmazsa, röle ışığı kapatacak ve zil sessiz kalacaktır. HC-SR505'in, hareket algılandıktan sonra çıkışı kısa bir süre (8 saniyeye kadar) aktif tutan ve ayarlanamayan yerleşik bir gecikmeye sahip olduğunu unutmayın (videoda 5:30'da).

Video Zaman Damgaları

  • 00:00 – Projeye giriş
  • 01:30 – Bileşenlerin açıklaması
  • 03:15 – Bağlantı talimatları
  • 05:30 – Kod açıklaması
  • 07:00 – Kurulumun gösterimi

Görseller

Wirig relay module to AC load
Wirig relay module to AC load
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
Arduino wiring for  HC-SR505 motion sensor
Arduino wiring for HC-SR505 motion sensor
74-This is the Arduino code for the HC-SR505 motion sensor (small) with relay.
Dil: C++
/*
 * This is the Arduino code for HC-SR501 Motion Sensor
 * to detect motion of human or objects using Arduino for robotic car and other applications
 * Watch HC-SR505 video https://youtu.be/qhThpxiXubI
 * 
// Written by Ahmad S. for Robojax.com on 
// February 10, 2018 at 11:41 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.
 * 
 */


#define PIR 2 // define pin 2 for sensor
#define BUZZER 8 // define pin 8 as for buzzer
#define RELAY 9 // define pin 9 as for relay

void setup() {
  // HC-SR505 Motion Sensor Code by Robojax.com 20180210
  Serial.begin(9600);// setup Serial Monitor to display information
  pinMode(PIR, INPUT_PULLUP);// define pin as Input sensor
  pinMode(BUZZER, OUTPUT);// define pin as OUTPUT for buzzer or LED
  pinMode(RELAY, OUTPUT);// define pin as OUTPUT for relay
}

void loop() {
  // HC-SR505 Motion Sensor Code by Robojax.com 20180210
  int motion =digitalRead(PIR);// read the sensor 
  if(motion){
    Serial.println("Motion detected");
    digitalWrite(BUZZER,HIGH);// turn the buzzer ON
    digitalWrite(RELAY,LOW);// turn the relay ON
  }else{
     Serial.println("===nothing moves");
     digitalWrite(BUZZER,LOW);// keep the buzzer OFF
     digitalWrite(RELAY,HIGH);// turn the relay OFF
  }
  delay(500);
 // HC-SR505 Motion Sensor Code by Robojax.com 20180210
}

İhtiyacın olabileceğini düşünüyor

Kaynaklar ve referanslar

Henüz kaynak yok.

Dosyalar📁

Veri Sayfası (pdf)

Fritzing Dosyası