Anda di halaman 1dari 10

LAPORAN PRAKTIKUM MIKROPROSESOR

JOB 4
PIN ANALOG DAN LDR

Di susun oleh :

Dinda Ayu Ramadhaniyah


NIM. 18642008

Jurusan Teknik Elektro


Politeknik Negeri Samarinda
2021
I. Tujuan :
1. Mengetahui cara mengatur pin analog sebagai masukan
2. Mengetahui cara menggunakan serial monitor/terminal pada IDE Arduino
3. Mengetahui cara mengkonversi kode tampilan menjadi nilai parameter yang
diukur.
4. Mengetahui cara kerja Light Dependent Resistor (LDR).
5. Mengetahui cara menggunakan LDR sebagai sensor cahaya.
6. Memanfaatkan pin analog dalam aplikasi pengaturan.

II. Teori :
Pada papan sirkuit (circuit board) Arduino Uno, selain terdapat pin-pin digital
juga terdapat beberapa pin analog. Enam buah pin analog, seperti yang ditunjukkan
dalam Gambar 1, hanya berfungsi sebagai masukan dan bukan keluaran. Sensor-
sensor analog dihubungkan dengan pin masukan analog untuk mengubah besaran-
besaran fisik lain menjadi tegangan 0 hingga 5 V. Tegangan analog ini kemudian
diubah menjadi kode digital oleh bagian bernama Analog to Digital Converter (ADC)
dalam mikrokontroler.

Gambar 1. Enam buah pin analog pada board Arduino Uno


Sumber: components101.com
Dengan menggunakan fasilitas dalam IDE Arduino bernama monitor serial,
nilai kode digital yang ditampilkan dalam angka desimal ditampakkan pada layar
komputer. Untuk tegangan 0 hingga 5V, angka yang ditunjukkan bernilai 0 hingga
1023. Tentu saja angka-angka decimal ini dapat ditransfer menjadi tampilan nilai
besaran fisik yang diukur. Transformasi nilai dilakukan dengan membuat program
konversi yang disertakan dalam program dalam mikrokontroler. Cara lainnya adalah
dengan membuat program konversi yang disertakan dalam program aplikasi di
komputer.
Beberapa contoh komponen elektronika yang dapat digunakan sebagai masukan
pada pin analog antara lain sensor suhu LM35, Pontesiometer, sensor LDR (Light
Dependent Resistor), dll.
LDR adalah komponen elektronik yang nilai resistansinya berkurang jika
permukaannya terkena cahaya. Semakin tinggi intensitas cahaya, semakin rendah nilai
resistansinya. Tampilan sebuah LDR ditunjukkan dalam Gambar 2.

Gambar 2. Light Dependent Resistor


Dengan sifatnya ini, LDR dapat digunakan sebagai sensor cahaya dan dapat
dihubungkan pada mikrokontroler untuk mengontrol beban listrik di berbagai aplikasi.
Sebagai contoh, LDR dapat digunakan sebagai alat ukur intensitas cahaya (lux meter).
Selain itu, LDR juga dapat digunakan sebagai sensor untuk menghidupkan lampu atau
mengatur intensitas cahaya lampu.

III. Alat Percobaan :


 Komputer atau Laptop
 Board Arduino Uno
 Kabel USB
 Potentiometer 10 KΩ
 Resistor 100 Ω dan 10 KΩ
 LDR (Light Dependent Resistor)

IV. Langkah Percobaan :


1. Percobaan pertama hubungkan terminal potentiometer dengan pin Arduino
dengan rangkaian seperti dalam Gambar 3.

Gambar 3 Rangkaian percobaan

2. Bukalah IDE Arduino, kemudian hubungkan computer dengan board Arduino


dengan menggunakan kabel USB.

3. Tuliskan program berikut pada editor IDE. Program asli terdapat dalam
website arduino.cc
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}

// the loop routine runs over and over again forever:


void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// print out the value you read:
Serial.println(sensorValue);
delay(100); // delay in between reads for stability
}

4. Compile dan upload program ke board Arduino.


5. Klik menu Tools dan pilih menu Serial Monitor.
6. Saat muncul window Serial Monitor, pilih kecepatan 9600 baud sesuai dengan
kecepatan data serial yang ditentukan dalam program di atas. Maka akan
muncul tampilan angka pada window Serial Monitor.
7. Putar-putarlah kenop potentiometer dan amati tampilan angka yang muncul di
layar.
8. Jelaskan perubahan yang terjadi pada tampilan angka saat kenop diputar-putar.
9. Tuliskan tampilan-tampilan angka pada posisi putaran paling kiri, setengah,
dan paling kanan.
10. Apa arti tampilan angka maksimum hanya 1023, jika dihubungkan dengan
kemampuan ADC?
11. Mengapa nilai angka pada posisi setengah putaran tidak sama dengan setengah
dari 1023? Jelaskan.
12. Buatlah tambahan program yang dapat mengkonversi nilai 0 hingga 1023
menjadi 0 hingga 5 Volt.
13. Percobaan Kedua Hubungkan LDR, resistor 1 kΩ, LED dan resistor 100 Ω
pada pin Arduino dengan rangkaian seperti dalam Gambar 4.

