/*
Nama : Hanifa Azzahra
NPM : 203510534
Sensor lampu otomatis menyala dan mati di ruangan menggunakan sensor
arduino nano dengan mengandalkan intesitas cahaya
*/
byte ldr = A5;
byte led = 9;
/*
byte ldr = A5 digunakan untuk merujuk pada nomor pin analog pada
board Arduino. Pin analog pada board Arduino digunakan untuk membaca
sinyal analog dari perangkat eksternal seperti sensor suhu, sensor
cahaya, sensor suara, dan lainnya. Nilai A5 digunakan untuk ldr karena
pada board Arduino yang umum digunakan seperti Arduino Uno, pin A5
merupakan salah satu pin analog yang tersedia dalam kode tersebut, nilai
pada pin A5 akan dibaca menggunakan fungsi analogRead() untuk mendapatkan
nilai analog dari sensor cahaya yang terhubung pada pin tersebut.
/*
byte led = 9 digunakan untuk output digital dalam mengontrol LED,
Pada umumnya yang sering di gunakan pada adruino uno menggunakan pin 9
namun tidak semua nomor pin bisa di gunakan dalam mengontrol LED
*/
/*
Alasan menggunakan type data byte agar penggunaan memory jauh lebih hemat
dari tipe data seperti int atau long, pada byte jika rentang tidak
melebihi rentan type data byte (0 sampa 255) maka penggunaan tipe data
byte cukup untuk memenuhi kebutuhan tersebut.
*/
int nilai; /* Digunakan untuk menampung nilai ldr, basicnya untuk input dan output
harus diharapkan menggunakan tipe data int */
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
}
/*
Fungsi void setup() dieksekusi hanya satu kali saat board Arduino dinyalakan
atau direset. Tugas utama setup() adalah untuk melakukan konfigurasi awal
atau inisialisasi pin, komunikasi, variabel, atau pengaturan lain yang
diperlukan sebelum program utama dimulai.
*/
/*
Fungsi Serial.begin() adalah fungsi dalam Arduino yang digunakan untuk
memulai komunikasi serial antara board Arduino dan perangkat eksternal
seperti komputer, sensor, atau modul lainnya.
pada Serial.begin di atas memiliki parameter 9600, 9600 ini merupakan
standar kecepatan transfer data, karena 9600 ini lebih stabil dan potensi
kehilangan data sangat kecil, jika menggunakan Serial.begin() dengan
kecepatan transfer data 115200 atau lebih tinggi memiliki potensi
kehilangan data atau kesalahan dalam komunikasi serial jika kondisi
lingkungan atau perangkat tidak memadai.
*/
/*
Fungsi pinMode() adalah untuk mengirimkan sinyal output dengan nilai
LED 9 disesuaikan dengan Adruino uno board dengan nano = 9, agar lampu
bisa bekerja menyala atau mati.
*/
void loop() {
nilai = analogRead(ldr);
Serial.print("Nilai LDR : ");
Serial.println(nilai);
if(nilai < 500){
digitalWrite(led, HIGH);
Serial.println("Keadaan Ruangan Gelap, Lampu Menyala");
}else{
digitalWrite(led, LOW);
Serial.println("Keadaan Ruangan Terang, Lampu Mati");
}
delay(1000);
}
/*
Fungsi void loop adalah untuk melooping output sesuai dengan kondisi
analogRead() berfungsi untuk membaca variabel ldr agar bisa di assign
variabel nilai
Fungsi Serial.print() atau println adalah untuk menampilkan output
Fungsi digitalWrite() adalah untuk mengirim informasi dari arduino uno melewati
resistor ke lampu/LED, pada kodingan di atas digitalWrite(led, HIGH) brrti (9, HIGH)
mengirim aliran ke LED agar lampu bisa menyala begitu pula sebaliknya ketika LOW
maka tidak ada arus yang dikirim atau lampu mati, dri semua itu ditemtukan dari
si nilainya karena nilai menampung si ldrnya karena ldr itu berperan sebagai
pengatur intensitas cahayanya
Fungsi delay() adalah sebagai penundaan waktu selama 1000 milidetik atau 1 detik
untuk tampilan perulangannya
*/