Skip to main content

Tutorial 5 - Sensor Cahaya dan Serial Monitor

Pada Tutorial 4 sebelumnya kita telah mempelajari bagaimana Serial Monitor bekerja untuk menampilkan data berupa nilai resistansi pada potensiometer menggunakan fungsi analogRead(). Dengan Serial Monitor kita dapat melihat berapa nilai resistansi potensiometer jika kita memutarnya ke arah tertentu.

Sekarang kita akan mempelajari lebih dalam lagi fungsi pemrograman baru yakni digitalRead() dengan Serial Monitor. Komponen tambahan yang kita gunakan pada Tutorial 5 kali ini adalah Sensor Cahaya. Bentuk fisik sensor cahaya yang akan kita gunakan pada Pelajaran #4 ini ditunjukkan oleh gambar di bawah.

Apa itu Sensor Cahaya?​

Sensor cahaya merupakan sensor yang dapat mendeteksi keberadaan cahaya atau mengukur gelap terangnya cahaya pada suatu tempat.

Arduino Light Sensor

Pada dasarnya sensor cahaya menggunakan komponen utama yang disebut sebagai LDR (Light Dependent Resistor) atau dalam bahasa Indonesia, Resistor Berdasarkan Cahaya. Komponen LDR ini sama seperti potensiometer yang telah kita pelajari sebelumnya pada Tutorial. Bisakah teman-teman menebak yang mana komponen LDR pada gambar di bawah ini? Di kiri atau di kanan?

Arduino Light Sensor

LDR dan potensiometer sama-sama merupakan komponen resistor yang nilai resistansinya dapat berubah-ubah. Namun perbedaannya terletak pada pemicu atau penyebab yang membuat nilai resistansi nya berubah.

Pada potensiometer yang kita gunakan pada Tutorial 4 sebelumnya, nilai resistansi akan berubah jika kita memutar topi potensiometer. Sedangkan pada LDR, nilai resistansi berubah jika terkena cahaya terang atau cahaya gelap.

Teman-teman bisa melihat komponen LDR terpasang pada Modul Sensor Cahaya seperti yang ditunjuk oleh tanda panah di bawah ini.

Arduino Light Sensor Parts

Semakin terang cahaya yang mengenai komponen LDR, maka resistansinya akan semakin kecil. Semakin gelap cahaya yang mengenai komponen LDR, maka resistansinya akan semakin besar.

Arduino Light Sensor Pins

Seperti yang ditunjukkan pada gambar di atas, Modul Sensor Cahaya memiliki 4 buah kaki yakni GND dan VCC sebagai masukan untuk daya listrik. Pin AO (Analog Output) untuk membaca nilai keluaran sinyal analog dan pin DO (Digital Output) untuk membaca nilai keluaran sinyal digital. Kita akan mempelajari perbedaan keluaran analog dan keluaran digital pada Tutorial 5 ini.

Sekilas Tentang Sinyal​

Sebelum mulai beraksi, dijelaskan terlebih dahulu secara singkat mengenai apa itu sinyal.

Pada pin AO (Analog Output) Sensor Cahaya akan mengeluarkan sinyal analog. Sedangkan pada pin DO (Digital Output) akan mengeluarkan sinyal digital. Untuk memahami lebih lanjut perbedaan sinyal analog dan sinyal digital kita akan menggunakan ilustrasi gambar di bawah.

Arduino Light Sensor Pins

Gambar di atas merupakan ilustrasi perbedaan sinyal analog dan sinyal digital. Pada sinyal analog, garis nya tergambar berupa garis yang tidak lurus dan tidak beraturan serta naik dan turun berdasarkan nilai yang muncul pada Serial Monitor. Sedangkan pada sinyal digital, garis yang tergambar berupa garis lurus yang naik dan turun serta mendatar.

Bentuk Sinyal AnalogBentuk Sinyal Digital
Arduino Light Sensor PinsArduino Light Sensor Pins

Sinyal analog bisa disebut juga gelombang tak beraturan karena bentuknya yang tak beraturan. Sedangkan sinyal digital bisa disebut juga sebagai sinyal kotak karena bentuknya seperti kotak-kotak.

Untuk memahami lebih lanjut mengenai sinyal analog dan sinyal digital, perhatikan ilustrasi di bawah.

Arduino Light Sensor Pins

  • Pada titik hijau, sinyal analog akan bernilai 800 karena sejajar dengan nilaiSensor yang bernilai 800 pada detik ke-3.

  • Pada titik orange, sinyal analog akan bernilai 1023 karena sejajar dengan nilaiSensor pada angka 1023 dan pada detik ke-6.

  • Kemudian pada titik biru, sinyal analog akan bernilai 600 karena sejajar dengan nilaiSensor 600 pada detik ke-15.

  • Kira-kira teman-teman tahu berapa nilaiSensor pada titik merah? Benar, titik merah memiliki nilai sebesar 900 karena sejajar dengan nilaiSensor 900 pada detik ke-29.

