Anda di halaman 1dari 30

JOB I

DIGITAL INPUT/OUTPUT

I. DASAR TEORI
Digital berarti sinyal yang dikirimkan/diterima bernilai 1 atau 0, on atau off, HIGH
atau LOW. Berbeda dengan sinyal analog yang nilainya bersifat kontinyu, yakni nilai
antara 0 dan 1 dipertimbangkan atau terdapat rentangan nilai dari 0 sampai 1. Secara
umum pin pada Arduino dapat dikonfigurasi ke dalam dua mode, yaitu mode input
dan output. Mode input berarti mengeset pin agar dapat digunakan untuk menerima
masukan sinyal dari komponen yang terhubung ke board arduino. Mode output
berarti mengeset pin agar dapat mengirimkan sinyal dari arduino ke komponen lain
atau ke rangkaian digital. Untuk mengeset mode pin, kita gunakan fungsi pinMode().
Fungsi ini biasanya digunakan di dalam fungsi setup(). fungsi ini memerlukan dua
parameter, pinMode([nomorPin], [mode]). Parameter pertama diisi oleh nomor pin,
dan parameter kedua diisi oleh konstanta INPUT atau OUTPUT, sesuai dengan
mode yang ingin kita gunakan. Sebagai contoh, jika ingin membuat LED berkedip,
LED tersebut bisa dipasang pada salah satu pin digital dari arduino dan ground.
Karena kita ingin membuat led menyala berkedip jadi kita konfigurasi pin yang
terhubung ke LED menjadi output.

Gambar 1. Board Arduino Uno R3

Pada gambar diatas dapat dilihat untuk pin yang berwarna hijau tua (dari pin 0 sampai
pin ke 13) merupakan digital pin dari board arduino uno. Sedangkan untuk yang
berwarna hijau muda merupakan ground (GND).
Dan beberapa pin juga memiliki fungsi khusus :
 Serial, terdiri dari 2 pin : pin 0 (RX) dan pin 1 (TX) yang digunakan untuk
menerima (RX) dan mengirim (TX) data serial.
 External Interrups, yaitu pin 2 dan pin 3. Kedua pin tersebut dapat
digunakan untuk mengaktifkan interrups. Gunakan fungsi attachInterrupt()
 PWM: Pin 3, 5, 6, 9, 10, dan 11 menyediakan output PWM 8-bit dengan
menggunakan fungsi analogWrite()
 SPI : Pin 10 (SS), 11 (MOSI), 12 (MISO), dan 13 (SCK) mendukung
komunikasi SPI dengan menggunakan SPI Library
 LED : Pin 13. Pada pin 13 terhubung built-in led yang dikendalikan oleh
digital pin no 13.
 TWI : Pin A4 (SDA) dan pin A5 (SCL) yang mendukung komunikasi TWI
dengan menggunakan Wire Library

II. ALAT DAN BAHAN


Alat dan bahan percobaan diperlihatkan pada Tabel 2:

Tabel 2. Alat dan Bahan Praktikum


No Alat dan Bahan Jumlah
1 Board Arduino Uno R3 1
2 Modul/Rangkaian Percobaan 1
3 Kabel USB 1
4 Kabel jumper Secukupnya

III. LANGKAH PERCOBAAN


1. Percobaan Blink LED
a. Koneksi Hardware
Dengan menggunakan kabel jumper, koneksikan Led pada mudul
(rangkaian) ke pin-pin Arduino Uno R3 dengan konfigurasi sebagai berikut:
 Menghubungkan salah satu kaki resistor dengan pin 13 dari Arduino
 Menghubungkan kaki resistor yang lagi satu dengan kaki anoda dari led
 Menghubungkan kaki katoda led dengan ground pada arduino
Gambar 2. Skematik Percobaan Blink Led

Gambar 3. Breadboard Percobaan Blink Led

b. Pemrograman Pada Arduino


Sketch program pada arduino dapat dilihat dibawah ini:

int Led1 = 13;


