BAB VII. SENSOR CAHAYA & SUHU
7.1 Tujuan
1, Mahasiswa mengenal beberapa sensor cahaya dan sensor suhu.
2. Mahasiswa mampu memprogram aplikasi untuk sensor-sensor tersebut
3. Mahasiswa mampu menghitung konversi ADC ke dalam bentuk besaran yang
terukur
7.2 Peralatan
1, ArduinoB
LM35 temperature sensor = 1 buah
Breadboard and jumper wires
A bunch of LEDs, different colors for a better effect
ye eS
Some resistors between 220-1,000 ohm
13 Teori
7.3.1 Sensor Cahaya
Light Dependent Resistor atau yang biasa disebut LDR adalah jenis resistor yang nilainya
berubah seiring intensitas cahaya yang diterima oleh komponen tersebut. Biasa digunakan
sebagai detektor cahaya atau pengukur besaran konversi cahaya. Light Dependent
Resistor, terdiri dari sebuah cakram semikonduktor yang mempunyai dua buah
elektroda pada permukaannya, Pada saat gelap atau cahaya redup, bahan dari cakram
tersebut_ menghasilkan elektron bebas dengan jumlah yang relatif kecil.Schingga
hanya ada sedikit elektron untuk mengangkut muatan elektrik. Artinya pada saat cahaya
redup LDR menjadi konduktor yang buruk, atau bisa disebut juga LDR-memiliki
resistansi yang besar pada saat gelap atau cahaya redup. Pada saat cahaya terang,
ada lebih banyak elektron yang lepas dari atom bahan semikonduktor tersebut. Sehingga
akan ada lebih banyak elektron untuk mengangkut muatan elektrik. Artinya pada saat
cahaya terang LDR menjadi konduktor yang baik, atau bisa disebut juga LDR memiliki
resistansi yangkecil pada saat cahaya terang.
118Prinsip Kerja LDR
Pada sisi bagian atas LDR terdapat suatu garis atau jalur melengkung yang menyerupai
bentuk kurva, Jalur tersebut terbuat dari bahan cadmium sulphida yang sangat sensitiv
tethadap pengaruh dari cahaya, Jalur cadmium sulphida yang terdapat pada LDR. Jalur
cadmium sulphida dibuat melengkung menyerupai kurva agar jalur tersebut dapat
dibuat panjang dalam ruang (area) yang sempit. Cadmium sulphida (CdS) merupakan
bahan semi-konduktor yang memiliki gap energi antara elektron konduksi dan elektron
valensi. Ketika cahaya mengenai cadmium sulphida, maka energi proton dari cahaya
akan diserap sehingga terjadi perpindahan dari band valensi ke band konduksi. Akibat
perpindahan elektron tersebut_mengakibatkan hambatan dari cadmium. sulphida
berkurang dengan hubungan kebalikan dari intensitas cahaya yang mengenai
LDR.Lihat gambar dibawah ini.
Gambar 7.1 Sensor LDR.
LDR disebut juga s
‘agai photoresistor sebab alat ini akan memiliki resistansi yang
akan berubah seiring dengan perubahan intensitas cahaya yang mengenainya. Dalam
kondisi gelap, resistansi LDR bisa mencapai 10 M ohm, tapi dalam kondisi terang,
resistansi LDR turun hingga 1 K ohm bahkan bisa kecil lagi (Gambar 7.2 dan 7.3),
Sifat inilah yang membuat LDR bisa dimanfaatkan sebagai sensor cahaya. LDR terbuat
dari sebuah cakram semikonduktor seperti kadmium sulfida dengan dua buah elektroda
pada permukaannya. Pada saat intensitas cahaya yang mengenai LDR sedikit, bahan
dari cakram LDR tersebut menghasilkan elektron bebas dengan jumlzh yang relatif kecil.
Schingga hanya ada sedikit elektron untuk mengangkut muatan elektrik. Artinya saat
intensitas cahaya yang mengenai LDR sedikit maka LDR akan memiliki resistansi yang
besar.
119,Gambar 7.2 Resistansi LDR diterangi lampu
=
Gambar 7.3 Resistansi LDR ketika lampu dihalangi kertas
Sedangkan pada saat kondisi terang, maka intensitas yang mengenai LDR banyak.
Maka energi cahaya yang diserap akan membuat elektron bergerak cepat schingga
lepas dari atom bahan semikonduktor tersebut, Dengan banyaknya elektron bebas,
maka muatan listrik lebih mudah untuk dialirkan, Artinya saat intensitas cahaya yang
mengenai LDR banyak maka LDR akan memiliki resistansi yang kecil dan menjadi
konduktor yang baik.
Gambar 7.3 adalah resistansi pada LDR dalam kondisi terang dan kondisi gelap. Dalam
kondisi terang, resistansi masih kisaran 1K ohm, dan ketika cahaya sedikit terhalangi
sehingga agak gelap, maka resistansi meningkat hingga puluhan kilo ohm.
120Karakteristik inilah yang bisa kita manfaatkan untuk mengaktifkan relay dan
menghidupkan lampu.
7.3.2 Sensor Suhu
LM35 merupakan IC sensor suhu dengan bentuk yang mirip dengan transistor. Kaki IC
ini hanya ada tiga, yaitu untuk VCC, Output, dan GND (Gambar 7.5)
Gambar 7.5 Sensor suhu LM35
Sensor ini bisa digunakan untuk mengukur subu dari -55° — 150° celeius. Berdasarkan
datasheet LM35, maka kita bisa menggunakan pengukuran penuh (-55 — 150° celcius)
atau pengukuran sebagian yaitu hanya bisa menghitung dari 2 — 150° celcius. Untuk
pengukuran penuh, maka rangkaian dasarnya seperti tampak pada Gambar 7.6 sedangkan
untuk pengukuran sebagian, rangkaian dasamya adalah seperti pada Gambar 7.7
Full-Range Centigrade
perature Sensor
vs
Lvs Vor
rt
(choose Ry =v (50 UA,
oun = 1500 mv at 150°C
Voor = 250 mV at 25°C
Vout = -§50 mV at-85°C
Gambar 7.6 Rangkaian dasar pengukuran suhu penuh LM35,
121Basic Centigrade Temperature Sensor
2°C to 180°C)
Ms
(avtoz0w
mas |_oureur
‘Omv + 10.0mv/"C
Gambar 7.7 Rangkaian dasar pengukuran suhu sebagian LM35
7.4 Percobaan 1 : Sensor Cahaya
Gambar 7.4 Sensor cahaya dan Arduino
Berdasarkan Rangkaian Gambar 7.4, yang perlu Anda siapkan adalah resistor 10 K
ohm, LDR, dan beberapa kabel jumper. Agar bisa coba- coba, silakan resistor 10 K
ohm bisa Anda ganti dengan potensiometer 50 K atau 100 K, sehingga Anda lebih mudah
ketika mencoba dengan resistansi yang berbeda, Potensiometer juga bisa digunakan untuk
kalibrasi input pada Arduino,
1. Salah satu kaki LDR disambungkan ke VCC pada Arduino
2. Salah satu kaki Resistor disambungkan ke GND pada Arduino
3. Sambungkan sis
dihubungkan ke pin AO pada board Arduino
kaki LDR dan sisa kaki resistor, kemudian sambungan tersebut
122Kodeprogram
// pin AQ ke LDR
const int pinLDR = AQ;
void setup() {
Serial.begin (9600);
pinMode (pinLDR,
INPUT) ;
)
int de
LOR = 0;
{
analogRead (pinLDR) ;
Serial.print ("
; Serial.print (dataLDR);
jataLDR :
Serial.print(" Kondisi
"i:
if(dataLDR < 159) {
Serial.printin("GELAP"
de
Jelse if(da 00) ¢
-printin ("REDUP"
<
jelse if(dataLDR < 450) {
Serial.print1n("TERANG"
println ("SILAU")
delay (1000);
Program pada Sketch diatas akan membaca nilai tegangan pada sensor dan
mengirimkannya ke komputer melalui komunikasi serial. Dengan Arduino, kita bisa
membuat berbagai logika untuk sensor cahaya sehingga aplikasi dari LDR ini bisa
diperluas dan dibuat lebih kompleks diintegrasikan dengan berbagai sistem
1237.5 Percobaan 2 : Sensor Suhu
Berdasarkan karakteristik kaki-kaki pada IC LM35, maka kita akan menggunakan
rangkaian sebagian sehingga Rangkaian Gambar 7.7 hanya bisa mengukur suhu dari 2
hingga 150 derajat celcius. Cara merangkainya sebagai berikut :
Gambar 7.8 Rangkaian sensor suhu LM35 dengan ArduinoB
1. Sambungkan kaki 1 ke VCC
2. Sambungkan kaki kedua (tengah) ke AO. AO adalah pin analog, kaki pin analog
berfungsi untuk berbagasi tranduser / sensor yang mengharuskan sinyal analog.
Oleh sebab itu, untuk membaca kaki ini menggunakan analogRead(), sedangkan
untuk menulisnya menggunakan analogWrite().
3. Sambungkan kaki ke-3 ke GND.
Karakteristik dari sensor ini yaitu setiap kenaikan 10 mV pada kaki output,
menandakan kenaikan suhu 1° celcius. Sehingga, karena Rangkaian Gambar 7.7 hanya
mampu mengukur dari 2° celeius, maka output LM35 minimal adalah 20 mV dan
maksimal 1500 mV. Konversi suhu pada output LM35 juga tergantung pada tegangan
referensi yang digunakan,
124Tegangan referensi pada arduino ada tiga (khusus Arduino Uno) 7, tegangan referensi
default, internal, dan eksternal, Jika kita tidak mendefinisikan tegangan referensi yang
akan kita gunakan, maka Arduino secara default akan menggunakan tegangan referensi
5 volt, Selain 5 volt, tegangan default yang disediakan oleh arduino adalah 3.3 volt.
Akan tetapi kita harus membuat jumper dari 3.3 volt (di board Arduino) ke pin AREF,
alu mengeksekusi perintah analogReference(DEFAULT).
Tegangan referensi intemal Arduino yaitu 1.1 volt, untuk menggunakan tegangan
referensi ini, kita harus memberikan perintah analogReference(INTERNAL). Tapi jika
ingin _menggunakan tegangan referensi selain 5, 3.3, dan 1.1 volt, kita bisa
menggunakan tegangan referensi eksternal,
‘Tegangan referensi ini harus antara 0 dan $ volt, jika tidak, Arduino bisa jadi akan
rusak. Jika kita menggunakan tegangan referensi custom ini, maka kita harus
memasang sumber tegangan ke = AREF == dan. memberi_perintah
analogReference(EXTERNAL);
et wir pee,
a
Rebus
LM35 Precision Centigrade T
7 Features 3
+ Caivated Dincyn cots Conta) z
5 Gieare'imyr Sone acon
1 are ema pecrcy 260) %
5 Rasa orFut-see 18 Range ee
+ Suttle or Remote Appleaions
5 Lowcoet ve fo Watr Lara! Fog z
1 Opomen tom 4 vio 80 =
{Chetan soa Gaetan x
5 Low otentng oe mu Ar =
5 Nondineaty ony 26 type e
1 [Stina Capita load
Gambar 7.9 Datasheet LM35
(Sumber : ttp://www.ti.com/lit/ds/symlink/lm35.pdf)
125Sebelum membuat program, kita akan menghitung bagaimana cara mengukur dan
mengkonversi output dari LM35 menjadi suhu, Kita akan mengkonversi voltase pada
kaki output LM35, kemudian menghitungnya berdasarkan tegangan referensi yang
digunakan, mengubahnya menjadi celcius, lalu mengirimkannya ke komputer melalui
komunikasi serial. Jika kita menggunakan tegangan referensi 5 volt, maka Arduino bisa
mengukur setidaknya hingga $000 mV. padahal kemampuan LM35 hanya sebatas 150°
celcius atau 150 x 10 mV = 1500 mV (1.Svolt). Schingga tegangan yang keluar dari
kaki output LM3S tidak akan mungkin melebihi 1.5 volt.
Berdasarkan persamaan sedethana, maka kita bisa menghitung suhu berdasarkan
perbandingan antara kapasitas voltase yang bisa dicacah oleh pin analog Arduino
(1024) dan kemampuan LM35 mengukur subu.
Suhu dalam Voltase (T) : 0 - 500
Cacahan Voltase input (Vin) : 0 - 1024
0/500 = 0/1024
1/500 = Vin/1024
T= (vin * 500) / 1024
Kode Program :
const int pSuhu = A;
float suhu, data;
void setup() {
Serial.begin (9600);
pinMode (pSuhu,
INPUT) ;
)
void loop() {
data = analogRead (ps
hu);
126suhu = data * 500 /
1024;
erial.print ("
Serial.print (data);
Serial.print(", suhu:
"); Serial.print (suhu);
Serial.printin();
delay (1000);
Program pada Sketch diatas akan membaca data dari sensor suhu pada pin AO di board
Arduino kemudian mengkonversinya menjadi suhu. Informasi suhu akan dikirim ke
komputer melalui komunikasi serial dengan baud rate 9600 setiap 1000 milisekon.
float suhu, data;
Variabel suhu dan data menggunakan float, yaitu tipe data yang memungkinkan
memuat angka desimal. Di sini menggunakan desimal karena adanya pembagian
sehingga jika kita menggunakan integer, maka hasil perhitungan kita kurang presisi
karena hasil pembagiannya akan selalu dibulatkan.
data = analogRead (psuhu) ;
Fungsi analogRead () digunakan untuk membaca masukan dari sensor analog. Nilai
dari analog read ini berkisar dari 0 hingga 1023 berdasarkan kemampuan dari
mikrokontroller dalam mencacah dari 0 - 5 volt
Untuk mendapatkan hasil pengukuran yang lebih presisi, maka kita bisa mengganti
tegangan referensi yang digunakan. Jika kita menggunakan tegangan referensi 5000
mV, maka space dari 1500 — $000 mV tidak akan pernah terpakai. Oleh sebab itu, kita
bisa menggunakan tegangan referensi 1500 mV (sesuai dengan output maksimal pada
LM35) atau menggunakan tegangan referensi yang lebih rendah, misal tegangan
Anda
referensi INTERNAL yang nilainya adalah 1.1 volt. Sebagai catatan, ji
menggunakan tegangan referensi 1.1 volt (1100 mV), maka batas maksimal suhu yang
bisa dihitungan adalah 110° celeius.
127Program sensor suhu tegangan referensi 1.1 volt :
const int pSuhu = AQ;
float suhu, di
void setup() {
// mengubah tegangan referensi ke internal,
1.1 volt
analogReference (INTERNAL
); Serial.begin (9600);
pinMode (pSuhu, INPUT);
void leep() {
data = analogRead(psuhu) ;
u = data * 110 / 1024;
Serial.print ("dai
(data);
erial.pri
Serial.pri suhu:
Serial.print
Serial.pri
Serial.prin
)); Serial.print(" F)");
Serial.printin();
delay (1000);
co":
(convert ToF (sunu
float convertToF (float suhuc)
return (suhuC * 9.0/5.0) + 32;
Program pada Sketch diatas menggunakan tegangan referensi internal 1.1 volt
kemudian suhu dalam celcius dikonversi menjadi Fahrenheit. Berdasarkan konsepnya,
konversi celcius ke Fahrenheit menggunakan rumus:
128Kemudian informasi suhu dalam celcius dan Fahrenheit dikirim ke komputer dengan
komunikasi serial.
7.6 Latihan
Gunakan tampilan LCD 2C dan Multi 7-Segmen untuk menampilkan nilai dari
percobaan LDR dan LM35.
Gunakan sensor LDR, selesaikan bisnis proses berikut
Jika LDR dalam posisi terpapar cahaya :
Buzzer akan menyala
LCD I2C tampil “ADA MALING!!”
LED kondisi Hidup-Mati secara bergantian
dan hentikan Buzzer jika tombol ditekan,
Gunakan LCD Shield, manfaatkan tombol select untuk menentukan ukuran dalam.
celcius dan fahrenheit. Gunakan tombol naik turun untuk memindah tampilan. Jika
celcius yang terseleksi maka otomatis akan di tampilkan suhu terkini dalam
celcius, jika fahrenheit yang terpilih maka akan ditampilkan suhu dalam
Fahrenheit.
Buat sketch untuk menangani bisnis proses Pantauan Cuaca berikut
Asumsi :
Jika suhu lebih dari atau sama dengan 30 dan lumen lebih dari 50 berarti
Panas,
Jika suhu lebih dari atau sama dengan 25 dan lumen lebih dari 45 berarti
Cerah,
Jika suhu kurang dari atau sama dengan 25 dan lumen kurang dari 40 berarti
Mendung,
Jika suhu kurang dari atau sama dengan 23 dan lumen kurang dari 40 berarti
Hojan,
Jika suhu kurang dari atau sama dengan 19 dan lumen kurang dari 40 berarti
Dingin,
129‘Tampilan :
‘Tampilkan kedua nilai temperatur dan lumen dengan LCD I2C, baris pertama akan
berisi nilai suhu dan lumen yang akan berganti otomatis ketika ada perubahan
nilai.
Indikator hasil pengukuran :
+ Jika kondisi cuaca cerah dan panas akan menyalakan LED hijau
+ Jika kondisi cuaca mendung dan dingin akan menyalakan LED kuning
+ Jika kondisi cuaca Hujan akan menyalakan LED merah dan buzzer bunyi.
130