Kemudian pada sinyal digital,

Arduino Light Sensor Pins

  • Pada detik ke-0 sampai detik ke-3, nilai sinyal digital akan bernilai 25 karena sejajar dengan angka 25 pada nilaiSensor.

  • Kemudian pada detik ke-3 sampai detik ke-15, sinyal digital bernilai 1023 karena sejajar dengan angka 1023 pada nilaiSensor.

  • Selanjutnya pada detik ke-15 sampai pada detik ke-19, sinyal digital bernilai 25 karena sejajar dengan angka 25 pada nilaiSensor.

  • Kira-kira pada detik ke-19 sampai pada detik ke-23, berapakah nilai sinyal digital? Benar, nilai sinyal digital pada detik ke-19 sampai detik ke-23 bernilai 1023 karena sejajar dengan angka 1023 pada nilaiSensor.

  • Sinyal digital hanya membaca nilaiSensor yang sedang tinggi ataupun sedang rendah saja. Dalam hal ini, nilai tinggi pada nilaiSensor bernilai 1023 dan nilai rendah pada nilaiSensor bernilai 25.

  • Selain itu, komputer juga akan menganggap nilai tinggi sebagai logika 1 dan nilai rendah sebagai logika 0. Sebagaimana yang muncul pada Tantangan 3 sebelumnya.

Contoh ilustrasi lainnya untuk sinyal digital,

Jika kita mengingat kembali pada Tutorial 1 dimana kita menyalakan lampu dengan menggunakan perintah digitalWrite(), ilustrasi sinyal nya akan seperti pada gambar di bawah.

Arduino Light Sensor Pins

  • Pada detik ke-0 sampai detik ke-3, karena logika yang diberikan pada perintah digitalWrite() adalah logika LOW, maka sinyal akan bernilai 0 Volt sehingga lampu tidak mendapat tegangan dan lampu menjadi padam.

  • Kemudian pada detik ke-3 sampai detik ke-15, karena logika yang diberikan pada perintah digitalWrite() adalah logika HIGH, maka sinyal akan bernilai 5 Volt sehingga lampu mendapat tegangan dan lampu menyala.

  • Selanjutnya pada detik ke-15 sampai pada detik ke-19, karena logika yang diberikan pada perintah digitalWrite() adalah logika LOW, maka sinyal akan bernilai 0 Volt sehingga lampu tidak mendapat tegangan dan lampu menjadi padam.

  • Bisakah teman-teman menebak, pada detik ke-19 sampai ke-23 logika apa yang diberikan pada perintah digitalWrite() dan bagaimana kondisi lampunya?

Kita akan belajar lebih lanjut bagaimana menggunakan logika 1 dan logika 0 atau logika HIGH dan logika LOW pada pelajaran berikutnya. Untuk saat ini, mari kita memfokuskan topik kita pada bagaimana membaca sinyal analog dan sinyal digital pada sensor cahaya terlebih dahulu.

Mulai Beraksi 🚀​

Baik, sebelum mulai beraksi, pastikan teman-teman sudah membaca Prasyarat, Target Pelajaran, dan Komponen Yang Dibutuhkan ya.

Klik pada salah satu dari ketiga tombol di bawah ini untuk membuka Prasyarat, Target Pelajaran dan Komponen Yang Dibutuhkan.

  • Sudah lolos Tutorial 4 - Serial Monitor dan Potensiometer
  • Sudah mempelajari Arduino Nano Expansion Board pada materi Arduino Nano Expansion Board

Kalau teman-teman merasa belum memenuhi prasyarat yang dibutuhkan, diharapkan untuk membaca dan memenuhinya terlebih dahulu.

Perhatian

Penting untuk memperhatikan setiap langkah-langkah yang diberikan dan tidak melakukan apapun diluar perintah langkah yang diberikan.

Kenapa? Hal ini untuk mencegah kerusakan yang tidak diinginkan pada komponen apabila bertindak di luar langkah pelajaran yang diberikan dan tidak mengetahui dengan pasti apa yang teman-teman lakukan.

Menghubungkan Pin-Pin​

  1. Baik, langkah pertama kita akan menyiapkan perangkat utama kita dahulu, yaitu Arduino Nano. Kemudian siapkan Modul Sensor Cahaya dan 3 buah kabel jumper.

    Arduino Light Sensor Pins

  2. Lihat gambar di atas sebagai petunjuk untuk membaca pin-pin yang ada pada Modul Sensor Cahaya. Kita akan menghubungkan pin-pin Modul Sensor Cahaya tersebut ke Arduino Nano dengan menggunakan kabel jumper seperti pada gambar Wiring Diagram di bawah ini.

    Arduino Light Sensor Wiring Diagram

