Anda di halaman 1dari 44

BAB V

INTERFACE ADC TO LCD


5.1. Tujuan
1. Praktikan dapat memahami konsep Arduino Mega 2560.
2. Praktikkan mampu membuat rangkaian menggunakan Arduino.
3. Praktikkan mampu menggunakan software Proteus.
4. Praktikkan mampu menggunakan Arduino IDE.
5. Praktikkan mampu menggunakan Tinkercad.
6. Praktikkan mampu memahami prinsip ADC.
7. Praktikkan dapat memahami cara kerja dari rangkaian yang dibuat pada
praktikum kali ini.
5.2. Alat dan Bahan
5.2.1. Laptop/PC

Gambar 5. 1 Laptop

Laptop adalah komputer bergerak (bisa dipindahkan dengan mudah) yang


berukuran relatif kecil dan ringan, beratnya berkisar dari 1-6 kg, tergantung ukuran,
bahan, dari spesifikasi laptop tersebut, laptop dapat digunakan dalam lingkungan yang
berbeda dari komputer. Mereka termasuk layar, keyboard, dan trackpad atau trackball,
yang berfungsi sebagai mouse. Laptop berfungsi sebagai media yang menjalankan
circuit simulator TinkerCad.
5.2.2. Proteus 8 Professional

Gambar 5. 2 Proteus

Software Proteus adalah sebuah software yang digunakan untuk mendesain PCB
yang juga dilengkapi dengan simulasi PSpice pada level skematik sebelum rangkaian
skematik di-upgrade ke PCB untuk memastikan PCB dapat berfungsi dengan
semestinya. Pada praktikum ini, proteus berfungsi sebagai simulator untuk mendesain
PCB rangkaian encoder rotary dalam praktikum ini.
5.2.3. Arduino IDE

Gambar 5. 3 Arduino IDE

IDE itu merupakan kependekan dari Integrated Developtment


Enviroenment, atau secara bahasa mudahnya merupakan lingkungan terintegrasi yang
digunakan untuk melakukan pengembangan. Disebut sebagai lingkungan karena melalui
software inilah Arduino dilakukan pemrograman untuk melakukan fungsi-fungsi yang
dibenamkan melalui sintaks pemrograman. Arduino menggunakan bahasa pemrograman
sendiri yang menyerupai bahasa C. Bahasa pemrograman Arduino (Sketch) sudah
dilakukan perubahan untuk memudahkan pemula dalam melakukan pemrograman dari
bahasa aslinya. Sebelum dijual ke pasaran, IC mikrokontroler Arduino telah ditanamkan
suatu program bernama Bootlader yang berfungsi sebagai penengah
antara compiler Arduino dengan mikrokontroler.
5.2.4. Board Arduino Mega 2560

Gambar 5. 4 Board Arduino


Arduino adalah Board berbasis mikrokontroler atau papan rangkaian elektronik
open source yang di dalamnya terdapat komponen utama yaitu sebuah chip
mikrokontroler dengan jenis AVR dari perusahaan Atmel. Mikrokontroler itu sendiri
adalah chip atau IC (integrated circuit) yang bisa diprogram menggunakan komputer.
Tujuan menanamkan program pada mikrokontroler adalah agar rangkaian elektronik
dapat membaca input, memproses input tersebut dan kemudian menghasilkan output
sesuai yang diinginkan. Jadi mikrokontroler bertugas sebagai otak yang mengendalikan
proses input, dan output sebuah rangkaian elektronik

5.2.5. Tinkercad 

Gambar 5. 5 TinkerCad
TinkerCad merupakan sebuah platform berbasis web penyedia sarana untuk
belajar secara online terkait desain 3D, rangkaian elektronika, dan codeblock. Pada
percobaan praktikum, TinkerCad berfungsi sebagai circuit cimulator yang digunakan
untuk menyusun rangkaian circuit dalam percobaan praktikum.

5.2.6. Breadboard

Gambar 5. 6 Breadboard

Breadboard adalah sebuah papan yang digunakan untuk membuat rangkaian


elektronik sementara dengan tujuan uji coba atau prototipe tanpa harus menyolder. Pada
percobaan praktikum, Breadboard berfungsi sebagai tempat merangkai circuit.
5.2.7. LCD 16x2

Gambar 5. 7 LCD 16x2

Berfungsi untuk menampilkan output yang di input oleh pengguna dan jenis
media tampilan yang menggunakan kristal cair sebagai tampilan suatu data, baik
karakter, huruf ataupun grafik. bentuknya tipis, mengeluarkan sedikit panas, dan
memiliki resolusi tinggi.

5.2.8. Potentiometer

Gambar 5. 8 Potentiometer

Komponen elektronik yang berupa resistor dengan nilai resistansi yang dapat
diatur besar kecilnya.

5.2.9. Resistor

Gambar 5. 9 Resistor

Resistor adalah komponen Elektronika Pasif yang memiliki nilai resistansi atau
hambatan tertentu yang berfungsi untuk membatasi dan mengatur arus listrik dalam
suatu rangkaian Elektronika.
5.2.10. TMP36

Gambar 5. 10 TMP36

Sebuah sensor yang mengukur suatu besaran suhu menjadi besaran listrik dalam
bentuk tegangan.

5.2.11. Buzzer

Gambar 5. 11 Buzzer