void setup() {
pinMode(Led1, OUTPUT); // konfigurasi atau mensetting pin
13 sebagai output
}
void loop() {
digitalWrite(Led1, HIGH); // Untuk menghidupkan LED
delay(1000); // waktu tunda
digitalWrite(Led1, LOW); // untuk mematikan LED
delay(1000); // tunda waktu
}
2. Percobaan PushButton ON/OFF
a. Koneksi Hardware
Dengan menggunakan kabel jumper, koneksikan Led dan Pushbutton pada
mudul(rangkaian) ke pin-pin Arduino Uno R3 dengan konfigurasi sebagai berikut:
 Menghubungkan kaki Anoda Led1 ke pin 13 Arduino
 Menghubungkan Pushbutton1 ke pin 2 Arduino

Gambar 4. Skematik Percobaan Pushbutton ON/OFF

Gambar 5. Breadboard Percobaan Pushbutton ON/OFF


b. Pemrograman Pada Arduino
Sketch program pada arduino dapat dilihat dibawah ini:
int pushButton = 2;
int LedPin = 13;
void setup() {
pinMode(pushButton, INPUT);
pinMode(LedPin,OUTPUT);
}
void loop() {
digitalRead(pushButton);
if (pushButton == HIGH) {
digitalWrite(LedPin,HIGH);
}
else
digitalWrite(LedPin,LOW);
}

3. Percobaan Kombinasi Multi Pushbutton Dan Multi Led


a. Koneksi Hardware
Dengan menggunakan kabel jumper, koneksikan Led dan Pushbutton pada
mudul(rangkaian) ke pin-pin Arduino Uno R3 dengan konfigurasi sebagai berikut:
 Menghubungkan kaki Anoda Led1 ke pin 13 Arduino
 Menghubungkan kaki Anoda Led2 ke pin 12 Arduino
 Menghubungkan kaki Anoda Led3 ke pin 11 Arduino
 Menghubungkan kaki Anoda Led4 ke pin 10 Arduino
 Menghubungkan Pushbutton1 ke pin 2 Arduino
 Menghubungkan Pushbutton2 ke pin 3 Arduino
Gambar 6. Skematik Percobaan Kombinasi Multi Pushbutton Dan Multi Led

Gambar 7. Breadboard Percobaan Kombinasi Multi Pushbutton Dan Multi


Led b.

b. Pemrograman Pada Arduino


Sketch program pada arduino dapat dilihat dibawah ini:
const int buttonPin1 = 2;
const int buttonPin2 = 3;
const int ledPin1 = 13;
const int ledPin2 = 12;
const int ledPin3 = 11;
const int ledPin4 = 10;
void setup() {
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
}
void loop() {
digitalRead(buttonPin1);
digitalRead(buttonPin2);
if (buttonPin1 == HIGH) {
// jalan kanan
digitalWrite(ledPin1,HIGH);
digitalWrite(ledPin2,LOW);
digitalWrite(ledPin3,LOW);
digitalWrite(ledPin4,LOW);
delay (1000);
digitalWrite(ledPin1,LOW);
digitalWrite(ledPin2,HIGH);
digitalWrite(ledPin3,LOW);
digitalWrite(ledPin4,LOW);
delay (1000);
digitalWrite(ledPin1,LOW);
digitalWrite(ledPin2,LOW);
digitalWrite(ledPin3,HIGH);
digitalWrite(ledPin4,LOW);
delay (1000);
digitalWrite(ledPin1,LOW);
digitalWrite(ledPin2,LOW);
digitalWrite(ledPin3,LOW);
digitalWrite(ledPin4,HIGH);
delay (1000);
}

else {
digitalWrite(ledPin1,LOW);
digitalWrite(ledPin2,LOW);
digitalWrite(ledPin3,LOW);
digitalWrite(ledPin4,LOW);
delay (1000);
}
}
IV. HASIL DAN PEMBAHASAN
Pada percobaan kali ini menggunakan pin-pin digital dari arduino, dimana pin- pin
tersebut akan dipakai baik sebagai input maupun output. Seperti percobaan diatas
Pushbutton dipakai sebagai input dan Led dipakai sebagai output. Dan jika kita ingin
membuat pin digital arduino sebagai input, maka pada program di arduino.ide kita
dapat menulis “ pinMode (pushbutton1,INPUT); “ , dan untuk membaca hasil inputan
dari pushbuttonnya dapat digunakan “digitalRead (pushbutton); “ . Kemudian jika
kita ingin membuat pin arduino sebagai output maka untuk pin mode kita dapat
tuliskan “pinMode (Led1,OUTPUT); “
JOB II
ANALOG INPUT/OUTPUT