Jika gambar Wiring Diagram di atas kurang jelas, teman-teman bisa gunakan tabel Wiring Diagram di bawah ini.

Sensor CahayaArduino Nano Expansion Board
Pin AOPin A0
Pin GNDPin G
Pin VCCPin V
Peringatan

Sebelum menyalakan Arduino Nano, harap periksa kembali rangkaiannya. Apakah sudah sama dengan Wiring Diagram?

Periksa kembali posisi pemasangan kaki-kaki. Diharapkan agar tidak terbalik dan sesuai dengan keterangan pin agar tidak merusak komponen.

Setelah Sensor Cahaya dan Arduino Nano saling terhubung, maka hasilnya akan seperti pada gambar di bawah ini.

Arduino Light Sensor Wiring Diagram

Warna kabel yang digunakan bebas dan tak harus sama dengan gambar di atas. Namun yang harus diperhatikan, pastikan kaki Potensiometer terhubung ke posisi pin yang sama seperti pada gambar di atas. Gunakan Tabel Wiring Diagram untuk memastikannya. Pastikan pin VCC Sensor Cahaya terhubung ke pin V Arduino Nano dan pin GND Sensor Cahaya terhubung ke pin G Arduino Nano.

Mengetik Program​

  1. Bukalah Arduino IDE, kemudian buatlah sketch baru. Beri sketch baru tersebut dengan nama TUTORIAL_5_SENSOR_CAHAYA_SERIAL_MONITOR dan simpan dalam folder Program Tutorials yang telah kita buat pada Tutorial 1 sebelumnya. Jika terlupa bagaimana membuat nama sketch, silahkan buka kembali Tutorial 1 sebelumnya.

    Arduino IDE Sketch Program

  2. Karena kita memang akan mempelajari fungsi baru, yakni digitalWrite(), namun sebelumnya mari kita perdalam dahulu fungsi analogWrite() dengan menggunakan Sensor Cahaya. Karenanya kita akan menggunakan sketch program Tutorial 4 sebelumnya. Ketik program berikut pada sketch tersebut.

TUTORIAL_5_SENSOR_CAHAYA_SERIAL_MONITOR.ino
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
// put your main code here, to run repeatedly:
int nilaiSensor = analogRead(A0);
Serial.println(nilaiSensor);
delay(1);
}
  1. Periksa kembali ketikan sketch program. Pastikan agar ketikan sketch program sama persis seperti diminta agar tidak mengalami error saat compiling. Jika sudah selesai mengetik program, cobalah memeriksa apakah ketikan Anda sudah benar atau belum dengan cara menekan tombol verify atau ikon di samping 👉 Ultrasonic Sensors.

  2. Jika proses verify selesai dan information bar menunjukkan “Done compiling”, berarti program yang teman-teman ketik sudah benar dan lanjutkan pada langkah berikutnya.

Mengkonfigurasi Arduino IDE​

Sebelum mengupload program, sama seperti pada Tutorial 1, mari kita melakukan konfigurasi terlebih dahulu pada Arduino IDE.

  1. Memilih Jenis Board

    Pastikan jenis board yang digunakan sudah sesuai dengan settingan pada Arduino IDE dengan cara memilih opsi berikut secara berurutan Tools âžś Board âžś Arduino Nano atau perhatikan urutan tanda panah pada gambar di bawah ini. Disini kita memilih Arduino Nano karena kita menggunakan Arduino Nano.

    Arduino Light Sensor Wiring Diagram

  2. Memilih Jenis Processor

    Processor dalam bahasa Indonesia berarti Prosessor, atau Pemroses sebuah perintah, singkatnya seperti otak dari robot. Disini kita akan menentukan jenis Processor yang digunakan oleh Arduiino Nano, yaitu ATMega328P (Old Bootloader), dengan cara memilih opsi berikut secara berurutan Tools âžś Processor âžś ATmega328P (Old Bootloader). Atau ikuti urutan tanda panah pada gambar di bawah ini

    Ultrasonic Sensors

  3. Memilih Nomor Port

    Nomor port untuk Arduino Nano pada tiap laptop/komputer dapat berbeda-beda. Pilihlah nomor port yang muncul pada pilihan yang tersedia di Arduino IDE. Lebih jelasnya, perhatikan gambar di bawah.

    Ultrasonic Sensors

Mengupload Program​

  1. Setelah proses konfigurasi selesai seperti yang diperintahkan, lanjutkan dengan mengklik tombol upload Ultrasonic Sensors pada Arduino IDE.
Catatan

