Search Code

Kode Arduino dan video untuk modul sensor gerak HC-SR505 dengan relay

Kode Arduino dan video untuk modul sensor gerak HC-SR505 dengan relay

Dalam tutorial ini, kita akan membangun sistem deteksi gerakan menggunakan sensor gerak HC-SR505 dan modul relay. Pengaturan ini akan memungkinkan Anda untuk menyalakan perangkat seperti lampu atau buzzer ketika gerakan terdeteksi. Relay berfungsi sebagai saklar untuk mengontrol perangkat bertegangan tinggi dengan aman. Di akhir panduan ini, Anda akan memiliki pengaturan sensor gerak yang berfungsi yang dapat mengaktifkan berbagai peralatan berdasarkan deteksi gerakan. Untuk pemahaman yang lebih jelas, pastikan untuk menonton video terkait (di video pada 0:00).

HC-SR505 motion sensor

Penjelasan Perangkat Keras

Komponen utama dari proyek ini termasuk sensor gerak HC-SR505, modul relay, dan papan Arduino. HC-SR505 adalah sensor inframerah pasif (PIR) yang mendeteksi gerakan dengan merasakan perubahan radiasi inframerah. Sensor ini bekerja dengan mengukur panas yang dipancarkan oleh objek dalam bidang pandangnya. Ketika objek bergerak terdeteksi, sensor mengirimkan sinyal ke Arduino.

Modul relay digunakan untuk mengontrol perangkat bertegangan tinggi, seperti bola lampu. Relay bertindak sebagai saklar yang dioperasikan secara elektrik, memungkinkan Arduino untuk menyalakan atau mematikan perangkat dengan aman. Relay memiliki dua konfigurasi utama: normally open (NO) dan normally closed (NC), yang menentukan keadaan default ketika relay tidak diaktifkan.

Detail Datasheet

ProdusenHC-SR505
Nomor bagianHC-SR505
Tegangan logika/IO3.3V - 20V
Tegangan suplai5V
Arus keluaran (per saluran)20 mA
Arus puncak (per saluran)100 mA
Panduan frekuensi PWMT/A
Ambang logika masukan0.3V (rendah) / 2.5V (tinggi)
Penurunan tegangan / RDS(on) / saturasi0.2V
Batas termal+70 °C
KemasanModul
Catatan / varianFaktor bentuk kecil; konsumsi daya rendah

  • Pastikan pembuangan panas yang tepat untuk beban arus tinggi.
  • Gunakan kapasitor decoupling untuk pasokan daya yang stabil.
  • Berhati-hatilah dengan koneksi tegangan tinggi; pastikan keamanan.
  • Uji sensor dengan keluaran sederhana sebelum menghubungkan ke relay.
  • Periksa orientasi sensor PIR untuk deteksi yang optimal.

Instruksi Pengkabelan

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

Untuk menghubungkan sensor gerak HC-SR505, pertama-tama sambungkan pin daya (ditandai dengan +) ke keluaran 5V pada Arduino Anda. Selanjutnya, sambungkan pin ground (ditandai dengan -) ke salah satu pin ground Arduino. Pin sinyal (pin tengah) harus dihubungkan ke pin digital 2 pada Arduino.

Untuk modul relay, sambungkan pin VCC ke keluaran 5V pada Arduino dan pin ground ke ground Arduino. Pin masukan relay harus dihubungkan ke pin digital 9 pada Arduino. Terakhir, sambungkan terminal positif buzzer ke pin digital 8 dan terminal negatifnya ke ground. Pastikan untuk menghubungkan pin common dan normally open relay dengan tepat untuk mengontrol perangkat Anda.

Contoh Kode & Penjelasan

Kode untuk proyek ini menginisialisasi pin untuk sensor, buzzer, dan relay. Kode ini menggunakan fungsi digitalRead() untuk memeriksa gerakan dan meresponsnya. Berikut adalah kutipan dari fungsi setup:


void setup() {
  Serial.begin(9600); // mengatur Serial Monitor
  pinMode(PIR, INPUT_PULLUP); // mendefinisikan pin sebagai Input untuk sensor
  pinMode(BUZZER, OUTPUT); // mendefinisikan pin sebagai OUTPUT untuk buzzer
  pinMode(RELAY, OUTPUT); // mendefinisikan pin sebagai OUTPUT untuk relay
}

Dalam kutipan ini, pin diatur ke mode input atau output. Serial.begin(9600) menginisialisasi komunikasi serial untuk debugging.

Loop utama memeriksa gerakan dan mengaktifkan buzzer dan relay ketika gerakan terdeteksi. Berikut adalah kutipan yang berfokus dari fungsi loop:

Wirig relay module to AC load

void loop() {
  int motion = digitalRead(PIR); // membaca sensor
  if(motion) {
    Serial.println("Gerakan terdeteksi");
    digitalWrite(BUZZER, HIGH); // menyalakan buzzer
    digitalWrite(RELAY, LOW); // menyalakan relay
  } else {
    Serial.println("===tidak ada yang bergerak");
    digitalWrite(BUZZER, LOW); // mematikan buzzer
    digitalWrite(RELAY, HIGH); // mematikan relay
  }
  delay(500);
}

Kutipan ini membaca status sensor PIR dan mengaktifkan atau menonaktifkan buzzer dan relay berdasarkan gerakan yang terdeteksi. Penundaan 500 milidetik memastikan loop memeriksa sensor pada interval yang wajar.

Demonstrasi / Apa yang Diharapkan

Ketika gerakan terdeteksi, lampu yang terhubung ke relay akan menyala, dan buzzer akan berbunyi. Jika tidak ada gerakan yang terdeteksi, relay akan mematikan lampu, dan buzzer akan diam. Perlu diketahui bahwa HC-SR505 memiliki penundaan bawaan yang menjaga keluaran tetap aktif untuk waktu singkat setelah gerakan terdeteksi (hingga 8 detik), yang tidak dapat disesuaikan (di video pada 5:30).

Stempel Waktu Video

  • 00:00 – Pengenalan proyek
  • 01:30 – Penjelasan komponen
  • 03:15 – Instruksi pengkabelan
  • 05:30 – Penjelasan kode
  • 07:00 – Demonstrasi pengaturan

Gambar

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.
Bahasa: 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
}

Hal-hal yang mungkin Anda butuhkan

Sumber daya & referensi

Belum ada sumber daya.

Berkas📁

Lembar Data (pdf)

File Fritzing