1. DASAR TEORI
Analog Input dan Output pada Arduino
Pada saat kita menggunakan tombol sebagai sinyal input/masukan pada pin input
Arduino maka sebenarnya kita hanya memberikan dua kemungkinan kondisi sinyal
masukan yaitu tombol tertekan atau tombol tidak tertekan. Pada saat tombol tertekan
kita menghubungkan atau memberikan tegangan 5 volt pada masukan sedangkan
sebaliknya pada saat tombol dilepas hanya memberikan tegangan 0 volt. Kondisi
input yang demikian dikenal sebagai digital input dengan logika 1 dan 0, dimana 1
untuk tegangan HIGH atau 5 volt dan 0 untuk tegangan LOW atau 0 volt. Begitu
juga halnya pada sisi output, jika hanya melibatkan dua kondisi keluaran seperti
misalnya saat menghidupkan dan memadamkan led pada suatu saat tertentu maka kita
hanya melibatkan dua kondisi output digital. Output digital 1 atau HIGH dengan
output tegangan 5 volt dan output digital 0 atau LOW dengan output tegangan 0 volt.
Pada beberapa sistim kontrol, pengolahan input dan output secara digital mungkin
sudah memenuhi kinerja yang dibutuhkan. Akan tetapi pada kondisi tertentu ada
kemungkinan dihadapkan pada kondisi input dan output yang membutuhkan besaran
yang berubah-ubah dengan nilai yang kontinyu dan tidak lagi hanya dengan dua
keadaan seperti halnya sinyal digital. Sinyal semacam ini disebut sebagai
sinyal analog, sebagai contoh saat kita menghubungkan sensor yang tegangan
keluarannya bervariasi dalam kisaran dari 0 volt sampai 5 volt. Maka dalam hal ini
Arduino sebagai kontroler harus mampu mengidentifikasi/mengolah semua variasi
tegangan keluaran dari sensor yang dihubungkan pada pin inputnya tersebut. Begitu
juga halnya saat diperlukan tegangan output yang membutuhkan nilai tegangan yang
bervariasi, seperti misalnya saat kita menginginkan mengatur tingkat keterangan
sebuah led atau berubahnya kecepatan sebuah motor.

ANALOG INPUT
Arduino khusus menyediakan 6 kanal (8 kanal pada model Mini dan Nano, dan 16
pada model Mega) untuk difungsikan sebagai analog input. Analog ke digital
converternya menggunakan resolusi 10 bit yang berarti range nilai analog dari 0 volt
sampai 5 volt akan dirubah kenilai integer 0 sampai 1023, atau resolusinya adalah 5
volt/1024=4,9mV per unit dimana itu berarti nilai digital yang dihasilkan akan
berubah setiap perubahan 4,9mV dari tegangan input analognya. Akan tetapi range
input analog dan resolusi tersebut dapat dirubah dengan fungsi analogReference().
Perintah yang digunakan untuk fungsi analog input ini adalah:
a. analogRead(pin): berfungsi untuk membaca nilai analog pada input pin yang
akan menghasilkan nilai integer antara 0-1023.
b. analogReference(parameter): berfungsi untuk menentukan referensi yang
digunakan. Parameternya meliputi:
 DEFAULT: default analog reference yaitu 5V (pada board Arduino 5V)
atau 3,3 volt (pada board Arduino 3,3 V)
 INTERNAL: built-in referensi internal tergantung pada jenis
mikrokontroler yang terpasang pada board Arduino, 1.1 volt pada
ATmega168 atau ATmega328 dan 2.56 volt pada ATmega8.
 INTERNAL1V1: a built-in referensi internal 1.1V (khusus Arduino Mega)
 INTERNAL2V56: a built-in referensi internal 2,56V (khusus Arduino
Mega)
 EXTERNAL: pilihan referensi yang tergantung pada tegangan yang