jika proses upload gagal, cobalah mengganti nomor PORT COMXX yang tersedia pada daftar pilihan nomor port pada langkah 3 di atas sampai proses upload berhasil.

  1. Jika proses upload berhasil, klik ikon “Serial Monitor” IDE seperti ditunjukkan oleh gambar disamping, Ultrasonic Sensors, yang terletak pada pojok atas kanan Arduino.

Maka akan muncul window “Serial Monitor” seperti pada gambar di bawah ini.

Jika belum muncul teks tersebut, cobalah nyalakan centang pada “Autoscroll”, atur setinggan pada “Newline”, dan “9600 baud”.

Ultrasonic Sensors

Pada window tersebut akan menampilkan angka yang merupakan nilai hasil pembacaa resistansi LDR.

Nilai resistansi yang terbaca akan berubah-ubah sesuai dengan kondisi pencahayaan pada ruangan tempat sensor cahaya berada.

Cobalah sorot bagian LDR dengan menggunakan cahaya senter dan amati perubahannya pada serial monitor.

Nilai resistansi yang muncul akan semakin kecil apabila semakin banyak cahaya yang diterimanya. Dan semakin besar jika cahaya semakin gelap.


Penjelasan Program​

Sebenarnya, program yang kita gunakan untuk Tutorial 5 ini sama dengan program yang kita gunakan pada Tutorial 4 sebelumnya, sehingga penjelasan programnya akan sama persis. Namun, meskipun demikian, kita akan memberikan penjelasannya lagi secara singkat terlebih dahulu.

TUTORIAL_5_SENSOR_CAHAYA_SERIAL_MONITOR.ino
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
// put your main code here, to run repeatedly:
int nilaiSensor = analogRead(A0);
Serial.println(nilaiSensor);
delay(1);
}

Pada baris 3 fungsi setup() terdapat fungsi Serial.begin(9600) yang memerintahkan Arduino Nano untuk memulai komunikasi untuk Serial Monitor.

Kemudian pada baris 8 terdapat variabel nilaiSensor bertipe integer dan perintah analogRead(). Perintah analogRead() akan digunakan untuk membaca nilai sinyal analog Sensor Cahaya yang terhubung pada pin A0. Nilai hasil pembacaan tersebut kemudian akan disimpan pada variabel nilaiSensor.

Nilai hasil pembacaan sinyal analog yang tersimpan pada variabel nilaiSensor tersebut kemudian ditampilkan pada Serial Monitor dengan perintah Serial.println yang terdapat pada baris 9.

Pada dasarnya, keseluruhan program yang digunakan sama persis seperti yang digunakan pada Tutorial 4 sebelumnya.

Oleh karenanya penjelasan program nya juga akan sama persis sehingga tidak akan dijelaskan kembali pada Tutorial 4 ini. Jika ingin mengingat kembali penjelasan program ini, teman-teman bisa menjumpainya lagi pada Penjelasan Program Tutorial 4 .

Seperti yang telah dikatakan sebelumnya, bahwa program di atas menggunakan progam yang sama dengan Tutorial 4 ketika membaca nilai resistansi Potensiometer. Yang membuatnya berbeda hanyalah komponen yang digunakan. Jika pada Tutorial 4 sebelumnya kita menggunakan Potensiometer, maka pada program ini menggunakan Sensor Cahaya.

Kali ini kita akan memodifikasi program di atas tadi dengan mengubah analogRead() pada baris 8 menjadi digitalRead() seperti yang diterangi pada kode program di bawah ini.

TUTORIAL_5_SENSOR_CAHAYA_SERIAL_MONITOR.ino
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
// put your main code here, to run repeatedly:
int nilaiSensor = digitalRead(A0);
Serial.println(nilaiSensor);
delay(1);
}

Kemudian cobalah teman-teman upload ke Arduino Nano dan lihat hasilnya pada Serial Monitor.

Catatan

Sebelum mengupload sketch program baru ke Arduino Nano, pastikan teman-teman menutup window Serial Monitor terlebih dahulu jika masih terbuka.

Hasil pada sketch tersebut akan menampilkan angka 0 ketika LDR disorot oleh cahaya senter dan akan menampilkan angka 1 ketika LDR tidak disorot oleh cahaya senter.

Ketika LDR disorot cahaya senterKetika LDR tidak disorot cahaya senter
Ultrasonic Sensors akan menampilkan angka 0 pada Serial Monitor Ultrasonic SensorsUltrasonic Sensors akan menampilkan angka 1 pada Serial Monitor Ultrasonic Sensors

Disinilah letak perbedaan perintah digitalRead() dan analogRead(). Perintah analogRead() akan membaca secara pasti perubahan variabel nilaisensor seperti 872, 921, 1023, 400, 12 dan seterusnya. Sedangkan perintah digitalRead() hanya akan membaca apabila nilai sensor HIGH (ditandai dengan angka 1) atau LOW (ditandai dengan angka 0).

