Gambar 5. 1 Laptop
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
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
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/)
Gambar 5. 13 Proteus
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.
(Sumber: https://www.teknodika.com/2020/04/mengenal-tinkercad-platform-belajar.html)
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
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.
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.
#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);
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.
#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();
delay(5000);
lcd.clear();
}
#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);
Lcd.setCursor(0, 1);
Lcd.print("voltage :");
Lcd.setCursor(10, 1);
Lcd.print(tegangan);
Lcd.setCursor(15, 1);
Lcd.print('V');
}
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
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.
#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();
delay(5000);
lcd.clear();
}
2 13 C
3 37 C
4
Di saat kita memulai simulasi dalam proteus maka kita akan disuguhkan oleh
tulisan seperti gambar dibawah ini
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.
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
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
}
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