Blog Archive

Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Selasa, 30 Juni 2026

Arduino Mengontrol Motor Servo Menggunakan Sensor Gerak PIR HC-SR501

Sensor gerak PIR (Passive Infrared) HC-SR501 merupakan salah satu sensor yang banyak digunakan dalam berbagai proyek otomasi berbasis Arduino. Sensor ini mampu mendeteksi keberadaan manusia atau hewan melalui perubahan radiasi inframerah yang dipancarkan oleh tubuh. Berkat kemampuannya tersebut, sensor PIR sering dimanfaatkan pada sistem keamanan, lampu otomatis, pintu otomatis, hingga berbagai aplikasi smart home. 

 

Selain digunakan untuk mengaktifkan LED atau buzzer, sensor PIR juga dapat dipadukan dengan motor servo sebagai aktuator mekanis. Motor servo mampu bergerak ke sudut tertentu dengan tingkat presisi yang tinggi sehingga sangat cocok digunakan untuk membuka pintu mini, menggerakkan penghalang otomatis, kamera pengintai, maupun berbagai mekanisme otomatis lainnya. Pada tutorial ini, Anda akan mempelajari cara menghubungkan sensor gerak HC-SR501 dengan motor servo menggunakan Arduino Uno. Arduino akan memantau status keluaran sensor PIR secara terus-menerus. Ketika gerakan terdeteksi, motor servo akan bergerak ke posisi 90 derajat. Sebaliknya, saat tidak ada lagi gerakan yang terdeteksi, motor servo akan kembali ke posisi awal 0 derajat.

Tujuan Tutorial

Pada tutorial ini Anda akan mempelajari cara menghubungkan sensor gerak PIR HC-SR501 ke Arduino Uno, menghubungkan motor servo ke Arduino, mengatur konfigurasi awal sensor PIR, membaca sinyal digital dari sensor gerak, menggerakkan motor servo ke sudut 90 derajat ketika gerakan terdeteksi, mengembalikan motor servo ke posisi 0 derajat ketika tidak ada gerakan, dan menampilkan status deteksi pada Serial Monitor.

 

Baca juga: Arduino Mengontrol Motor Servo Menggunakan Sensor Ultrasonik HC-SR04 

Perangkat Keras yang Dibutuhkan

- Arduino Uno R3

- Kabel USB

- Sensor Gerak PIR HC-SR501

- Motor Servo SG90 atau sejenisnya

- Kabel Jumper

Catatan: Pada beberapa referensi mungkin tertulis HC-SR01, namun modul yang umum digunakan adalah HC-SR501.

Pengaturan Awal Sensor PIR

Agar sensor memberikan respons yang optimal selama proses pengujian, lakukan pengaturan berikut:

- Putar Time Delay sepenuhnya ke arah berlawanan jarum jam agar waktu tunda menjadi paling singkat.

- Putar Sensitivity sepenuhnya searah jarum jam untuk mendapatkan area deteksi yang maksimal.

- Atur Trigger Mode pada posisi Repeatable Trigger (H) dengan memasang jumper sesuai petunjuk pada modul. 

Pengaturan tersebut membuat sensor lebih cepat merespons setiap gerakan yang terdeteksi.

Cara Kerja Sistem

1. Sensor PIR akan memantau perubahan radiasi inframerah di sekitarnya.

2. Ketika seseorang bergerak di dalam area deteksi sensor, pin output sensor akan berubah dari kondisi LOW menjadi HIGH.

3. Arduino membaca perubahan tersebut, kemudian menggerakkan motor servo ke posisi 90 derajat sebagai respons terhadap adanya gerakan.

4. Ketika tidak ada lagi aktivitas yang terdeteksi, keluaran sensor akan kembali ke kondisi LOW.

Arduino kemudian mengembalikan motor servo ke posisi 0 derajat.

5. Selama sistem berjalan, status deteksi juga ditampilkan pada Serial Monitor sehingga pengguna dapat memantau kondisi sensor secara real-time. 

Kode Program Arduino

Berikut adalah program lengkap untuk mengontrol motor servo menggunakan sensor gerak PIR HC-SR501.


#include <Servo.h>


// Konstanta

const int MOTION_SENSOR_PIN = 7;

const int SERVO_PIN = 9;


// Membuat objek servo

Servo servo;


// Variabel

int angle = 0;

int lastMotionState;

int currentMotionState;