Dengan kata lain, apabila bagian LDR pada Sensor Cahaya disorot oleh cahaya, maka nilai sensor akan menjadi LOW dan menampilkan angka 0 pada Serial Monitor. Sedangkan apabila bagian LDR tidak disorot oleh cahaya, maka nilai sensor akan menjadi HIGH dan menampilkan angka 1 pada Serial Monitor.

Perintah digitalRead() hanya akan menampilkan hasil berupa angka 1 atau angka 0 saja pada Serial Monitor. Sedangkan perintah analogRead() bisa menampilkan berapapun angka yang akan diberikan oleh Sensor Cahaya.


Tantangan Tutorial 5​

Selanjutnya kita akan masuk pada topik Tantangan 5.

Tantangan 1​

Pada Tantangan 1 Tutorial 5 ini, kita akan belajar bagaimana mengatur sensitivitas sensor. Seperti telah disebutkan sebelumnya pada Pendahuluan, Sensor Cahaya memiliki komponen yang bernama Trimpot. Trimpot ini memiliki bentuk seperti tanda plus yang dapat diputar dengan menggunakan obeng plus.

Arduino Light Sensor Parts

Trimpot akan berguna untuk mengatur ambang batas cahaya normal sekitar. Ambang batas cahaya normal adalah tingkat kecerahan cahaya yang bersifat tetap dan tidak berubah-ubah di sekitar Sensor Cahaya.

Kita bisa mengatur ambang batas cahaya normal. Apabila kita memutar Trimpot searah dengan jarum jam, maka sensitivitas/kepekaan sensor akan meningkat. Sedangkan apabila kita memutar Trimpot berlawanan dengan jarum jam, maka sensitivitas/kepekaan sensor akan menurun.

Arduino Light Sensor Pins

Sebelum kita memulai Tantangan 2, perhatikan kembali bahwa terdapat 2 pin output pada Sensor LDR, yakni pin AO dan DO. Pin AO merupakan singkatan dari pin Analog Output, sedangkan pin DO merupakan singkatan dari Digital Output.

Untuk mengetahui secara pasti intensitas atau tingkat kecerahan cahaya dalam suatu ruangan, kita akan menggunakan pin AO atau Analog Output sehingga kita bisa menampilkan angka yang bervariasi dari 0-1023 pada Serial Monitor. Dimana nilai 0 merupakan nilai terendah dan nilai 1023 merupakan nilai tertinggi yang bisa ditampilkan pada Serial Monitor.

Sedangkan kalau kita akan menggunakannya hanya untuk mengetahui apakah ada keberadaan cahaya atau tidak, kita akan menggunakan pin Digital Output yang akan berlogika LOW atau menampilkan angka 0 pada Serial Monitor ketika mendeteksi keberadaan cahaya, dan akan berlogika HIGH atau menampilkan angka 1 pada Serial Monitor ketika tidak mendeteksi keberadaan cahaya.

Pada Tantangan 1 ini, pertama kali kita akan menggunakan rangkaian komponen yang digunakan pada awal Tutorial #5 ini. Agar teman-teman tidak repot mencarinya kembali ke atas, kita akan menunjukkannya di bawah.

Arduino Light Sensor Wiring Diagram

Jika gambar Wiring Diagram di atas kurang jelas, teman-teman bisa gunakan tabel Wiring Diagram di bawah ini.

Sensor CahayaArduino Nano Expansion Board
Pin AOPin A0
Pin GNDPin G
Pin VCCPin V
Peringatan

Sebelum menyalakan Arduino Nano, harap periksa kembali rangkaiannya. Apakah sudah sama dengan Wiring Diagram?

Periksa kembali posisi pemasangan kaki-kaki. Diharapkan agar tidak terbalik dan sesuai dengan keterangan pin agar tidak merusak komponen.

Sketch Program di bawah ini pada dasarnya sama seperti yang telah dijelaskan pada penjelasan di atas. Hanya saja, kali ini kita akan menggunakan perintah analogRead() pada baris 8 untuk membaca nilai sinyal pada pin A0. Ketik dan upload lah program di bawah ini. Lihat hasilnya pada Serial Monitor.

TUTORIAL_5_SENSOR_CAHAYA_SERIAL_MONITOR.ino
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
// put your main code here, to run repeatedly:
int nilaiSensor = analogRead(A0);
Serial.println(nilaiSensor);
delay(1);
}

Nilai yang muncul pada Serial Monitor adalah nilai resistansi sensor ketika terkena lampu ruangan yang sedang menyala seperti ditunjukkan oleh gambar di bawah berada pada nilai 700-an. Kondisi cahaya ruangan saat ini akan kita anggap sebagai kondisi cahaya normal dan memiliki nilai 700-an pada kondisi normal sesuai yang tampil pada Serial Monitor.