diberikan pada pin AREF(hanya dengan range tegangan 0 sampai 5V).
Perlu untuk diperhatikan, jangan menggunakan referensi dibawah 0 volt atau lebih
dari 5 volt dan pastikan memilih referensi external sebelum perintah analogRead()
jika menghubungkan pin AREF dengan referensi eksternal karena jika tidak akan bisa
merusak mikrokontrol.

ANALOG OUTPUT
Secara teori suatu analog output akan mengeluarkan output tegangan bervariasi sesuai
dengan nilai yang dikehendaki, maka seharusnya pin output analog Arduino
seharusnya mampu mengeluarkan tegangan output dengan kisaran tegangan dari 0 V
sampai 5V. Akan tetapi tidak demikian adanya, karena pin-pin Arduino yang
difungsikan sebagai output sebenarnya hanya mampu sebagai digital output yaitu
hanya mampu mengeluarkan tegangan 0V atau 5V. Lalu bagaimana Arduino
menangani Analog Output tersebut? Arduino menggunakan cara Pulsa Wide
Modulasi (PWM) atau modulasi lebar pulsa untuk menghasilkan analog output yang
dikehendaki. Metode PWM ini menggunakan pendekatan perubahan lebar pulsa
untuk menghasilkan nilai tegangan analog yang diinginkan. Pin yang difungsikan
sebagai PWM analog output akan mengeluarkan sinyal pulsa digital dengan
frekwensi 490 Hz dimana nilai tegangan analog diperoleh dengan merubah Duty
Cycle atau perbandingan lamanya pulsa HIGH terhadap periode (T) dari sinyal digital
tersebut. Jika pulsa HIGH muncul selama setengah dari periode sinyal maka akan
menghasilkan duty cycle 5o% yang berarti sinyal analog yang dihasilkan sebesar
setengah dari tegangan analog maksimal yaitu 1/2 dari 5 V atau sama dengan 2,5 V
begitu juga halnya jika pulsa HIGH hanya seperempat bagian dari periode sinyal
maka tegangan analog identik yang dihasilkan adalah 1/4 dari 5V = 1,25 V dan
seterusnya.

Perintah yang digunakan untuk output analog adalah analogWrite (pin,value),


dimana:
 Pin: nomor pin Arduino yang akan digunakan sebagai analog output
 value: nilai duty cycle yang diinginkan dengan nilai 0-255, yang berarti nilai 0
untuk 0 Volt dan 255 untuk tegangan keluaran maksimum atau 5 Volt.
Berikutnya mari kita mencoba aplikasi input output analog ini secara langsung pada
Arduino. Untuk yang pertama saya menggunakan potensiometer yang dihubungkan
pada analog pin 0 seperti pada gambar berikut ini:
Gambar 1. Board Arduino Uno R3

Pada gambar diatas dapat dilihat untuk pin yang biru (dari pin 0 sampai pin ke 5)
merupakan analog pin dari board arduino uno. Sedangkan untuk yang
berwarna coklat tua merupakan VCC, dan yang berwarna coklat muda merupakan
ground (GND).

II. ALAT DAN BAHAN


Alat dan bahan percobaan diperlihatkan pada Tabel 2:
Tabel 2. Alat dan Bahan Praktikum
No Alat dan Bahan Jumlah
1 Arduino Uno R3 1
2 Modul /Rangkaian percobaan 1
3 Kabel USB 1
4 Kabel jumper Secukupnya

III. LANGKAH PERCOBAAN


1. Percobaan Input Potensiometer
a. Koneksi Hardware
Dengan menggunakan kabel jumper, koneksikan Potensiometer yang ada pada
mudul(rangkaian) ke pin-pin Arduino Uno R3 dengan konfigurasi sebagai berikut:
 Menghubungkan kaki 1 potensiometer dihubungkan ke sumber tegangan (VCC)
 Menghubungkan kaki 2 potensiometer dihubungkan ke pin A1 dari arduino uno
 Menghubungkan kaki 3 potensiometer dihubungkan ke groun (GND)

Gambar 2. Skematik Percobaan Input Potensiometer