Gambar 4. Rangkaian Percobaan

14. Lakukan kembali langkah percobaan 2 hingga 6.


15. Jika rangkaian LDR dianggap mampu mengukur intensitas cahaya dengan
range 0 hingga 20000 lux, buatlah modifikasi pada program agar tampilan
yang muncul pada serial monitor adalah dalam satuan lux.
16. Berikan tiga kondisi intensitas sumber cahaya dan amati perubahan nilai pada
tampilan di serial monitor. Berikan penjelasan tentang data yang diperoleh.
17. Untuk percobaan berikutnya, tentukan satu nilai intensitas di mana cahaya
kurang (agak gelap). Kemudian lakukan modifikasi pada program agar LED
menyala ketika intensitas cahaya berada di bawah nilai yang telah ditentukan
tadi.
18. Tuliskan program yang telah dibuat tadi.
19. Untuk percobaan terakhir, lakukan modifikasi pada program agar LED
menyala terang ketika intensitas sumber cahaya berkurang dan semakin redup
ketika intensitas sumber cahaya bertambah (Gunakan PWM untuk mengatur
nyala LED).
20. Tuliskan program yang telah dibuat tadi.

V. Data Hasil Percobaan dan Analisa :


• Menghubungkan potensiometer dengan pin arduino.
Pada percobaan ini memiliki program sebagai berikut:

// the setup routine runs once when you press reset:


void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}

// the loop routine runs over and over again forever:


void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// print out the value you read:
Serial.println(sensorValue);
delay(100); // delay in between reads for stability
}

Saat kenop potensiometer di putar maka akan muncul angka pada serial monitor,
dan akan semakin besar saat kenop diputar ke kanan, juga semakin mengecil
jika diputar ke kiri. Pada posisi palang kiri serial monitor menampilkan nilai 0,
pada posisi setengah 512, dan posisi paling kanan 1023.
Arti dari nilai maksimum 1023 ialah karena pin analog arduino hanya mampu
menerima nilai hingga 10 bit sehingga dapat mengkonversi data analog dengan
1024 keadaan(dimulai dari 0). Proses konversi dari nilai analog kedigital ini
disebut ADC(Analog to Digital Coversion) yang dimana setiap 1 angka desimal
mewakili angka sebesar 0,004887585 volt sehingga angka 1023 sama dengan 5
volt yang dimana tegangan 5 volt ini adalah tegangan kerja bagi komponen-
komponen elektronika.
Nilai pada setengah putaran dan setengah dari 1023 berbeda karena pada
pemrograman percobaan ini hanya menampilkan bilangan bulat bukan bilangan
desimal sehingga nilai yang muncul pada serial monitor ialah 512, sedangkan
nilai setengah dari 1023 ialah 511,5.

• Pengkonversian nilai 0 – 1023 menjadi 0 – 5volt. Pada percobaan ini memiliki


program sebagai berikut :
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}

// the loop routine runs over and over again forever:


void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
Float tegangan = sensorValue/1023.0 * 5.0
// print out the value you read:
Serial.println(tegangan);
delay(100); // delay in between reads for stability
}

Sesuai pada penjelasan sebelumnya yang dimana setiap 1 angka yang telah di
konversi mewakili 0,004887585 volt. dan pada pemrograman percobaan 2 ini
telah di berikan rumus agar setiap angka yang keluar pada serial monitor sudah
terkonversi menjadi tegangan dan dapat menampilkan angaka desimal karena
adanya fungsi “float”. Jika angka pada setengah putaran ialah 512 maka rumus
pengkonversiannya ialah 512(5 / 1023) = 2,5 volt.
Selain menggunakan rumus program juga dapat di sederhanakan dengan
menggunakan fungsi “map” yang dimana hanya perlu menginputkan nilai
minimal dan maksimal dari angka yang ingin di konversikan dan angka hasil
pengkonversian.
• Melakukan perubahan pada tampilan serial monitor agar nilai yang muncul
adalah dalaam satuan “lux” dengan range 0 – 20000 lux. Percobaan ini memiliki
program sebagai berikut :

// the setup routine runs once when you press reset:


void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}

// the loop routine runs over and over again forever:


void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// print out the value you read:
Float lux = map (sensorValue, 0, 900, 0, 20222) ;
Serial.println(lux);
delay(100); // delay in between reads for stability
}

Pemrogramman pada percobaan ini menggunakan fungsi “map” kurang lebih


sama dengan percobaan sebelumnya hanya saja pada “Serial.println” diubah
agar pada serial monitor satuannya berubah menjadi lux, dan pada fungsi
“map” nilai maks yang ingin dikonversikan 900 bukan 1023 sebap nilai
maksimal yang dihasilkan dari senter handphone saya hanya mencapai 900 saja.
Ada 3 kondisi intensitas cahaya yang saya dapatkan yaitu :
1. 15000 lux (Terang), senter sangat dekat dengan sensor LDR.
2. 5000 lux (Agak gelap), senter jauh dari sensor LDR.
3. 700 lux (Gelap), sensor LDR saya tutup dengan jari.

• Menentuka suatu intensitas cahaya(Agak gelap), dan memodifikasi program agar


LED menyala saat intensitas cahaya berada dibawah nilai yang telah ditentukan.
Pada percobaan ini memiliki program sebagai berikut :

// the setup routine runs once when you press reset:


void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
pinMode (ldrPin, INPUT) ;
Pin Mode (ledPin, output) ;
}

// the loop routine runs over and over again forever:


void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// print out the value you read:
Float lux = map (sensorValue), 0, 900, 0, 20000) ;
Serial.println(lux);
If (lux < 50000 9
digitalWrite (ledPin, HIGH) ;
(else if 9lux > 5000) (
digitalWrite (ledPin, LOW) ;
delay(100); // delay in between reads for stability
}

Pada percobaan kali ini saya menentukan nilai 5000 lux sebagai patokan untuk
menentukan nyala, padamnya LED. Pada pemrograman saya menambahkan
fugnsi “if” yang berfungsi apabila input mendapat tegangan maka program akan
melaksanakan perintah dari “if” tadi jadi pada program ini jika lux kurang dari
5000 maka LED akan menyala yang ditandai dengan perintah “HIGH” yang
menyebapkan LED akan mendapatkan sumber tegangan , dan sebaliknya jika
lux lebih dari 5000 maka LED akan padam yang ditandai dengan perintah
“LOW” yang menyebapkan LED tidak mendapatkan sumber tegangan.

• Modifikasi pada program agar LED menyala ketika intensitas cahaya berkurang
dan semakin redup ketika intensitas cahaya bertambah menggunakan PWM untuk
mengatur nyala LED. Percobaan ini memiliki program sebagai berikut :

Int ldrPin = A0 ;
Int ldrPin = 3 ;
Int lux = 255 ;

Void setup () {
pinMode (ledPin, OUTPUT) ;
pinMode (ldrPin, INPUT) ;
}

void loop() {
Serial.println(lux) ;
analogWrite (ledPin, lux) ;
}

Untuk menggunakan PWM (Pulse Width Modulation) dapat dilakukan dengan


perintah “analalogWrite”. PWM bekerja pada frekuensi 500HZ artinya 500
siklus dalam satu detik dan pada setiap siklusnya dapat diberi nilai 0 – 255. Jadi
ketika kita memberikan angka 0 maka ledPin tidak akan mendapatkan tegangan
5volt sehingga LED tidak menyala dan sebaliknya saat kita memberi angka 255
maka ledPin akan selalu medapat tegangan 5 volt sehingga LED dapat menyala
terang. Jika kita memberikan angaka 50% dari 255 maka setengah siklus ledPin
bertegangan 5 volt dan setengahnya lagi bertegangan 0 volt yang
mengakibatkan LED redup.

VI. Kesimpulan :
1. Pin analog arduino hanya mampu menerima nilai hingga 10 bit dengan nilai
maksimal 1023.
2. Angka 1023 tersebut dapat di konversikan menjadi tegangan dengan range 0-
5volt dengan cara menggunakan rumus atau pun menggunakan fungsi “map”.
3. Fungsi “map” juga dapat digunakan untuk mengubah suatu range nilai.
4. “Serial.println” dapat digunakan untuk mengubah satuan dari nilai yang di
tampilkan pada serial monitor.
5. Dengan membuat suatu program pada arduino sensor cahaya dapat digunakan
sebagai lux meter
6. Kita dapat menggunakan arduino untuk mempermudah pekerjaan sehari hari
seperti pada percobaan 4 yang pada percobaan tersebut kita dapat mematikan
atau menyalakan LED atau lampu tanpa menggunakan saklar manual.
7. Kita dapat mengatur suatu hasil outputan dengan menggunakan PWM.

Anda mungkin juga menyukai