Salah satu komponen yang biasa dipadukan dalam rangkaian elektronik. Apabila
kamu pernah mendengar ada bunyi “beep-beep” pada perangkat elektronik, maka itu
adalah suara buzzer.
5.3. Dasar Teori
5.3.1. Analog to Digital Converter (ADC)
Analog to Digital Converter atau sering disingkat dengan ADC adalah rangkaian
yang mengubah nilai tegangan kontinu (analog) menjadi nilai biner (digital) yang dapat
dimengerti oleh perangkat digital sehingga dapat digunakan untuk komputasi digital.
Dengan kata lain, Analog to Digital Converter atau Konverter Analog ke Digital ini
memungkinkan rangkaian Digital berinteraksi dengan dunia nyata dengan menyandikan
sinyal Analog ke sinyal Digital yang berbentuk Biner. Rangkaian ADC ini pada
umumnya dikemas dalam bentuk IC dan diintegrasikan dengan Mikrokontroler.
(sumber:https://teknikelektronika.com/pengertian-adc-analog-to-digital-converter-cara-kerja-adc/)

5.3.2. Arduino ATMega 2560

Gambar 5. 12 Arduino ATMega 2560


Arduino adalah Board berbasis mikrokontroler atau papan rangkaian elektronik
open source yang di dalamnya terdapat komponen utama yaitu sebuah chip
mikrokontroler dengan jenis AVR dari perusahaan Atmel. Mikrokontroler itu sendiri
adalah chip atau IC (integrated circuit) yang bisa diprogram menggunakan computer.
Tujuan menanamkan program pada mikrokontroler adalah agar rangkaian elektronik
dapat membaca input, memproses input tersebut dan kemudian menghasilkan output
sesuai yang diinginkan. Jadi mikrokontroler bertugas sebagai otak yang mengendalikan
proses input, dan output sebuah rangkaian elektronik.
Jenis Arduino Mega type 2560, Arduino Mega 2560 adalah papan
pengembangan mikrokontroler yang berbasis Arduino dengan menggunakan chip
ATmega2560. Board ini memiliki pin I/O yang cukup banyak, sejumlah 54 buah digital
I/O pin (15 pin diantaranya adalah PWM), 16 pin analog input, 4 pin UART (serial port
hardware). Arduino Mega 2560 dilengkapi dengan sebuah oscillator 16 Mhz, sebuah
port USB, power jack DC, ICSP header, dan tombol reset. Board ini sudah sangat
lengkap, sudah memiliki segala sesuatu yang dibutuhkan untuk sebuah mikrokontroler.
(Sumber: http://eprints.polsri.ac.id/4615/3/FILE%20III.pdf)

5.3.3. Proteus 8 Professional

Gambar 5. 13 Proteus

Software Proteus 8 Professional merupakan salah satu software elektronik yang


digunakan untuk membantu para designer dalam merancang dan mensimulasikan suatu
rangkaian elektronik. Software ini memiliki dua fungsi sekaligus dalam satu paket,
yaitu  sebagai software untuk menggambar skematis dan digunakan sebagai merancang
gambar Printed Circuit Board (PCB).
Software Proteus 8 Profesional mempunyai banyak library dengan beberapa
komponen komponen-komponen pasif, Analog, Trasistor, SCR, FET, jenis
button/tombol, jenis saklar/relay, IC digital, IC penguat, IC programmable
(microcontroller) dan IC memory. Selain didukung dengan kelengkapan komponen,
juga didukung dengan kelengkapan alat ukur seperti Voltmeter, Ampere meter,
Oscilloscope, Signal Analyzers, serta pembangkit Frekuensi.
(Sumber: https://calesmart.com/artikel/Pengenalan-simulasi-elektronika-dengan-Software-Proteus-8-
Profesional_132.html)

5.3.4. Tinkercad
TinkerCad merupakan sebuah media berbasis web yang menyediakan sarana
untuk belajar Desain 3D, rangkaian elektronika, dan codeblock secara online.
TinkerCad adalah salah satu produk Autodesk yang sudah banyak memperkenalkan
software-software komputer untuk desain dan animasi. TinkerCad pertama didirikan
pada tahun 2011 dan masih dikembangkan sampai saat ini hingga menjadi salah satu
media yang direkomendasikan untuk digunakan sebagai media pembelajaran.
Gambar 5. 14 Logo TinkerCad

Dalam TinkerCad juga disediakan fitur Class dimana kita dapat membuat kelas
untuk melakukan pembelajaran antara guru dan siswa dalam pembelajaran di bidang
desain 3D, elektronik, dan codeblock. Serta terdapat fitur Educator untuk guru dan
Student untuk siswa.

Gambar 5. 15 Dashboard TinkerCad

(Sumber: https://www.teknodika.com/2020/04/mengenal-tinkercad-platform-belajar.html)

5.3.5. LCD 16x2

Gambar 5. 16 LCD 16x2

Fungsi LCD (Liquid Cristal Display) adalah jenis media tampilan yang
menggunakan kristal cair sebagai tampilan suatu data, baik karakter, huruf ataupun
grafik. bentuknya tipis, mengeluarkan sedikit panas, dan memiliki resolusi tinggi.
LCD sudah digunakan di berbagai bidang misalnya dalam alat-alat elektronik
seperti televisi, kalkulator ataupun layar komputer. Kini LCD mendominasi jenis
tampilan untuk komputer desktop maupun laptop atau notebook.
(Sumber :https://elekkomp.blogspot.com/2017/12/pengertian-lcd-dan-
fungsinya.html#:~:text=Fungsi%20LCD%20(Liquid%20Cristal%20Display,panas%2C%20dan
%20memiliki%20resolusi%20tinggi.&text=Cristal%20cair%20akan%20menyaring%20cahaya
%20backlight.)

5.3.6. Potentiometer

Gambar 5. 17 Potentiometer

Potensiometer adalah komponen elektronik yang berupa resistor dengan nilai


resistansi yang dapat diatur. Karena nilai resistansi yang dapat diatur maka potensio
dapat menghambat tegangan dan memvariasikan tegangan yang melewatinya. Nilai
keluaran potensio dapat berupa tegangan yang dapat dibaca oleh ADC Arduino. Dengan
cara ini maka Arduino dapat mengetahui nilai tegangan keluaran dari potensio. Potensio
dapat digunakan sebagai input control atau dapat digunakan juga sebagai simulasi untuk
sensor dengan sifat resistif. Potensiometer terdapat dalam integrated input dan dapat
digunakan dngan menghubungkan pin 1 pada vcc, pin 2 pada pin analog Arduino, dan
pin 3 pada ground.
(Sumber:https://mikrokontroler.mipa.ugm.ac.id/2018/10/02/program-
potensiometer/#:~:text=Potensiometer%20adalah%20komponen%20elektronik%20yang,nilai
%20resistansi%20yang%20dapat%20diatur.&text=Potensiometer%20terdapat%20dalam%20integrated
%20input,dan%20pin%203%20pada%20gnd.)

5.3.7. TMP36
Sensor suhu adalah komponen elektronika baik aktif maupun pasif yang dapat
merespon perubahan temperature atau suhu di sekitar komponen tersebut dan
menghasilkan perubahan elektrik sesuai dengan perubahan suhu atau temperature yang
direspon komponen tersebut.
Sensor suhu digunakan untuk mendeteksi gejala perubahan temperature atau
suhu pada suatu dimensi benda atau dimensi ruang tertentu. Sensor temperature
mempunyai banyak macamnya, seperti term kopel, RTD, thermistor, infrared
pyrometer, diode (IC hybrid), bimetal, dan lain sebagainya.
Sensor termal berupa IC TMP36 adalah komponen elektronika yang memiliki
fungsi untuk mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan.
IC TMP36 adalah sebagai sensor suhu yang terkemas dalam bentuk Integrated
Circuit. TMP36 mempunyai jangkauan (range) pengukuran suhu yang cukup besar, dari
suhu –40°C sampai 125°C, serta tingkat ketelitian pengukuran cukup tinggi.
(sumber: http://adityagp17tet.blogspot.com/2018/11/modul6-sensorsuhu-tujuan-
mahasiswa.html#:~:text=Sensor%20termal%20berupa%20IC%20TMP36,besaran%20listrik
%20dalam%20bentuk%20tegangan.&text=TMP36%20mempunyai%20jangkauan%20(range)
%20pengukuran,tingkat%20ketelitian%20pengukuran%20cukup%20tinggi.)
5.4. Langkah Kerja
5.4.1. Percobaan 1
1. Buka Proteus 8 Professional dengan cara run as administrator.

Gambar 5. 18 Buka Proteus dengan Run As Administrator


2. Buat new project lalu diberi nama modul4_kelompok12.

Gambar 5. 19 New Project pada Proteus

3. Pilih menu pick devices lalu cari komponen Board Arduino Mega 2560.
Gambar 5. 20 Pick Devices board Arduino Mega 2560 pada Proteus
4. Pilih menu pick devices lalu cari komponen LCD 16x2.

Gambar 5. 21 Pick Devices LCD 16x2 pada Proteus


5. Pilih menu pick devices lalu cari komponen Potensiometer POT-HG.

Gambar 5. 22 Pick Devices Potensiometer pada Proteus


6. Letakkan semua komponen pada workspace.

Gambar 5. 23 Komponen – komponen percobaan 1


7. Rangkai LCD dan potensiometer dengan board Arduino Mega 2560 seperti
berikut:
 Pin 4 ke D4
 Pin 5 ke D5
 Pin 6 ke D6
 Pin 7 ke D7
 Pin 8 ke RS
 Pin 9 ke E
 VCC ke VSS dan VDD
 GND ke RW dan VEE
8. Pasang potentiometer dan hubungkan ke Arduino Mega seperti berikut:
 Pin 1 ke VCC
 Pin 2 ke A0 Arduino Mega
 Pin 3 ke GND
9. Buka menu Terminals Mode, lalu pilih Power dan Ground.

Gambar 5. 24 Terminals Mode pada Proteus


10. Hubungkan terminal Power ke VCC dan terminal Ground ke GND pada
Arduino Mega.
11. Rangkailah komponen percobaan 1 sehingga menyerupai gambar dibawah ini.
Gambar 5. 25 Hasil rangkaian
12. Buka software Arduino IDE.

Gambar 5. 26 Arduino IDE


13. Pilih menu file, kemudian klik New.

Gambar 5. 27 Buat new file


14. Masukan source code ke dalam software Arduino IDE seperti pada dibawah ini.
Tabel 5. 1 Source code percobaan 1

#include <LiquidCrystal.h>
LiquidCrystal Lcd(8, 9, 4, 5, 6, 7);

void setup()
{
Lcd.begin(16, 2);
Lcd.print("Analog to Digital");
Lcd.setCursor(0, 1);
Lcd.print("Converter");
delay(1000);
Lcd.clear();
}

void loop()
{
Lcd.setCursor(0, 0);
Lcd.print("Kelompok 26");
int nilai = analogRead(A0);

float tegangan = nilai * (5.0 / 1023.0);

Lcd.setCursor(0, 1);
Lcd.print("voltage :");
Lcd.setCursor(10, 1);
Lcd.print(tegangan);
Lcd.setCursor(15, 1);
Lcd.print('V');
}

15. Klik tombol centang pada Arduino IDE untuk meng-compile source code.

Gambar 5. 28 Tombol centang untuk meng-compile source code


16. Salin kode hex pada console.
17. Kembali ke Proteus, double click kiri pada board Arduino Mega 2560 dan
tempel kode hex pada program file, kemudian klik OK.
Gambar 5. 29 Memasukkan kode hex pada board Arduino Mega 2560
18. Tekan tombol play di bagian bawah kiri Proteus.

Gambar 5. 30 Tombol play pada Proteus untuk memulai simulasi


19. Atur nilai pada potensiometer dan amati hasilnya.
5.5.1. Percobaan 2
1. Buka website Tinkercad.

Gambar 5. 31 Main Page Tinkercad


2. Klik tombol Circuits.

Gambar 5. 32 Tombol Circuits pada Main Page Tinkercad


3. Klik tombol Create new Circuit.

Gambar 5. 33 Tombol Create new Circuits


4. Setelah memasuki laman ini, ubah nama project menjadi Modul4_Kel12.

Gambar 5. 34 Nama project


5. Siapkan bahan-bahan yang diperlukan untuk percobaan ini.

Gambar 5. 35 Bahan-bahan yang diperlukan pada percobaan 2

6. Pasangkan resistor pada breadboard.

Gambar 5. 36 Pemasangan resistor pada breadboard


7. Pasangkan potensiometer pada breadboard.
Gambar 5. 37 Pemasangan potensiometer pada breadboard
8. Pasangkan temperature sensor pada breadboard.

Gambar 5. 38 Pemasangan temperature sensor pada breadboard


9. Hubungkan LCD 16 x 2 pada Arduino Uno menggunakan kabel jumper seperti
pada gambar dibawah ini.

Gambar 5. 39 Menghubungkan LCD 16 x 2 pada Arduino Uno menggunakan kabel jumper


10. Buatlah rangkaian seperti pada gambar dibawah ini.
Gambar 5. 40 Rangkaian percobaan 2
11. Tekan tombol Code pada laman, lalu pilih Text.

Gambar 5. 41 Tombol Code dan pilihannya


12. Masukkan source code dibawah ini pada bagian Text.
Tabel 5. 2 Source code percobaan 2

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 9, 8, 7, 6);
const int tmp0 = A1;
float pre_temp = 0;
void setup() {
pinMode(tmp0, INPUT);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("SENSOR SUHU TMP36");
lcd.setCursor(2, 1);
lcd.print("Kelompok 26");
delay(2000);
lcd.clear();
}
void loop() {
float temperature = 0;
temperature = (analogRead(tmp0) * 0.48828125) - 49.95;
if(pre_temp != temperature){
lcd.setCursor(0,1);
lcd.print(" ");
}
lcd.setCursor(0,0);
lcd.print("Suhu: ");
lcd.setCursor(6,0);
lcd.print(temperature);
lcd.print(" C");
pre_temp = temperature;
lcd.setCursor(0,1);
lcd.print("ADC : ");
lcd.print(analogRead(tmp0));
delay(5000);
lcd.clear();

float tempF = temperature * 1.8 + 32.0;


lcd.print("Suhu: ");
lcd.setCursor(6,0);
lcd.print(tempF);
lcd.print(" F");

float tempK = temperature + 273.15;


lcd.setCursor(0,1);
lcd.print("Suhu: ");
lcd.setCursor(6,1);
lcd.print(tempK);
lcd.print(" K");

delay(5000);
lcd.clear();
}

13. Start simulation dan amati hasilnya.


5.5. Hasil dan Analisa percobaan
5.5.2. Percobaan 1

Gambar 5. 42 Rangkaian Percobaan

Percobaan ini menggunakan sebuah aplikasi bernama proteus. Di dalam proteus


dibuatlah rangkaian menggunakan android mega 2560, keypad 4x4, lcd 16x2, dan
potentiometer. Disini pin vcc dihubungkan ke potentiometer sebelum dihubungkan ke
terminal power, pin vdd, dan vss pada lcd 16x2. Lalu pin gnd dihubungkan ke
potentiometer sebelum dihubungkan ke terminal ground, pin vee, dan rw pada lcd 16x2.
Kemudian pin tengah dari potentiometer dihubungkan ke pin A0 pada Arduino.
Sementara itu pin 7 dari Arduino dihubungkan ke pin d7 lcd, pin 6 arduino
dihubungkan ke pin d6 lcd, pin 5 arduino dihubungkan ke d5 lcd, pin 4 arduino
dihubungkan ke pin d4 lcd. Lalu pin 9 arduino dihubungkan ke pin e lcd, pin 8 arduino
dihubungkan ke pin rs lcd,
Gambar 5. 43 Rangkaian Percobaan 1
Setelah disusun sedemikian rupa, lalu masukkan source code yang ada ke dalam
Arduino ide dan tekan tombol verify.
Tabel 5. 3 Source code percobaan 1

#include <LiquidCrystal.h>
LiquidCrystal Lcd(8, 9, 4, 5, 6, 7);

void setup()
{
Lcd.begin(16, 2);
Lcd.print("Analog to Digital");
Lcd.setCursor(0, 1);
Lcd.print("Converter");
delay(1000);
Lcd.clear();
}

void loop()
{
Lcd.setCursor(0, 0);
Lcd.print("Kelompok 12");
int nilai = analogRead(A0);

float tegangan = nilai * (5.0 / 1023.0);

Lcd.setCursor(0, 1);
Lcd.print("voltage :");
Lcd.setCursor(10, 1);
Lcd.print(tegangan);
Lcd.setCursor(15, 1);
Lcd.print('V');
}

Gambar 5. 44 Source code pada Arduino


Selanjutnya salin kode hex yang tertera pada Arduino ide. Lalu buka proteus dan
klik 2 kali Arduino nya, tempel kode hex-nya ke dalam program file. Lalu jalankan
simulasi yg ada dan amati apa yang terjadi.

Gambar 5. 45 Tab untuk memasukan program dalam proteus


Hasil percobaan tersebut meliputi:
Tabel 5. 4 Hasil pengamatan percobaan 1

No Persentase potensiometer Keluaran program


1 100%

2 70%

3 50%

5 30%

6 0%

Di saat kita memulai simulasi dalam proteus maka kita akan disuguhkan oleh
tulisan seperti gambar dibawah ini.
Gambar 5. 46 rangkaian saat pertama kali dinyalakan
Setelah itu barulah muncul tulisan dibawah ini yang kita bisa memasukkan
masukan dari potentiometer, lalu di lcd tersebut muncul masukan yang kita masukkan
tadi

Gambar 5. 47 rangkaian saat sudah siap menerima masukan

Di dalam program yang telah ditulis dalam Arduino ide terdapat beberapa
sintaks, yaitu, #include <LiquidCrystal.h> yang digunakan untuk memerintahkan
Arduino untuk mengambil library dari repository Arduino ide untuk dipergunakan oleh
Arduino ide dalam membentuk sebuah program. LiquidCrystal Lcd(8, 9, 4, 5,
6, 7); digunakan untuk memberitahu dimana pin yang akan digunakan untuk keluaran
menuju LCD.
Kemudian ada void setup() { yg akan menjalankan sebuah program yang
hanya dijalankan sekali, seperti saat penyalaan pertama kali. Didalamnya terdapat kode
yaitu lcd.begin(16,2); digunakan untuk menginisiasi jumlah baris dan kolom yang
tersedia dalam LCD. lcd.setCursor(0,1); digunakan untuk menentukan posisi
kursor karakter. lcd.print("Analog to Digital"); memiliki kegunaan untuk
menampilkan huruf maupun karakter yang kita tulis dalam program. Lalu
delay(1000); adalah sintaks yang digunakan untuk memberi jeda dalam menampilkan
karakter maupun huruf. Dan lcd.clear(); digunakan untuk mengosongkan LCD dari
karakter yang telah kita buat dalam program.
Lalu terdapat void loop() { yang akan menjalankan sebuah program yang
akan diulang ulang oleh mikrokontroler sampai mikrokontroler tersebut dimatikan.
Didalamnya terdapat kode kode yaitu, lcd.setCursor(0,0); digunakan untuk
menentukan posisi kursor karakter. lcd.print("Kelompok 12"); memiliki kegunaan
untuk menampilkan huruf maupun karakter yang kita tulis dalam program. int nilai
= analogRead(A0); digunakan untuk menginisiasikan pembacaan dari pin analog A0.
float tegangan = nilai * (5.0 / 1023.0); adalah sintaks untuk mengubah data
dari masukan pin analog menjadi data yang mudah di baca oleh pengguna yaitu dalam
bentuk voltase. Lcd.setCursor(0, 1); digunakan untuk menentukan posisi kursor
karakter. Dan Lcd.print(tegangan); digunakan untuk menampilkan data yang diubah
oleh sintaks diatas.

Gambar 5. 48 Rangkaian saat melakukan percobaan


Misal saja kita masukan persentase pada potentiometer sebesar 44%, maka
Arduino akan merubah voltase yang diberikan oleh potentiometer menjadi data digital
10 bit yaitu 573, lalu dengan perhitungan diatas mengubahnya menjadi voltase. Setelah
itu voltase tersebut akan ditampilkan pada lcd, yaitu 2.8 v
Gambar 5. 49 Rangkaian saat melakukan percobaan
Juga saat kita masukan persentase pada potentiometer sebesar 74%, maka
Arduino akan merubah voltase yang diberikan oleh potentiometer menjadi data digital
10 bit yaitu 266, lalu dengan perhitungan diatas mengubahnya menjadi voltase. Setelah
itu voltase tersebut akan ditampilkan pada lcd, yaitu 1.30 v.
5.5.3. Percobaan 2

Gambar 5. 50 Rangkaian Percobaan 2


Rangkaian tugas ini menggunakan laman Tinkercad. Di dalam Tinkercad
dibuatlah rangkaian menggunakan Arduino UNO, sensor suhu TMP36, potentiometer,
resistor dan LCD 16x2. Disini pin 5v Arduino dihubungkan ke terminal positif
breadboard dan pin gnd Arduino dihubungkan ke terminal negative. Lalu terminal
positif dihubungkan ke pin positif, terminal negative dihubungkan ke pin negatif sensor
suhu, dan vout pada sensor suhu dihubungkan ke pin A1.
Kemudian untuk menghubungkan lcd, pin pada lcd perlu dihubungkan pada pin
pada Arduino. Pin db7 LCD dihubungkan ke pin 6 Arduino, pin db6 LCD dihubungkan
ke pin 7 Arduino, pin db5 LCD dihubungkan ke pin 8 Arduino, pin db4 LCD
dihubungkan ke pin 9 Arduino, pin E LCD dihubungkan ke pin 11 Arduino, pin RS
LCD dihubungkan ke pin 12 Arduino.
Lalu pin vcc dihubungkan ke terminal positif pada breadboard, pin gnd LCD
dihubungkan ke terminal negative breadboard, pin v0 dihubungkan ke salah satu
terminal pada potentiometer, pin LED+ dihubungkan ke terminal positif setelah
melewati resistor, pin LED- dihubungkan ke terminal negative breadboard, dan pin RW
dihubungkan ke terminal negative breadboard.
Gambar 5. 51 Rangkaian Percobaan 2
Setelah disusun sedemikian rupa, lalu masukkan source code yang sudah dibuat
ke dalam tab kode yang disediakan
Tabel 5. 5 Source code percobaan 2

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 9, 8, 7, 6);
const int tmp0 = A1;
float pre_temp = 0;

void setup() {
pinMode(tmp0, INPUT);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("SENSOR SUHU TMP36");
lcd.setCursor(2, 1);
lcd.print("Kelompok 12");
delay(2000);
lcd.clear();
}
void loop() {
float temperature = 0;
temperature = (analogRead(tmp0) * 0.48828125) - 49.95;
if(pre_temp != temperature){
lcd.setCursor(0,1);
lcd.print(" ");
}
lcd.setCursor(0,0);
lcd.print("Suhu: ");
lcd.setCursor(6,0);
lcd.print(temperature);
lcd.print(" C");
pre_temp = temperature;
lcd.setCursor(0,1);
lcd.print("ADC : ");
lcd.print(analogRead(tmp0));
delay(5000);
lcd.clear();

float tempF = temperature * 1.8 + 32.0;


lcd.print("Suhu: ");
lcd.setCursor(6,0);
lcd.print(tempF);
lcd.print(" F");

float tempK = temperature + 273.15;


lcd.setCursor(0,1);
lcd.print("Suhu: ");
lcd.setCursor(6,1);
lcd.print(tempK);
lcd.print(" K");

delay(5000);
lcd.clear();
}

Gambar 5. 52 Tab Code Dalam Tinkercad


Lalu jalankan simulasi yang ada dan amati apa yang terjadi, Hasil percobaan
tersebut meliputi:
Tabel 5. 6 Hasil pengamatan percobaan 2

No Masukan sensor Keluaran lcd


1 25 C

2 13 C

3 37 C
4

Di saat kita memulai simulasi dalam proteus maka kita akan disuguhkan oleh
tulisan seperti gambar dibawah ini

Gambar 5. 53 rangkaian saat pertama kali dinyalakan


Setelah itu barulah muncul tulisan dibawah ini yang kita bisa memasukkan
masukan dari keypad lalu di lcd tersebut muncul masukan yang kita masukkan tadi
Gambar 5. 54 Rangkaian saat sudah siap menerima masukan

Di dalam program yang telah ditulis dalam Arduino ide terdapat beberapa
sintaks, yaitu, #include <LiquidCrystal.h> yang digunakan untuk memerintahkan
Arduino untuk mengambil library dari repositori Arduino ide untuk dipergunakan oleh
Arduino ide dalam membentuk sebuah program. LiquidCrystal Lcd(12, 11, 9, 8,
7, 6); digunakan untuk memberitahu dimana pin yang akan digunakan untuk keluaran
menuju LCD.
Kemudian ada void setup() { yg akan menjalankan sebuah program yang
hanya dijalankan sekali, seperti saat penyalaan pertama kali. Didalamnya terdapat kode
yaitu Serial.begin(9600); yang digunakan untuk menginisiasi koneksi serial di 9600
bit per detik, Untuk mendeklarasikan dimana masukan dan keluaran menggunakan
pinMode(tmp0, INPUT); untuk masukan analog lcd.begin(16,2); digunakan untuk
menginisiasi jumlah baris dan kolom yang tersedia dalam LCD. lcd.setCursor(0,0);
digunakan untuk menentukan posisi kursor karakter. lcd.print("SENSOR SUHU
TMP36"); memiliki kegunaan untuk menampilkan huruf maupun karakter yang kita
tulis dalam program. Lalu delay(2000); adalah sintaks yang digunakan untuk
memberi jeda dalam menampilkan karakter maupun huruf. Dan lcd.clear();
digunakan untuk mengosongkan LCD dari karakter yang telah kita buat dalam program.
Lalu terdapat void loop() { yang akan menjalankan sebuah program yang
akan diulang ulang oleh mikrokontroler sampai mikrokontroler tersebut dimatikan.
Didalamnya terdapat kode kode yaitu, float temperature = 0; merupakan pendeklarasian
dari tipe data float yang berarti angka didalamnya terdapat koma. temperature =
(analogRead(tmp0) * 0.48828125) - 49.95; adalah sintaks untuk mengubah data
dari masukan pin analog menjadi data yang mudah di baca oleh pengguna yaitu dalam
bentuk Celsius. Terdapat pengkondisian didalam program tersebut seperti if(pre_temp
!= temperature){ yang digunakan jika pre_temp tidak sama dengan temperature,
maka program akan menjalankan sintaks yang ada didalam pengkondisian tersebut,
lcd.setCursor(0,1); dan lcd.print(" "); yang berarti tidak akan menampilkan
karakter.
Sintaks lcd.setCursor(0,0); dan lcd.print("Suhu: "); akan
menampilkan karakter “Suhu” pada lcd lalu delay(5000); digunakan untuk memberi
jeda antara tampilan layar satu dengan lainnya, dan lcd.clear(); digunakan untuk
mengosongkan LCD dari karakter yang telah kita buat dalam program.
Kemudian untuk menampilkan layar yang lain diperlukan perhitungan ke suhu
lain, yaitu dengan sintaks float tempF = temperature * 1.8 + 32.0; dan float
tempK = temperature + 273.15; yang digunakan untuk merubah data suhu Celsius
menjadi suhu Fahrenheit dan kelvin. Lalu dengan sintaks lcd.print("Suhu: "); ,
lcd.setCursor(6,0); , lcd.print(tempF); , dan lcd.print(" F"); untuk
menampilkan ke lcd.

Gambar 5. 55 rangkaian saat melakukan percobaan


Misal saja kita masukan suhu 25° Celsius pada sensor, maka Arduino akan
merubah voltase yang diberikan oleh sensor menjadi data digital 10-bit yaitu 153, lalu
dengan perhitungan diatas mengubahnya menjadi Celsius. Setelah berubah menjadi
Celsius maka mikrokontroler akan ditampilkan ke lcd dengan suhu 24,76 C karena
perhitungan konversi dari data digital 10-bit tidaklah sempurna

Gambar 5. 56 rangkaian saat melakukan percobaan


Juga saat kita masukan suhu 35° Celsius pada sensor, maka Arduino akan
merubah voltase yang diberikan oleh sensor menjadi data digital 10bit yaitu 176, lalu
dengan perhitungan diatas mengubahnya menjadi Celsius. Setelah berubah menjadi
Celsius maka mikrokontroler akan ditampilkan ke lcd dengan suhu 35,99 C karena
perhitungan konversi dari data digital 10-bit tidaklah sempurna.
5.6. Tugas
Pada tugas modul 4 kali ini diinginkan suatu rangkaian mikrokomputer dengan
menggunakan arduino sebagai mikrokomputernya. Pada rangkaian ini memiliki
masukan berupa sensor suhu TMP36 yang menempati pin A0, rangkaian ini memiliki
pengkondisian apabila suhu melebihi ambang batas 50° C maka akan menyalakan motor
DC pada kipas yang ada di pin 7 dan indikator LED pada pin 6. Terdapat juga buzzer
pada pin A1 yang memberikan keluaran bunyi sebagai penanda motor hidup. Kecerahan
LED dapat diatur menggunakan potensiometer. Untuk mengetahui suhu digunakan
LCD 16x2 pada pin 8-13 untuk menampilkan besarnya satuan suhu dalam Celcius.
Dalam menyalakan lampu digunakan interupsi yang terhubung pada pin 2.
Gambar 5. 57 Rangkaian tugas modul 4

Untuk mendukung rangkaian diatas dibuat suatu program dengan source code
berikut.
Tabel 5. 7 Source code tugas 1

#include <LiquidCrystal.h>
int i;//counter untuk buzzer
bool j;//counter untuk LED
int suhu = A0;//deklarasi pin
int LED = 6;//deklarasi pin
int buz = A1;//deklarasi pin
int pot = A2; //deklarasi pin
int MDC = 7;//deklarasi pin
LiquidCrystal Lcd(8, 9, 10, 11, 12, 13);//inisialisasi pin LCD
void setup() {
// put your setup code here, to run once:
pinMode(suhu,INPUT);//set pin sebagain masukan
pinMode(pot,INPUT);//set pin sebagain masukan
pinMode(LED,OUTPUT);//set pin sebagain keluaran
pinMode(MDC,OUTPUT);//set pin sebagain keluaran
pinMode(buz,OUTPUT);//set pin sebagain keluaran
attachInterrupt(digitalPinToInterrupt(2), lampu, CHANGE);//set
interupsi fungsi hidup pada pin 2

Lcd.begin(16,2);//set resolusi LCD


Serial.begin(9600);
}

void loop() {
// put your main code here, to run repeatedly:
float temperature = (analogRead(suhu) * 0.48828125) - 49.95; //
menhitung suhu dan mengkonversi ke celcius yang ditampung pada
temperature
if (temperature>=50){//pengkondisian batas ambang atas
digitalWrite(MDC,HIGH);//menhidupkan motor
if(i==1){// penkondisian untuk bazzer
BAS();}//memanggil fungsi BAS
i=0;// membalik nilai dari i
}
else{
digitalWrite(MDC,LOW);//mamatikan motor
i=1;
}
float Pot=( analogRead(pot) * 0.249023438);
if (j==true){
if (Pot==0){
analogWrite(LED,10);
}
else{
analogWrite(LED,Pot);}}
else{
analogWrite(LED,0);}
Lcd.setCursor(0,0);//set cursor
Lcd.print("temperature");// print pada LCD "temperature
Lcd.setCursor(0,1);
Lcd.print(temperature);//print nilai temperature
Lcd.setCursor(7,1);
Lcd.print("C");
Serial.println(Pot);
}
void lampu(){
j=!j;//membalik nilai j
}

void BAS(){//Fungsi untuk memberi nada pada bazzer


tone(buz,659 ,300);
delay(150);
tone(buz,659 ,100);
delay(300);
tone(buz,659 ,100);
delay(300);
tone(buz,523 ,100);
delay(100);
tone(buz,659 ,100);
delay(300);
tone(buz,783 ,100);
delay(550);
tone(buz,392 ,100);
delay(2000);
}

Pada source code di atas diundang liblary untuk LCD yang diinisialisasi pada
pin 8-13 LiquidCrystal Lcd(8, 9, 10, 11, 12, 13);//dengan resolusi 16x2
yang dinyatakan pada void setup. Pada program terdapat variabel i yang digunakan
untuk counter dari bezzer dilanjutkan dengan pendeklarasian variabel untuk keterangan
pin dalam rangkaian. Pada program terdapat juga interupsi change yang memanggil
fungsi lampu apabila interupsi dijalankan
attachInterrupt(digitalPinToInterrupt(2), lampu, CHANGE);. Dalam fungsi
lampu j=!j akan membalik kondisi dari nilai variabel j sehingga akan membuat
perpindahan untuk pengkondisian dalam void loop yang akan menyalakan dan
mematikan LED. Karena itu apabila interupsi maka akan mematikan dan menghidupkan
LED. Pada void loop terdapat float temperature = (analogRead(suhu) *
0.48828125) - 49.95;, variabel “temprature” yang menampung nilai analog sensor
A0 dan diberikan rumus sehingga menghasilkan nilai dari temperatur dalam derajat
Celcius. Dilanjutkan pengkondisian yang akan membuat motor DC menyala apabila
memenuhi batas ambang lebih besar dari 50 dan akan mati bila tidak memenuhi kondisi.
Dalam pengkondisian terdapat pengkondisian yang akan membuat buzzer berbunyi
apabila nilai dari i =0 lalu setelah buzzer berbunyi i diberikan nilai menjadi 1 sehingga
buzzer hanya akan berbunyi 1 kali. Apabila kondisi “temperature” tidak terpenuhi motor
DC akan mati dan nilai i dikembalikan menjadi 0 sehingga saat kondisi terpenuhi
buzzer dapat berbunyi sebagai penanda motor DC menyala. Dalam menyalakan buzzer
digunakan perintah untuk memanggil fungsi “BAS” yang mana di dalamnya terdapat
perintah nada-nada dari tone yang akan dikeluarkan pada pin A1. Lalu juga terdapat
penkondisian yang serupa untuk mematikan dan menyalakan LED menggunakan nilai
dati variabel “j” yang nilainya berubah sesuai dengan interupsi dan dalam
pengkondisian LED ini juga diberikan pengkondisian ganda untuk membuat LED dapat
diatur kecerahannya dan tetap menyala walau potensiometer bernilai 0. Lalu diberikan
perintah cetak pada LCD untuk mencetak nilai dari “temperature”.
Gambar 5. 58 Kondisi saat temperatur 71,14 C

Gambar 5. 59 Nilai dari sensor


Gambar 5. 60 Kondisi saat buzzer berbunyi

Gambar 5. 61 LED saat nilai potentiometer paling kecil

Gambar 5. 62 LED saat nilai potentiometer tengah

Gambar 5. 63 LED saat nilai potentiometer Tinggi

(Link Tugas https://www.tinkercad.com/things/dRUcFMD5ReO-tugas-mod-4-tip/editel?


sharecode=uAwXHOOoTb6CsfZuldI_86w_S3s6dk3-JX0i6vJ9cHg)
5.7. Kesimpulan
1. Arduino adalah salah satu mikrokontroler yang memiliki banyak fitur dan
mudah untuk digunakan, salah satunya adalah arduino ATmega 2560 yang
digunakan pada praktikum ini.
2. Dalam percobaan 1 dan 2 aduino digunakan untuk memprogram masakan dan
keluaran yang didapat dari rangkaian, untuk itu dibuat rangkaian yang
mendukung sehingga keluaran sesuai apa yang diinginkan.
3. Proteus adalah software yang digunakan dalam praktikum, dengan bantuan
software ini praktikum dapat dilakukan secara digital layaknya praktikum di
dunia nyata.
4. Dalam praktikum digunakan arduino IDE sebagai software yang mengkompail
dan memasangkan program yang telah dibuat ke dalam arduino.
5. Tinkercad dalam praktikum ini juga digunakan untuk lab digital yang berbasis
web.
6. ADC adalah suatu alat atau komponen yang mengubah nilai dari suatu tegangan
menjadi suatu nilai biner yang diartikan mengubah nilai dari analaog ke digital
dengan menggunakan 3 tahapan yakni pencuplikan, kuantisasi, dan encoding .
7. Dalam praktikum kali ini dilakukan 2 kali percobaan pada percobaan 1 dibuat
suatu rangkaian yang terdapat potensiometer sebagai pengatur tegangan untuk
analog input dan nilai tersebut akan ditampilkan pada LCD yang merupakan
implementasi ACD. Pada praktikum 2 dibuat suatu rangkaian dengan sensor
suhu sebagai masukan dan nilai dari sensor di cetak di LCD.

Anda mungkin juga menyukai