Gambar 3. Breadboard Percobaan Input Potensiometer

b. Pemrograman Pada Arduino


Sketch program pada arduino dapat dilihat dibawah ini:
int pinPot = A2;//pin untuk menerima sinyal analog dari
potensiometer
int val = 0;//variabel untuk menyimpan nilai konversi analog
ke digital
void setup() {
Serial.begin(9600);//setup koneksi serial
}
void loop() {
val = analogRead(pinPot); //baca nilai analog dari
potensiometer
Serial.println(val); //kirim nilai val ke koneksi serial
delay(100);//jeda waktu
}

2. Percobaan Input Potensiometer Output Led


a. Koneksi Hardware
Dengan menggunakan kabel jumper, koneksikan Potensiometer dan Led yang ada
pada mudul(rangkaian) ke pin-pin Arduino Uno R3 dengan konfigurasi.
Pemrograman pada Arduino diperlihatkan sebagai berikut:
 Menghubungkan kaki 1 potensiometer dihubungkan ke sumber tegangan (VCC)
 Menghubungkan kaki 2 potensiometer dihubungkan ke pin A1 dari arduino uno
 Menghubungkan kaki 3 potensiometer dihubungkan ke groun (GND)
 Menghubungkan Led ke pin 13 dari arduino
Gambar 2. Skematik Percobaan Input Potensiometer Out Led

Gambar 3. Breadboard Percobaan Input Potensiometer Out Led

b. Pemrograman Pada Arduino


Sketch program pada arduino dapat dilihat dibawah ini:
int led = 13;//memilih pin digital untuk lampu led
int pinPot = A2;//pin untuk menerima sinal analog
int potVal = 0;//variabel untuk menyimpan nilai konversi
analog ke digital
void setup() {
pinMode(led,OUTPUT);
}
void loop() {
potVal=analogRead(pinPot);//baca nilai analog dari
potensiometer
potVal=map(potVal,0,1023,0,255);//ubah nilai (0-1023)
menjadi (0-255)
analogWrite(led,potVal);//ubah nilai vR untuk mengatur
kecerahan led
}

IV. HASIL DAN PEMBAHASAN


Pada percobaan kali ini menggunakan pin-pin analog dari arduino yaitu dari pin A0
sampai dengan pin A5, dimana pin- pin tersebut akan dipakai sebagai analog input.
Seperti percobaan diatas Potensiometer dipakai sebagai input dan Led dipakai sebagai
output. Dan jika kita ingin membuat pin analog arduino sebagai input, maka pada
program di arduino.ide kita dapat menulis “ pinMode (Potensiometer,INPUT); “ , dan
untuk membaca hasil inputan dari potensiometer dapat digunakan “analogRead
(Potensiometer); “ dan “int Val;” dipakai untuk menyimpan nilai konversi analog ke
digital. Kemudian “potVal=map(potVal,0,1023,0,255);” dipakai untuk mengubah
nilai dari (0-1023) menjadi (0-255). Dan jika kita ingin mengatur nyala Led dengan
potensiometer maka pada program arduino dapat ditulis sebagai berikut
“analogWrite(Led,potVal); “ .
JOB III
STATEMENT CONTROL

I. DASAR TEORI
Pada dasarnya setiap bahasa pemrograman terdiri dari:
a. Ekspresi
b. Statement
c. Blok Statement
d. Blok Fungsi
Pada praktikum kali ini saya mempraktekan tentang statement control dimana
statement control ini merupakan sebuah statement yang terdiri dari kondisi-kondisi
yang dimana jika kondisi tersebut terpenuhi program akan melakukan suatu instruksi
tertentu. Jadi dapat di katakan statement control merupakan penunjuk arah bagi
urutan suatu program. Dalam bahasa C++ ada beberapa jenis statement control
sebagai berikut :

1. Kontruksi if
Pada konstruksi if sebuah konstruktur program hanya memiliki sebuah kondisi,
artinya dimana suatu instruksi atau beberapa instruksi akan di jalankan apabila sebuah
kondisi tersebut di penuhi, namun apabila kondisi tersebut tidak terpenuhi maka
instruksi yang ada tidak akan di jalankan.

