Sensor cahaya atau Light Dependent Resistor (LDR) merupakan salah satu sensor yang banyak digunakan dalam proyek elektronika dan otomasi. Sensor ini mampu mendeteksi perubahan intensitas cahaya di lingkungan sekitar dan menghasilkan sinyal yang dapat dibaca oleh Arduino. Dengan memanfaatkan data tersebut, Arduino dapat mengambil keputusan secara otomatis berdasarkan kondisi pencahayaan yang terdeteksi.
Salah satu penerapan menarik dari sensor cahaya adalah sebagai pemicu pergerakan motor servo. Motor servo merupakan aktuator yang dapat bergerak ke sudut tertentu dengan tingkat presisi yang cukup tinggi. Kombinasi antara sensor cahaya dan motor servo sering digunakan pada berbagai proyek otomatisasi seperti sistem buka-tutup pintu otomatis, penjejak cahaya (light tracking system), panel surya otomatis, hingga berbagai aplikasi robotika.
Pada tutorial ini, Anda akan mempelajari cara menggunakan sensor cahaya dan Arduino Uno untuk mengendalikan motor servo secara otomatis. Arduino akan membaca nilai analog dari sensor cahaya, kemudian membandingkannya dengan nilai ambang batas tertentu. Jika kondisi cahaya memenuhi syarat yang telah ditentukan, motor servo akan bergerak ke sudut 90 derajat. Sebaliknya, jika intensitas cahaya berada di bawah ambang batas, motor servo akan kembali ke posisi awal yaitu 0 derajat.
Tujuan Tutorial
Melalui tutorial ini, Anda akan mempelajari cara membaca nilai analog dari sensor cahaya menggunakan Arduino, menentukan nilai ambang batas (threshold) sebagai dasar pengambilan keputusan, mengontrol motor servo berdasarkan intensitas cahaya yang terdeteksi, menggerakkan servo ke sudut tertentu secara otomatis, dan memahami integrasi antara sensor dan aktuator dalam proyek Arduino.
Perangkat Keras yang Dibutuhkan
- Arduino Uno R3
- Kabel USB
- Sensor cahaya (LDR)
- Resistor 10K Ohm
- Motor servo (SG90 atau sejenisnya)
- Kabel jumper
Cara Kerja Sistem
Prinsip kerja rangkaian ini cukup sederhana. Sensor cahaya akan mendeteksi tingkat pencahayaan di lingkungan sekitar dan mengirimkan nilai analog ke Arduino melalui pin A0. Arduino kemudian membandingkan nilai tersebut dengan nilai ambang batas yang telah ditentukan dalam program. Pada contoh ini digunakan nilai threshold sebesar 500. Apabila nilai sensor lebih besar dari nilai ambang batas, Arduino akan menganggap kondisi cahaya cukup terang dan menggerakkan motor servo ke posisi 90 derajat. Sebaliknya, jika nilai sensor lebih kecil dari nilai threshold, Arduino akan mengembalikan motor servo ke posisi awal yaitu 0 derajat. Proses ini berlangsung secara terus-menerus sehingga posisi servo akan selalu menyesuaikan kondisi cahaya yang diterima sensor.
Baca juga: Arduino Mengontrol Motor Servo Menggunakan Potensiometer
Wiring Diagram Arduino Mengontrol Motor Servo Menggunakan Sensor Cahaya (LDR)
Kode Program Arduino
Berikut adalah program Arduino untuk mengontrol motor servo menggunakan sensor cahaya:
#include <Servo.h>
// Konstanta
const int LIGHT_SENSOR_PIN = A0; // Pin sensor cahaya
const int SERVO_PIN = 9; // Pin motor servo
const int ANALOG_THRESHOLD = 500;
// Membuat objek servo
Servo servo;
void setup() {
// Menghubungkan servo ke pin 9
servo.attach(SERVO_PIN);
// Posisi awal servo
servo.write(0);
}
void loop() {
// Membaca nilai sensor cahaya
int analogValue = analogRead(LIGHT_SENSOR_PIN);
// Mengontrol servo berdasarkan nilai sensor
if (analogValue > ANALOG_THRESHOLD)
servo.write(90); // Servo bergerak ke 90 derajat
else
servo.write(0); // Servo kembali ke 0 derajat
}
Penjelasan Program
Program diawali dengan memanggil library Servo yang diperlukan untuk mengendalikan motor servo.
#include <Servo.h>
Selanjutnya dibuat beberapa konstanta untuk menentukan pin sensor cahaya, pin servo, dan nilai ambang batas.
const int LIGHT_SENSOR_PIN = A0;
const int SERVO_PIN = 9;
const int ANALOG_THRESHOLD = 500;
Kemudian dibuat objek servo yang akan digunakan untuk mengontrol posisi motor servo.
Servo servo;
Pada fungsi setup(), servo dihubungkan ke pin digital 9 menggunakan fungsi berikut:
servo.attach(SERVO_PIN);
Setelah itu, servo diarahkan ke posisi awal 0 derajat.
servo.write(0);
Di dalam fungsi loop(), Arduino membaca nilai analog dari sensor cahaya menggunakan:
int analogValue = analogRead(LIGHT_SENSOR_PIN);
Nilai yang diperoleh kemudian dibandingkan dengan nilai threshold. Jika nilai sensor lebih besar dari 500:
servo.write(90);
Motor servo akan bergerak ke posisi 90 derajat. Sebaliknya, jika nilai sensor berada di bawah nilai threshold:
servo.write(0);
Motor servo akan kembali ke posisi awal yaitu 0 derajat.
Koneksi Rangkaian
1. Hubungkan salah satu kaki sensor LDR ke tegangan 5V Arduino. Kaki lainnya dihubungkan ke pin analog A0 dan resistor 10K Ohm secara bersamaan. Ujung resistor yang lain dihubungkan ke GND sehingga membentuk rangkaian pembagi tegangan.
2. Untuk motor servo, hubungkan kabel sinyal servo ke pin digital 9 Arduino. Kabel VCC servo dihubungkan ke pin 5V Arduino, sedangkan kabel GND servo dihubungkan ke pin GND Arduino.
3. Pastikan seluruh koneksi telah terpasang dengan benar sebelum program diunggah ke Arduino.
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 yang telah disediakan ke dalam editor Arduino IDE.
4. Klik tombol Upload dan tunggu hingga proses unggah program selesai.
5. Setelah program berjalan, arahkan sumber cahaya seperti lampu atau senter ke sensor cahaya.
6. Cobalah menutupi sensor menggunakan tangan atau benda lain untuk mengurangi intensitas cahaya yang diterima sensor.
7. Amati perubahan posisi motor servo ketika kondisi cahaya berubah.
Hasil Pengujian
Ketika sensor menerima cahaya yang cukup sehingga nilai analog melebihi ambang batas yang ditentukan, motor servo akan bergerak ke posisi 90 derajat. Saat sensor berada dalam kondisi yang lebih gelap dan nilai pembacaan turun di bawah threshold, motor servo akan kembali ke posisi 0 derajat. Dengan mekanisme ini, servo dapat berfungsi sebagai aktuator otomatis yang merespons perubahan cahaya secara real-time.
Baca juga: Arduino dan Sensor Ultrasonik HC-SR04 - Cara Mengukur Jarak dengan Akurat
Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.
- Diskusi umum dan tanya jawab praktik: https://t.me/edukasielektronika
- Kendala spesifik dan kasus tertentu: http://bit.ly/Chatarduino
.png)


0 on: "Arduino Mengontrol Motor Servo Menggunakan Sensor Cahaya (LDR)"