Catatan

Perlu diingat, nilai yang muncul pada Tantangan 1 ini bisa berbeda dengan yang teman-teman dapatkan karena kondisi cahaya ruangan kita yang berbeda-beda. Jadi tidak perlu khawatir jika mendapatkan nilai yang berbeda dengan gambar di bawah ini.

Arduino Light Sensor Wiring Diagram

Kemudian, dengan kondisi cahaya ruangan yang sama dan tetap, putarlah Trimpot pada Sensor LDR menggunakan obeng plus secara perlahan agar tidak merusak komponen. Amati apakah ada perubahan nilai yang muncul pada Serial Monitor.

Setelah teman-teman putar baik searah jarum jam maupun berlawanan jarum jam, nilai yang muncul pada Serial Monitor tidak berubah, bukan? Alias tetap pada nilai yang sama dengan yang sebelumnya teman-teman dapatkan, bukan?

Hal ini karena putaran Trimpot tidak mempengaruhi hasil nilai pembacaan sensor. Melainkan hanya mempengaruhi batas ambang normal cahaya. Batas ambang normal cahaya adalah batas yang menentukan kapan lampu indikator pada Sensor LDR menyala dan kapan lampu indikator pada Sensor LDR padam berdasarkan tingkat kecerahan cahaya yang mengenai Sensor Cahaya.

Lampu indikator Sensor LDR ditunjukkan oleh panah nomor 2 pada gambar di bawah yang bertuliskan DO-LED. Lampu indikator ini akan membantu kita kapan kita harus berhenti memutar Trimpot pada Sensor LDR.

Arduino Light Sensor Wiring Diagram

Sebagai contoh, apabila kita mendapatkan nilai yang tetap dan tidak berubah sebesar 700-an pada Serial Monitor. Maka nilai tersebut akan dianggap sebagai batas ambang normal. Yakni kondisi dimana tingkat kecerahan ruangan di sekitar sensor dianggap normal.

Sedangkan jika kita melihat lampu indikator DO-LED menyala, meskipun nilai yang muncul pada Serial Monitor sudah berada pada ambang batas normal sebesar 700-an, maka kita harus memutar Trimpot pada Sensor LED berlawanan arah jarum jam secara perlahan-lahan dan berhenti memutarnya tepat ketika lampu indikator DO-LED telah padam.

Kemudian apabila kita menyorot Sensor LDR dengan senter, atau dengan mengarahkan pada cahaya yang lebih terang dari ruangan sekitar, lampu indikator DO-LED akan menyala. Apabila hal ini telah berhasil, maka dapat dikatakan kita telah mengatur ambang batas normal cahaya.

Kita akan belajar bagaimana melakukan hal tersebut di Tantangan 1 ini.

Berikut petunjuk bagaimana kita akan mengatur ambang batas normal Sensor Cahaya disertai disertai foto.

  1. Posisikan Sensor Cahaya seperti pada gambar di bawah. Kita akan menganggap tingkat kecerahan cahaya pada ruangan sekitar sensor saat ini berada pada kondisi normal. Perhatikan juga bahwa lampu DO-LED sedang menyala.

    Arduino Light Sensor Wiring Diagram

  2. Kemudian dengan menggunakan obeng plus, putarlah Trimpot berlawanan jarum jam ke kiri. Memutar trimpot berlawanan arah jarum jam akan menurunkan ambang batas sensor, sedangkan memutar trimpot searah jarum jam akan menaikkan ambang batas sensor.

    Arduino Light Sensor Wiring Diagram

    Semakin tinggi ambang batas sensor, maka akan semakin mudah lampu DO-LED menyala dengan cahaya sekecil apapun. Sedangkan semakin rendah ambang batas sensor, maka akan semakin sulit lampu DO-LED menyala sehingga dibutuhkan cahaya yang sangat terang untuk menyalakan lampu DO-LED.

  3. Putarlah Trimpot secara perlahan berlawanan arah jarum jam ke kiri sedikit demi sedikit sampai lampu indikator DO-LED padam.

    Arduino Light Sensor Wiring Diagram

  4. Setelah lampu indikator DO-LED padam, kini ambang batas normal Sensor Cahaya telah diatur. Lampu indikator DO-LED sekarang hanya akan menyala apabila mendapat cahaya yang lebih terang dari cahaya ruangan sekitar Sensor Cahaya saat ini.

    Arduino Light Sensor Wiring Diagram


Tantangan 2​