Berikut sintaks dari konstruksi if :

if (kondisi)
{
Instruksi/statement;
}

2. Konstruksi if – else
Pada konstruksi if else sedikit berbeda dengan konstruksi if karena pada konstruksi if
else . jika sebuah kondisi tidak terpenuhi maka program akan mencari kondisi lain
yang ada atau menjalankan instruksi yang berada di luar bagian dari kondisi yang
tidak terpenuhi.
Berikut sintaks dari konstruksi if-else :
if (kondisi)
{
Statement/instruksi;
}
else
{
Statement/instruksi;
}

3. Konstruksi if – else bersarang


Pada konstruksi ini terdapat lebih dari satu buah kondisi jadi pabila sebuah kondisi
tidak terpenuhi maka akan berlanjut ke kondisi berikutnya tergantung berapa banyak
kondisi yang ada.
Berikut sintaks konstruksi if –else bersarang :
if (kondisi)
{
Statement/instruksi;
}
else if (kondisi)
{
Statement/instruksi;
}
else
{
Statement/instruksi;
}

4. Konstruksi switch – case


Konstruksi switch – case sedikit berbeda dengan konstruksi if – else, di mana
konstruksi switch – case lebih menguntungkan digunakan pada program yang
memiliki banyak pilihan kondisi dalam satu step dan jumlah kondisi sudah pasti.jadi
berbeda dengan statement if else yang hanya memiliki 2 pilihan kondisi pada
satu step.
Berikut sintaks konstruksi switch – case :
Switch (variabel)
{
Case konstanta1
{
Statement;
Break;
}
Case konstanta ke-n
{
Statement;
Break;
}
}

II. ALAT DAN BAHAN


Alat dan bahan percobaan diperlihatkan pada Tabel 2:
Tabel 2. Alat dan Bahan Praktikum
No Alat dan Bahan Jumlah
1 Arduino Uno R3 1
2 Modul /Rangkaian percobaan 1
3 Kabel USB 1
4 Kabel jumper Secukupnya

III. LANGKAH PERCOBAAN


1. Percobaan For Control (Kombinasi nyala Led berdasarkan button yang
ditekan)
a. Koneksi Hardware
Dengan menggunakan kabel jumper, koneksikan Led dan Pushbutton pada
mudul(rangkaian) ke pin-pin Arduino Uno R3 dengan konfigurasi sebagai berikut:
 Menghubungkan kaki Anoda Led1 ke pin 7 Arduino
 Menghubungkan kaki Anoda Led2 ke pin 8 Arduino
 Menghubungkan kaki Anoda Led3 ke pin 9 Arduino
 Menghubungkan kaki Anoda Led4 ke pin 10 Arduino
 Menghubungkan Pushbutton1 ke pin 3 Arduino
 Menghubungkan Pushbutton2 ke pin 4 Arduino
 Menghubungkan Pushbutton3 ke pin 5 Arduino
 Menghubungkan Pushbutton4 ke pin 6 Arduino
Gambar 1. Skematik Percobaan For Controll

Gambar 2. Breadboard Percobaan For Controll

b. Pemrograman Pada Arduino