void setup() {


  Serial.begin(9600);


  pinMode(MOTION_SENSOR_PIN, INPUT);


  servo.attach(SERVO_PIN);


  servo.write(angle);


  currentMotionState = digitalRead(MOTION_SENSOR_PIN);

}


void loop() {


  lastMotionState = currentMotionState;


  currentMotionState = digitalRead(MOTION_SENSOR_PIN);


  if (currentMotionState == LOW &&

      lastMotionState == HIGH) {


    Serial.println("Motion detected!");


    servo.write(90);

  }


  else if (currentMotionState == HIGH &&

           lastMotionState == LOW) {


    Serial.println("Motion stopped!");


    servo.write(0);

  }

}

 

Penjelasan Program

Program diawali dengan memanggil library Servo yang digunakan untuk mengendalikan motor servo.

 

#include <Servo.h>


Selanjutnya ditentukan pin yang digunakan oleh sensor PIR dan motor servo.

 

const int MOTION_SENSOR_PIN = 7;

const int SERVO_PIN = 9;


Kemudian dibuat sebuah objek servo.

 

Servo servo;


Program juga menggunakan beberapa variabel untuk menyimpan kondisi sensor sebelumnya dan kondisi sensor saat ini.

 

int lastMotionState;

int currentMotionState;


Pada fungsi setup(), Arduino mengaktifkan komunikasi serial, mengatur pin sensor sebagai input, kemudian menghubungkan motor servo ke pin digital 9.

 

servo.attach(SERVO_PIN);


Servo juga diarahkan ke posisi awal.

 

servo.write(0);


Selanjutnya Arduino membaca kondisi awal sensor PIR.

 

currentMotionState = digitalRead(MOTION_SENSOR_PIN);


Di dalam fungsi loop(), Arduino menyimpan status sensor sebelumnya.

 

lastMotionState = currentMotionState;


Kemudian membaca kondisi terbaru sensor.

 

currentMotionState = digitalRead(MOTION_SENSOR_PIN);


Apabila terjadi perubahan status yang menunjukkan adanya gerakan, Arduino menampilkan pesan:

 

Serial.println("Motion detected!");


dan menggerakkan servo ke posisi 90 derajat.

 

servo.write(90);


Sebaliknya, ketika gerakan berhenti, Arduino menampilkan pesan:

 

Serial.println("Motion stopped!");


lalu mengembalikan motor servo ke posisi 0 derajat.

 

servo.write(0);


Koneksi Rangkaian

1. Hubungkan pin VCC sensor PIR ke pin 5V Arduino dan pin GND ke GND Arduino.

2. Pin OUT sensor PIR dihubungkan ke pin digital 7 Arduino.

3. Pada motor servo, hubungkan kabel signal ke pin digital 9, kabel VCC ke pin 5V, dan kabel GND ke pin GND Arduino.

4. Pastikan semua koneksi telah terpasang dengan benar sebelum menjalankan program.

Langkah-langkah Menjalankan Program

1. Hubungkan Arduino Uno ke komputer menggunakan kabel USB.

2. Buka aplikasi Arduino IDE, kemudian pilih board Arduino Uno dan port yang sesuai.

3. Salin kode program di atas ke dalam Arduino IDE.

4. Klik tombol Upload dan tunggu hingga proses kompilasi selesai.

5. Setelah program berhasil dijalankan, buka Serial Monitor dengan baud rate 9600.

6. Gerakkan tangan atau berjalan di depan sensor PIR.

7. Perhatikan perubahan posisi motor servo serta pesan yang muncul pada Serial Monitor.

Hasil Pengujian

Ketika tidak terdapat aktivitas di depan sensor, motor servo akan tetap berada pada posisi 0 derajat. Saat seseorang bergerak di area deteksi sensor PIR, Arduino akan menerima sinyal dari sensor, menampilkan pesan "Motion detected!", kemudian menggerakkan motor servo ke posisi 90 derajat. Ketika gerakan berhenti dan sensor tidak lagi mendeteksi aktivitas, Arduino akan menampilkan pesan "Motion stopped!" dan motor servo akan kembali ke posisi awal 0 derajat. Dengan mekanisme tersebut, motor servo dapat berfungsi sebagai aktuator otomatis yang merespons keberadaan gerakan di sekitarnya.

 


 


Baca juga: Arduino Mengontrol LED Menggunakan Sensor Gerak PIR HC-SR501

 

 

 

Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.  

0 on: "Arduino Mengontrol Motor Servo Menggunakan Sensor Gerak PIR HC-SR501"