Setelah mengetahui bagaimana mengatur ambang batas cahaya normal, kita akan mencoba menyorot Sensor Cahaya dengan cahaya yang lebih terang dari cahaya ruangan sekitar Sensor Cahaya. Sebelumnya pada Tantangan 1 kita telah mengatur ambang batas cahaya normal. Yakni lampu indikator DO-LED tidak akan menyala apabila tidak terkena cahaya yang lebih terang dari cahaya ruangan sekitar Sensor Cahaya saat ini.

Sekarang kita akan menguji apakah ambang batas normal tersebut sudah sesuai dengan yang kita inginkan atau tidak. Pertama siapkanlah dahulu sumber cahaya seperti senter atau flashlight dari smartphone teman-teman dan ikuti langkah-langkah berikut:

  1. Sorot cahaya senter/flashlight smartphone teman-teman mendekati kepala Sensor Cahaya, tidak harus tepat di atas kepala Sensor Cahaya, namun cukup di dekatnya saja seperti pada gambar di bawah.

    Arduino Light Sensor Wiring Diagram

    Pada gambar di atas, menunjukkan bahwa lingkaran cahaya senter, meskipun belum mengenai kepala Sensor Cahaya, lampu indikator DO-LED sudah menyala. Hal ini terjadi karena ambang batas sensor cahaya masih tinggi. Kita tidak menginginkan hal ini.

  2. Untuk mengatasinya, kita akan tetap memposisikan lingkaran cahaya senter tetap berada pada tempat sebelumnya seperti pada gambar di bawah ini. Sambil memutar Trimpot pada Sensor Cahaya dengan menggunakan obeng plus berlawanan arah jarum jam ke kiri. Putarlah Trimpot tersebut secara perlahan-lahan sampai lampu indikator DO-LED padam.

    Arduino Light Sensor Wiring Diagram

  3. Apabila lampu indikator DO-LED telah padam meskipun lingkaran cahaya masih tetap berada di tempat yang sama seperti sebelumnya, hentikan memutar Trimpot pada Sensor Cahaya. Hal ini menandakan bahwa kita telah berhasil mengatur ambang batas normal Sensor Cahaya dengan lebih baik.

    Arduino Light Sensor Wiring Diagram

  4. Sekarang kita akan mendapati lampu indikator DO-LED pada Sensor Cahaya tidak akan menyala meskipun lingkaran cahaya senter belum berada berada di atas LDR dan belum tepat berada di atas LDR.

    Arduino Light Sensor Wiring Diagram

  5. Kemudian cobalah pindahkan lingkaran cahaya tepat di atas kepala Sensor Cahaya dengan menyorot LDR langsung seperti ditunjukkan oleh gambar di bawah.

    Arduino Light Sensor Wiring Diagram

Apabila teman-teman berhasil menyalakan lampu indikator dan memadamkan lampu indikator dengan posisi lampu senter seperti pada gambar langkah 4 dan 5 di atas, maka teman-teman telah berhasil melewati semua tantangan.


Tantangan 3​

Kita dapat menggunakan barisan pin analog pada Arduino Nano dari A0-A7 untuk membaca sinyal dengan menggunakan perintah analogread() maupun digitalRead(). Namun pada barisan pin digital Arduino Nano, kita hanya bisa membaca sinyal dengan menggunakan perintah digitalRead() saja.

Untuk menyegarkan ingatan teman-teman, gambar dibawah ini menunjukkan mana pin digital Arduino Nano dan mana pin analog Arduino Nano. Panah merah menunjukkan barisan pin digital Arduino Nano dan panah biru menunjukkan barisan pin analog Arduino Nano.

Arduino Light Sensor Wiring Diagram

Untuk membuktikan bahwa pin digital hanya bisa membaca sinyal dengan perintah digitalRead(), cobalah hubungkan pin AO (Analog Output) Sensor Cahaya pada pin digital 4 Arduino Nano Expansion Board.

Arduino Light Sensor Wiring Diagram

Jika gambar Wiring Diagram di atas kurang jelas, teman-teman bisa gunakan tabel Wiring Diagram di bawah ini.

Sensor CahayaArduino Nano Expansion Board
Pin AOPin 4
Pin GNDPin G
Pin VCCPin V
Peringatan

Sebelum menyalakan Arduino Nano, harap periksa kembali rangkaiannya. Apakah sudah sama dengan Wiring Diagram?

Periksa kembali posisi pemasangan kaki-kaki. Diharapkan agar tidak terbalik dan sesuai dengan keterangan pin agar tidak merusak komponen.

Kemudian ketik dan upload program sketch berikut. Kemudian perhatikan hasilnya pada Serial Monitor.

TUTORIAL_5_SENSOR_CAHAYA_SERIAL_MONITOR.ino
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
// put your main code here, to run repeatedly:
int nilaiSensor = analogRead(4);
Serial.println(nilaiSensor);
delay(1);
}