Sketch program pada arduino dapat dilihat dibawah ini:
int tombol1=3;
int tombol2=4;
int tombol3=5;
int tombol4=6;
int led1=7;
int led2=8;
int led3=9;
int led4=10;
void setup() {
pinMode (tombol1,INPUT);
pinMode (tombol2,INPUT);
pinMode (tombol3,INPUT);
pinMode (tombol4,INPUT);
pinMode (led1,OUTPUT);
pinMode (led2,OUTPUT);
pinMode (led3,OUTPUT);
pinMode (led4,OUTPUT);
}
void loop() {
if (digitalRead(tombol1)==LOW)
{digitalWrite(7,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
}
else if (digitalRead(tombol2)==LOW)
{digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
}

else if (digitalRead(tombol3)==LOW)
{digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
}
else if (digitalRead(tombol4)==LOW)
{digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
}
delay (30);
}
IV. HASIL DAN PEMBAHASAN
Pada praktikum kali ini menggunakan fungsi if-else dimana program akan berjalan
ketika kondisinya terpenuhi, dan ketika kondisi pertama tidak terpenuhi maka
program akan mencari kondisi yang lain, kemudian jika kondisinya terpenuhi
program akan terus berjalan. Dalam hal ini program akan memeriksa kondisi dari
pushbutton yang ditekan. Ketika pushbutton 1 ditekan maka hanya satu Led yang
akan menyala, kemudian ketika pushbutton 2 ditekan maka dua Led yang akan
menyala, terus ketika pushbutton 3 ditekan maka tiga Led yang akan menyala,
terakhir ketika pushbutton 4 ditekan maka empat Led akan menyala.
JOB IV
SENSOR INTERFACING

I. DASAR TEORI
Interface atau dalam istilah Indonesianya Antar Muka dapat diartikan sebagai sebuah
titik, di mana dua komponen atau benda berbeda bertemu. Dalam hubungannya
dengan perangkat lunak, interface dapat diartikan sebagai sarana atau medium atau
sistem operasi yang digunakan untuk menghubungkan antara perangkat
mikroprosesor agar dapat berkomunikasi dengan pengguna (user). Sedangkan pada
konteks perangkat keras interface berarti komponen elektronika yang
menghubungkan atau mengkomunikasikan prosesor dengan komponen atau
perangkat lain dalam suatu sistem. Dalam praktikum kali ini saya akan
mempraktekan tentang interfacing arduino dengan sensor. Dan untuk menampilkan
hasil pembacaan dari sensor yang dipakai saya akan mengggunakan sebuah LCD.
Pertama saya akan bahas mengenai sensor. Sensor adalah jenis transduser (mengubah
suatu energi menjadi energi yang lain) seperti mengubah variasi mekanis, magnetis,
panas, sinar dan kimia menjadi tegangan dan arus listrik. Ada banyak sensor yang
ada, namun pada praktikum kali ini saya akan menggunakan sensor Flowmeter
(sensor aliran) dan sensor suhu (DS18B20). Flowmeter merupakan alat yang
berfungsi untuk mengukur kecepatan aliran dan volume fluida liquid maupun gas.
Kerja dari flowmeter ini yaitu fluida berupa gas menggerakkan kincir yang
dihubungkan dengan motor sehingga saat kincir berputar maka motor juga ikut
berputar dan dapat menghasilkan ggl induksi. Pengkondisi sinyal membuat sinyal
tegangan ggl induksi dari motor dapat terbaca oleh arduino, lalu LCD dapat
manampilkan hasil pengukuran dari flow meter tersebut.
Gambar 1. Sensor Flowmeter

Keterangan:
Pada gambar sensor flowmeter diatas untuk babel berwarna merah untuk
VCC, kemudian kabel yang berwarna hitam untuk grunding (GND), dan kabel
berwarna kuning untuk data.
DS1820 adalah sensor suhu yang dikeluarkan oleh Dallas Semiconductor.
Untuk membacanya menggunakan protokol 1 wire communication. Dimana hanya
ada tiga kabel yang terdiri dari +5V, GND dan DQ (Data Input/Output). Keunggulan
dari DS1820 adalah, output berupa data digital dengan nilai ketelitian 0,5 derajat
Celcius sehingga mempermudah pembacaan oleh mikrokontroller.

Gambar 2. Sensor DS18B20


Dan komponen yang dipakai untuk menampilkan hasil pembacaan sensor yaitu LCD.
LCD atau Liquid Crystal Display adalah suatu jenis media tampilan yang
menggunakan kristal cair sebagai penampil utama. Dan pada percobaan kali ini saya
menggunakan LCD 16x2 yang artinya LCD tersebut terdiri dari 16 kolom dan 2 baris
karakter (tulisan).

Gambar 3. LCD (Liquid Crystal Display)

II. ALAT DAN BAHAN


Alat dan bahan percobaan diperlihatkan pada Tabel 2:
Tabel 2. Alat dan Bahan Praktikum
No Alat dan Bahan Jumlah
1 Arduino Uno R3 1
2 Modul /Rangkaian percobaan 1
3 Kabel USB 1
4 Sensor Suhu ( 1
5 Sensor Aliran (Flow Meter) 1
6 Kabel jumper Secukupnya
III. LANGKAH PERCOBAAN
1. Percobaan Interfacing Arduino Dan Sensor
a. Koneksi Hardware
Dengan menggunakan kabel , koneksikan Sensor Flowmeter dan Sensor Suhu
(DS18B20) pada pin-pin Arduino Uno R3 dengan konfigurasi sebagai berikut:
 Menghubungkan kabel merah dari sensor Flowmeter ke sumber tegangan (VCC).
 Menghubungkan kabel hitam dari sensor Flowmeter ke ground (GND).
 Menghubungkan kabel kuning dari sensor Flowmeter ke pin 2 Arduino.
 Menghubungkan kabel merah dari sensor DS18B28 ke sumber tegangan (VCC).
 Menghubungkan kabel hitam dari sensor DS18B28 ke sumber ground (GND).
 Menghubungkan kabel kuning dari sensor DS18B28 ke pin 7 Arduino.
 Menghubungkan pin RS LCD ke pin 12 Arduino
 Menghubungkan pin E LCD ke pin 11 Arduino
 Menghubungkan pin D4 LCD ke pin 5 Arduino
 Menghubungkan pin D5 LCD ke pin 4 Arduino
 Menghubungkan pin D6 LCD ke pin 3 Arduino
 Menghubungkan pin D7 LCD ke pin 6 Arduino
 Menghubungkan pin RW LCD ke Ground (GND) Arduino
 Menghubungkan pin VSS LCD ke Ground (GND) Arduino
 Menghubungkan pin VCC LCD ke sumber tegangan (VCC) Arduino
Gambar 2. Skematik Percobaan Interfacing Sensor Dan Arduino

Gambar 3. Breadboard Percobaan Interfacing Sensor Dan Arduino

b. Pemrograman Pada Arduino


Pemrograman pada Arduino diperlihatkan sebagai berikut:
// include the library code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 6);
volatile int flow_frequency; // Measures flow sensor pulses
unsigned int l_hour; // Calculated litres/hour
unsigned char flowsensor = 2; // Sensor Input
unsigned long currentTime;
unsigned long cloopTime;
void flow () // Interrupt function
{
flow_frequency++;
}
void setup()
{
pinMode(flowsensor, INPUT);
digitalWrite(flowsensor, HIGH); // Optional Internal Pull-Up
Serial.begin(9600);
attachInterrupt(0, flow, RISING); // Setup Interrupt
sei(); // Enable interrupts
currentTime = millis();
cloopTime = currentTime;

// set up the LCD's number of columns and rows:


lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("SUHU: BELUM ADA");
}

void loop ()
{
currentTime = millis();
// Every second, calculate and print litres/hour
if(currentTime >= (cloopTime + 1000))
{
cloopTime = currentTime; // Updates cloopTime
// Pulse frequency (Hz) = 7.5Q, Q is flow rate in L/min.
l_hour = (flow_frequency * 60 / 7.5); // (Pulse frequency x 60 min) / 7.5Q =
flowrate in L/hour
flow_frequency =0; // Reset Counter
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Flow: ");
lcd.print(l_hour); // Print litres/hour
lcd.setCursor(12, 1);
lcd.print("L/H");
//lcd.clear();
}
}

IV. HASIL DAN PEMBAHASAN


Pada praktikum kali ini saya belajar tentang interfacing sensor dengan
arduino,dimana pada praktikum ini sensor akan terhubung dengan arduino sehingga
sensor dapat mengirim data hasil pengukuran suhu dan aliran kemudian data tersebut
diterima oleh arduino untuk seterusnya ditampilkan pada LCD. Pada program untuk
menampilkan hasil pembacaan sensor pada LCD dapat dituliskan ‘’ lcd.print ( “
sensor terpasang” ) ; ‘’ . Kemudian program untuk mengatur letak penampilan
tulisan ( hasil pembacaan sensor ) yaitu ‘’ lcd.setCursor (0,1); ‘’ . maksud dari
lcd.setCursor (0,1); ini adalah kita akan menulis di LCD pada number colom ke 0,
number baris ke 1.

Anda mungkin juga menyukai