Membuat alat panel surya otomatis dengan arduino

Membuat alat panel surya otomatis dengan Arduino adalah proyek yang menarik, yang memungkinkan panel surya untuk melacak pergerakan matahari sepanjang hari (solar tracker) untuk memaksimalkan energi yang diserap. Berikut adalah panduan langkah demi langkah untuk membuat solar tracker otomatis sederhana menggunakan Arduino.
Komponen yang Dibutuhkan:
- Panel Surya: Sebagai sumber energi.
- Arduino UNO: Mikrokontroler utama.
- Servo Motor: Untuk menggerakkan panel surya agar mengikuti arah matahari.
- 1 Servo Motor untuk rotasi horizontal.
- 1 Servo Motor untuk rotasi vertikal (opsional untuk 2-axis tracker).
- LDR (Light Dependent Resistor): Sensor cahaya untuk mendeteksi posisi matahari (4 buah untuk 2-axis tracker).
- Resistor 10kΩ: Untuk dihubungkan ke LDR.
- Breadboard dan Kabel Jumper: Untuk koneksi komponen.
- Baterai atau Power Bank: Untuk catu daya Arduino.
- Struktur Penyangga: Untuk menopang panel surya dan servo motor.
Langkah-Langkah:
1. Merancang Rangkaian
Buat rangkaian dasar dengan menghubungkan LDR dan servo ke Arduino.
- Hubungkan 4 LDR dalam bentuk ‘cross’ untuk mendeteksi perbedaan intensitas cahaya di tiap sisi.
- Sambungkan masing-masing LDR ke pin analog Arduino (misalnya A0, A1, A2, dan A3).
- Sambungkan 2 servo motor (untuk sumbu X dan Y) ke pin digital PWM Arduino (misalnya pin 9 dan 10).
- Gunakan resistor 10kΩ untuk setiap LDR sebagai pembagi tegangan.
2. Koneksi Rangkaian
Berikut adalah contoh rangkaian dasar:
- LDR 1 (atas kiri) -> Pin A0
- LDR 2 (atas kanan) -> Pin A1
- LDR 3 (bawah kiri) -> Pin A2
- LDR 4 (bawah kanan) -> Pin A3
- Servo motor sumbu X (horizontal) -> Pin 9
- Servo motor sumbu Y (vertikal) -> Pin 10 (jika menggunakan 2-axis tracker)
3. Kode Program Arduino
Berikut adalah contoh kode program untuk menggerakkan panel surya secara otomatis berdasarkan sensor cahaya:
Servo servoX;
Servo servoY;
int LDR1 = A0; // LDR atas kiri
int LDR2 = A1; // LDR atas kanan
int LDR3 = A2; // LDR bawah kiri
int LDR4 = A3; // LDR bawah kanan
int posX = 90; // Posisi awal servo horizontal
int posY = 90; // Posisi awal servo vertikal (jika menggunakan sumbu Y)
void setup() {
servoX.attach(9); // Servo horizontal
servoY.attach(10); // Servo vertikal (opsional)
servoX.write(posX); // Servo mulai di posisi 90 derajat (tengah)
servoY.write(posY); // Servo mulai di posisi 90 derajat (tengah)
Serial.begin(9600);
}
void loop() {
int valLDR1 = analogRead(LDR1);
int valLDR2 = analogRead(LDR2);
int valLDR3 = analogRead(LDR3);
int valLDR4 = analogRead(LDR4);
// Hitung perbedaan antara intensitas cahaya
int deltaX = (valLDR1 + valLDR3) - (valLDR2 + valLDR4);
int deltaY = (valLDR1 + valLDR2) - (valLDR3 + valLDR4);
// Gerakkan servo berdasarkan delta
if (abs(deltaX) > 50) { // Toleransi perbedaan
if (deltaX > 0) {
posX = posX - 1; // Gerak ke kiri
} else {
posX = posX + 1; // Gerak ke kanan
}
}
if (abs(deltaY) > 50) { // Toleransi perbedaan
if (deltaY > 0) {
posY = posY - 1; // Gerak ke bawah
} else {
posY = posY + 1; // Gerak ke atas
}
}
// Batasi gerakan servo agar tetap dalam rentang 0-180 derajat
posX = constrain(posX, 0, 180);
posY = constrain(posY, 0, 180);
// Perbarui posisi servo
servoX.write(posX);
servoY.write(posY);
// Tunggu sejenak
delay(100);
}
4. Meng-upload Kode ke Arduino
Hubungkan Arduino ke komputer dan unggah kode melalui Arduino IDE.
5. Pengujian
Setelah kode berhasil diunggah, Anda bisa menguji dengan mengarahkan cahaya ke sensor LDR dan melihat apakah servo motor bergerak sesuai untuk memposisikan panel surya ke arah cahaya.
Tips:
- Kalibrasi: Jika respons panel terlalu lambat atau terlalu cepat, Anda bisa mengubah nilai batas toleransi pada kode (
abs(deltaX) > 50) untuk mendapatkan respons yang sesuai. - Pengaturan Daya: Pastikan bahwa daya yang diberikan ke servo dan Arduino cukup kuat. Jika perlu, gunakan catu daya eksternal.
Dengan proyek ini, Anda dapat membuat alat panel surya yang secara otomatis mengikuti pergerakan matahari untuk meningkatkan efisiensi penyerapan energi.