Teman-teman akan memperhatikan bahwa nilai hasil pembacaan pada pin digital 4 tidak akan berubah dan tetap berkisar pada angka 200 hingga 300 meskipun kita telah menyorot sensor cahaya menggunakan senter seperti ditunjukkan pada gambar Serial Monitor di bawah. Hal ini karena pin digital pada Arduino Nano tidak dapat membaca sinyal analog dari pin AO Sensor Cahaya.

Arduino Light Sensor Wiring Diagram

Kemudian cobalah mengganti perintah analogRead() pada baris 8 sketch di atas menjadi digitalRead() seperti pada gambar di bawah ini yang telah diubah pada baris 8.

TUTORIAL_5_SENSOR_CAHAYA_SERIAL_MONITOR.ino
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
// put your main code here, to run repeatedly:
int nilaiSensor = digitalRead(4);
Serial.println(nilaiSensor);
delay(1);
}

Upload dan perhatikan hasilnya pada Serial Monitor dengan sorotan cahaya senter.

Sekarang pada Serial Monitor akan menampilkan angka 0 ketika disorot oleh cahaya senter sehingga resistansinya dianggap rendah dan dapat menyalakan lampu indikator pada sensor. Dan akan menampilkan angka 1 ketika tidak disorot oleh cahaya senter sehingga resistansinya dianggap tinggi dan menyebabkan lampu indikator pada sensor menjadi padam.

Ketika LDR disorot cahaya senterKetika LDR tidak disorot cahaya senter
Ultrasonic Sensors akan menampilkan angka 0 pada Serial Monitor Ultrasonic SensorsUltrasonic Sensors akan menampilkan angka 1 pada Serial Monitor Ultrasonic Sensors

Dengan kata lain, apabila kita ingin membaca sinyal digital dari pin DO ataupun pin AO Sensor Cahaya menggunakan pin digital yang terdapat pada Arduino Nano, kita harus menggunakan perintah digitalRead() pada programnya.

Tantangan 4​

Pada tantangan terakhir ini kita akan mempelajari mengenai penggunaan pin DO (Digital Output) pada Sensor Cahaya. Pin DO yang dimaksud ditunjukkan pada gambar di bawah ini.

Arduino Light Sensor Wiring Diagram

Selanjutnya kita akan merangkai kabel dan komponen nya seperti pada Wiring Diagram di bawah ini. Pada dasarnya kita hanya menghubungkan pin DO Sensor Cahaya ke pin analog A0 Arduino Nano.

Arduino Light Sensor Wiring Diagram

Jika gambar Wiring Diagram di atas kurang jelas, teman-teman bisa gunakan tabel Wiring Diagram di bawah ini.

Sensor CahayaArduino Nano Expansion Board
Pin DOPin A0
Pin GNDPin G
Pin VCCPin V
Peringatan

Sebelum menyalakan Arduino Nano, harap periksa kembali rangkaiannya. Apakah sudah sama dengan Wiring Diagram?

Periksa kembali posisi pemasangan kaki-kaki. Diharapkan agar tidak terbalik dan sesuai dengan keterangan pin agar tidak merusak komponen.

Kemudian upload program di bawah dan lihatlah hasilnya pada Serial Monitor.

TUTORIAL_5_SENSOR_CAHAYA_SERIAL_MONITOR.ino
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
// put your main code here, to run repeatedly:
int nilaiSensor = digitalRead(4);
Serial.println(nilaiSensor);
delay(1);
}

Teman-teman akan menemukan bahwa Serial Monitor akan menampilkan angka di atas 1000-an ketika Sensor Cahaya tidak disorot lampu senter dan akan menampilkan angka di bawah 50-an ketika disorot oleh lampu senter.

Nilai ketika disorot oleh cahaya senter yang didapat dapat berbeda-beda tergantung kuat cahaya senter yang menyorot kepala Sensor Cahaya, namun yang pasti adalah nilai nya akan berada di bawah 100-an. Kira-kira berapa nilai yang teman-teman dapatkan?

Ketika LDR disorot cahaya senterKetika LDR tidak disorot cahaya senter
Ultrasonic Sensors akan menampilkan angka di bawah 50-an pada Serial Monitor Ultrasonic SensorsUltrasonic Sensors akan menampilkan angka di atas 1000-an pada Serial Monitor Ultrasonic Sensors

Sekarang teman-teman bisa mengetahui, bahwa pin digital yang terdapat pada Arduino Nano juga bisa membaca sinyal analog dengan menggunakan perintah analogRead() pada programnya, selama pin yang kita pasang pada Sensor Cahaya adalah pin Analog Output juga.

Namun pin digital yang terdapat pada Arduino Nano tidak bisa membaca sinyal analog dari pin Analog Output seperti yang sudah kita coba pada Tantangan 4 sebelumnya.