Anda di halaman 1dari 21

KARAKTERISASI EMBEDDED SYSTEM 2

(SEVEN SEGMENT,ADC,I/O,ANTAR MUKA,DATA


LOGGER,PWM,TIMER,KOMUNIKASI SERIAL)
ARDUINO UNO
Arum Melati Suci#1, Sri Murti*2, Prisma Megantoro#3
# Metrologi dan Instrumentasi Sekolah Vokasi, Universitas Gadjah Mada, Jln. Sekip Unit 1
Catur Tunggal Yogyakarta 55281 INDONESIA
1arum.melati.s@mail.ugm.ac.id, 2sri.murti@mail.ugm.ac.id,

3prisma.megantoro@giz.de

A. Pembahasan
Telah dilaksanakan Praktikum Analisa
Sistem dan Instrumentasi mengenai Embedded
System 2 Arduino Uno. Praktikum dilaksanakan pada
tanggal 10 April 2017 di Laboratorium SV 118.
Praktikan melakukan praktikum dengan
menggunakan arduino KIT untuk membuat rangkaian
kontrol Seven Segmen, digital input, Analog To
Digital Converter, Interupsi, Pulse Width Modulation,
Data logger,Timer, dan komunikasi serial.
Gambar 1. Diagram Blok Dekode
I. Kontrol Seven Segment
Kontrol 7 segment ini praktikan
Blok Dekoder pada diagram diatas mengubah
menampilkan beberapa huruf dengan interval sinyal Input yang diberikan menjadi 8 jalur yaitu a
waktu 1000 milisekon. Dengan menghubungkan sampai g dan poin decimal (koma) untuk meng-ON-
pin pada board arduino dan training kit sesuai pada kan segmen sehingga menghasilkan angka atau digit
tabel dibawah ini : yang diinginkan. Fungsi daripada Blok Driver adalah
untuk memberikan arus listrik yang cukup kepada
Tabel 1.Konfigurasi pin pada board arduino yang Segmen/Elemen LED untuk menyala. Pada Tipe
Dekoder tertentu, Dekoder sendiri dapat mengeluarkan
dihubungkan pada training kit
Tegangan dan Arus listrik yang cukup untuk
menyalakan Segmen LED maka Blok Driver ini tidak
diperlukan. Pada umumnya Driver untuk menyalakan 7
Segmen ini adalah terdiri dari 8 Transistor Switch pada
masing-masing elemen LED.

Prinsip Kerja Dasar Driver System pada 7


Segment menggunakan Blok Dekoder dimana
blok dekoder mengubah sinyal Input yang
diberikan menjadi 8 jalur yaitu a sampai g dan
poin decimal (koma) untuk meng-ON-kan
segmen sehingga menghasilkan angka atau digit
yang diinginkan. Berikut merupakan diagram blok
dekoder:
Gambar 2. Dekoder yang Digunakan

Jika dibuat dalam flowchart maka flowchartnya


adalah seperti berikut :
pinMode(9, OUTPUT);
menentukan pin 9 sebagai OUTPUT
}
Tanda kurung kurawal Digunakan untuk menentukan
awal dan akhir dari program
void loop(){
Semua kode yang ada disini akan dibaca berulang
kali (terus menerus) oleh Arduino. Fungsi ini akan
dijalankan setelah setup (fungsi void setup) selesai.
Setelah dijalankan satu kali fungsi ini akan
dijalankan lagi, dan lagi secara terus menerus
sampai catu daya (power) dilepaskan.
//1
Memberi catatan untuk si penulis program dan
catatan akan diabaikan oleh program
digitalWrite(2,0);
Kode diatas digunakan untuk pin OUTPUT nomor
2 yang sudah kita seting akan menyala
digitalWrite(3,0);
Gambar 3. Flowchart Variasi Kontrol 7 Segment Kode diatas digunakan untuk pin OUTPUT nomor
2 yang sudah kita seting akan menyala
Berdasarkan flowchart diatas dapat diketahui
digitalWrite(4,0);
bahwa flowchart tersebut merupakan flowchart
membuat variasi kontrol 7 segment. Langkah yang Kode diatas digunakan untuk pin OUTPUT nomor
harus dilakukan pertama adalah mengetikkan coding 2 yang sudah kita seting akan menyala
pada aplikasi arduino yang telah terinstall. digitalWrite(5,0);
Kemudian memverify coding lalu mengupload Kode diatas digunakan untuk pin OUTPUT nomor
coding. Lalu perintah terakhir yakni menampilkan 2 yang sudah kita seting akan menyala
variasi 7segment yang berupa beberapa huruf.
digitalWrite(6,0);
Kode diatas digunakan untuk pin OUTPUT nomor
Berikut ini merupakan coding yang dituliskan dalam
program Arduino : 2 yang sudah kita seting akan menyala
a.) Penjelasan Coding digitalWrite(7,1);
void setup(){ Kode diatas digunakan untuk pin OUTPUT nomor
Dijalankan pertama kali setiap board arduino 2 yang sudah kita seting akan menyala
dihidupkan, Semua kode didalam kurung kurawal digitalWrite(8,1);
akan dijalankan hanya satu kali ketika program Kode diatas digunakan untuk pin OUTPUT nomor
Arduino dijalankan untuk pertama kalinya. 2 yang sudah kita seting akan menyala
pinMode(2, OUTPUT); digitalWrite(9,0);
Kode diatas digunakan untuk seting mode pin. Pin Kode diatas digunakan untuk pin OUTPUT nomor
adalah nomer pin yang akan digunakan, artinya pin 2 2 yang sudah kita seting akan menyala
digunakan sebagai OUTPUT delay (1000);
pinMode(3, OUTPUT); pause selama 1 detik
menentukan pin 3 sebagai OUTPUT //0
pinMode(4, OUTPUT); Memberi catatan untuk si penulis program dan
menentukan pin 4 sebagai OUTPUT catatan akan diabaikan oleh program
pinMode(5, OUTPUT); digitalWrite(2,1);
menentukan pin 5 sebagai OUTPUT Kode diatas digunakan untuk pin OUTPUT nomor 2
pinMode(6, OUTPUT); yang sudah kita seting akan menyala
menentukan pin 6 sebagai OUTPUT digitalWrite(3,0);
pinMode(7, OUTPUT); Kode diatas digunakan untuk pin OUTPUT nomor 3
menentukan pin 7 sebagai OUTPUT yang sudah kita seting tidak akan mati
pinMode(8, OUTPUT); digitalWrite(4,1);
menentukan pin 8 sebagai OUTPUT Kode diatas digunakan untuk pin OUTPUT nomor 4
yang sudah kita seting akan menyala Kode diatas digunakan untuk pin OUTPUT nomor 3
digitalWrite(5,1); yang sudah kita seting akan menyala
Kode diatas digunakan untuk pin OUTPUT nomor digitalWrite(4,1);
5 yang sudah kita seting akan menyala Kode diatas digunakan untuk pin OUTPUT nomor 4
digitalWrite(6,1); yang sudah kita seting akan menyala
Kode diatas digunakan untuk pin OUTPUT nomor digitalWrite(5,0);
6 yang sudah kita seting akan menyala Kode diatas digunakan untuk pin OUTPUT nomor 5
digitalWrite(7,1); yang sudah kita seting akan mati
Kode diatas digunakan untuk pin OUTPUT nomor digitalWrite(6,0);
7 yang sudah kita seting akan menyala Kode diatas digunakan untuk pin OUTPUT nomor 6
digitalWrite(8,1); yang sudah kita seting akan mati
Kode diatas digunakan untuk pin OUTPUT nomor digitalWrite(7,0);
8 yang sudah kita seting akan menyala Kode diatas digunakan untuk pin OUTPUT nomor 7
digitalWrite(9,1); yang sudah kita seting akan mati
Kode diatas digunakan untuk pin OUTPUT nomor digitalWrite(8,1);
9 yang sudah kita seting akan menyala Kode diatas digunakan untuk pin OUTPUT nomor 8
//A yang sudah kita seting akan menyala
Memberi catatan untuk si penulis program digitalWrite(9,1);
dan catatan akan diabaikan oleh program Kode diatas digunakan untuk pin OUTPUT nomor 9
digitalWrite(2,1); yang sudah kita seting akan menyala
Kode diatas digunakan untuk pin OUTPUT nomor delay (1000);
2 yang sudah kita seting akan menyala //R
digitalWrite(3,1); Memberi catatan untuk si penulis program dan
Kode diatas digunakan untuk pin OUTPUT nomor catatan akan diabaikan oleh program
3 yang sudah kita seting akan menyala digitalWrite(2,1);
digitalWrite(4,1); Kode diatas digunakan untuk pin OUTPUT nomor 2
Kode diatas digunakan untuk pin OUTPUT nomor yang sudah kita seting akan menyala
4 yang sudah kita seting akan menyala digitalWrite(3,0);
digitalWrite(5,0); Kode diatas digunakan untuk pin OUTPUT nomor 3
Kode diatas digunakan untuk pin OUTPUT nomor yang sudah kita seting akan mati
5 yang sudah kita seting akan mati digitalWrite(4,1);
digitalWrite(6,0); Kode diatas digunakan untuk pin OUTPUT nomor 4
Kode diatas digunakan untuk pin OUTPUT nomor yang sudah kita seting akan menyala
6 yang sudah kita seting akan mati digitalWrite(5,0);
digitalWrite(7,1); Kode diatas digunakan untuk pin OUTPUT nomor 5
Kode diatas digunakan untuk pin OUTPUT nomor yang sudah kita seting akan mati
7 yang sudah kita seting akan menyala digitalWrite(6,0);
digitalWrite(8,1); Kode diatas digunakan untuk pin OUTPUT nomor 6
Kode diatas digunakan untuk pin OUTPUT nomor yang sudah kita seting akan mati
8 yang sudah kita seting akan menyala digitalWrite(7,0);
digitalWrite(9,1); Kode diatas digunakan untuk pin OUTPUT nomor 7
Kode diatas digunakan untuk pin OUTPUT nomor yang sudah kita seting akan mati
9 yang sudah kita seting akan menyala digitalWrite(8,0);
delay (1000); Kode diatas digunakan untuk pin OUTPUT nomor 8
pause selama 1 detik yang sudah kita seting akan mati
//P digitalWrite(9,1);
Memberi catatan untuk si penulis program Kode diatas digunakan untuk pin OUTPUT nomor 9
dan catatan akan diabaikan oleh program yang sudah kita seting akan menyala
digitalWrite(2,1); delay (1000);
Kode diatas digunakan untuk pin OUTPUT nomor pause selama 1 detik
2 yang sudah kita seting akan menyala //I
digitalWrite(3,1); Memberi catatan untuk si penulis program dan
catatan akan diabaikan oleh program Kode diatas digunakan untuk pin OUTPUT nomor 9
digitalWrite(2,1); yang sudah kita seting akan mati
Kode diatas digunakan untuk pin OUTPUT nomor delay (1000);
2 yang sudah kita seting akan menyala pause selama 1 detik
digitalWrite(3,0); //2
Kode diatas digunakan untuk pin OUTPUT nomor Memberi catatan untuk si penulis program dan
3 yang sudah kita seting akan mati catatan akan diabaikan oleh program
digitalWrite(4,1); digitalWrite(2,0);
Kode diatas digunakan untuk pin OUTPUT nomor Kode diatas digunakan untuk pin OUTPUT nomor 9
4 yang sudah kita seting akan menyala yang sudah kita seting akan mati
digitalWrite(5,0); digitalWrite(3,1);
Kode diatas digunakan untuk pin OUTPUT nomor Kode diatas digunakan untuk pin OUTPUT nomor 5
5 yang sudah kita seting akan mati yang sudah kita seting akan menyala
digitalWrite(6,0); digitalWrite(4,1);
Kode diatas digunakan untuk pin OUTPUT nomor Kode diatas digunakan untuk pin OUTPUT nomor 5
6 yang sudah kita seting akan mati yang sudah kita seting akan menyala
digitalWrite(7,0); digitalWrite(5,1);
Kode diatas digunakan untuk pin OUTPUT nomor Kode diatas digunakan untuk pin OUTPUT nomor 5
7 yang sudah kita seting akan mati yang sudah kita seting akan menyala
digitalWrite(8,0); digitalWrite(6,0);
Kode diatas digunakan untuk pin OUTPUT nomor Kode diatas digunakan untuk pin OUTPUT nomor 5
8 yang sudah kita seting akan mati yang sudah kita seting akan menyala
digitalWrite(9,0); digitalWrite(7,0);
Kode diatas digunakan untuk pin OUTPUT nomor Kode diatas digunakan untuk pin OUTPUT nomor 5
9 yang sudah kita seting akan mati yang sudah kita seting akan menyala
delay (1000); digitalWrite(8,1);
pause selama 1 detik Kode diatas digunakan untuk pin OUTPUT nomor 5
//L yang sudah kita seting akan menyala
Memberi catatan untuk si penulis program digitalWrite(9,1);
dan catatan akan diabaikan oleh program Kode diatas digunakan untuk pin OUTPUT nomor 5
digitalWrite(2,1); yang sudah kita seting akan menyala
Kode diatas digunakan untuk pin OUTPUT nomor delay (1000);
2 yang sudah kita seting akan menyala pause selama 1 detik
digitalWrite(3,0); //0
Kode diatas digunakan untuk pin OUTPUT nomor Memberi catatan untuk si penulis program dan
3 yang sudah kita seting akan mati catatan akan diabaikan oleh program
digitalWrite(4,1); digitalWrite(2,1);
Kode diatas digunakan untuk pin OUTPUT nomor Kode diatas digunakan untuk pin OUTPUT nomor 2
4 yang sudah kita seting akan menyala yang sudah kita seting akan menyala
digitalWrite(5,1); digitalWrite(3,0);
Kode diatas digunakan untuk pin OUTPUT nomor Kode diatas digunakan untuk pin OUTPUT nomor 3
5 yang sudah kita seting akan menyala yang sudah kita seting tidak akan mati
digitalWrite(6,0); digitalWrite(4,1);
Kode diatas digunakan untuk pin OUTPUT nomor Kode diatas digunakan untuk pin OUTPUT nomor 4
6 yang sudah kita seting akan mati yang sudah kita seting akan menyala
digitalWrite(7,0); digitalWrite(5,1);
Kode diatas digunakan untuk pin OUTPUT nomor Kode diatas digunakan untuk pin OUTPUT nomor 5
7 yang sudah kita seting akan mati yang sudah kita seting akan menyala
digitalWrite(8,0); digitalWrite(6,1);
Kode diatas digunakan untuk pin OUTPUT nomor Kode diatas digunakan untuk pin OUTPUT nomor 6
8 yang sudah kita seting akan mati yang sudah kita seting akan menyala
digitalWrite(9,0); digitalWrite(7,1);
Kode diatas digunakan untuk pin OUTPUT nomor Kode diatas digunakan untuk pin OUTPUT nomor 5
7 yang sudah kita seting akan menyala yang sudah kita seting akan mati
digitalWrite(8,1); digitalWrite(6,0);
Kode diatas digunakan untuk pin OUTPUT nomor Kode diatas digunakan untuk pin OUTPUT nomor 6
8 yang sudah kita seting akan menyala yang sudah kita seting akan mati
digitalWrite(9,1); digitalWrite(7,1);
Kode diatas digunakan untuk pin OUTPUT nomor Kode diatas digunakan untuk pin OUTPUT nomor 7
9 yang sudah kita seting akan menyala yang sudah kita seting akan menyala
delay (1000); digitalWrite(8,1);
pause selama 1 detik Kode diatas digunakan untuk pin OUTPUT nomor 8
//1 yang sudah kita seting akan menyala
Memberi catatan untuk si penulis program digitalWrite(9,1);
dan catatan akan diabaikan oleh program Kode diatas digunakan untuk pin OUTPUT nomor 9
digitalWrite(2,0); yang sudah kita seting akan menyala
Kode diatas digunakan untuk pin OUTPUT nomor delay (1000);
2 yang sudah kita seting akan menyala pause selama 1 detik
digitalWrite(3,0); }
Kode diatas digunakan untuk pin OUTPUT nomor Tanda kurung kurawal Digunakan untuk
2 yang sudah kita seting akan menyala menentukan awal dan akhir dari program
digitalWrite(4,0);
Kode diatas digunakan untuk pin OUTPUT nomor Pada pemrograman kontrol variasi 7
2 yang sudah kita seting akan menyala segment praktikan melakukan pengkodingan dari
digitalWrite(5,0); huruf 10 April 2017. Yakni tanggal dilakukanya
Kode diatas digunakan untuk pin OUTPUT nomor praktikum. Sehingga pada IDE Arduino melakukan
program pada huruf 1, 0, A, P, R, I, L,2,0,1,7. sesuai
2 yang sudah kita seting akan menyala dengan pengcodingan yang dijelaskan diatas. Berikut
digitalWrite(6,0); ini merupakan hasil yang terlihat pada arduino:
Kode diatas digunakan untuk pin OUTPUT nomor
2 yang sudah kita seting akan menyala
digitalWrite(7,1);
Kode diatas digunakan untuk pin OUTPUT nomor
2 yang sudah kita seting akan menyala
digitalWrite(8,1);
Kode diatas digunakan untuk pin OUTPUT nomor
2 yang sudah kita seting akan menyala
digitalWrite(9,0);
Kode diatas digunakan untuk pin OUTPUT nomor
2 yang sudah kita seting akan menyala
delay (1000);
pause selama 1 detik
//7
Memberi catatan untuk si penulis program
dan catatan akan diabaikan oleh program
digitalWrite(2,0);
Kode diatas digunakan untuk pin OUTPUT nomor
2 yang sudah kita seting akan mati
digitalWrite(3,0);
Kode diatas digunakan untuk pin OUTPUT nomor
3 yang sudah kita seting akan mati
digitalWrite(4,0);
Kode diatas digunakan untuk pin OUTPUT nomor Gambar 4. Hasil Tampilan Variasi Kontrol 7 Segment
4 yang sudah kita seting akan mati Jika output dekoder adalah e, f, b, dan c, maka
digitalWrite(5,0); Segmen LED akan menyala menjadi huruf A. Jika
output dekoder adalah f dan e maka Segmen LED Tabel 2. Konfigurasi Pin Digital Input
akan menyala menjadi angka 1. Kemudian, jika
output dekoder adalah a, b, c, d, e, f, maka Segmen
LED akan menyala menjadi angka 0. Selanjutnya
jika output dekoder adalah e, f, a, b maka segmen
LED akan menyala menjadi huruf P. Jika output
dekoder adalah a, b, dan c, maka Segmen LED akan
menyala menjadi angka 7. Jika output dekoder
adalah f, e, d, maka Segmen LED akan menyala
menjadi huruf L. Dan jika output dekoder adalah e,
f, a, maka Segmen LED akan menyala menjadi huruf
r.
Kemudian, mensimulasikannya dengan
kodingan arduino. Apabila Segmen LED menyala
maka bernilai 1. Namun, apabila Segmen LED mati
maka bernilai 0. Dari tampilan gambar diatas dapat
diketahui bahwa Selain 0 9, Seven Segment
Display juga dapat menampilkan Huruf
Hexadecimal dari A sampai F, pada variasi 7 Berikut merupakan flowchart pada
segment ini praktikan membuat perintah yang praktikum digital input :
membentuk beberapa huruf seperti 1, 0, A, P, R, I,
L,2,0,1,7.

II. Digital Input


Selain menyalakan lampu LED, kontrol 7
segment selanjutnya praktikan melakukan
praktikum tentang digital input.

Arduino dapat membaca data digital


dengan pin yang diatur sebagai input. Pin ini
membaca logika biner, sehingga hasil pembacaan
hanya dua kemungkinan, yaitu HIGH (1) atau
LOW (0). Kebalikannya dari subbab sebelumnya,
semua pin Arduino yang digunakan diatur sebagai
output, dengan perintah:
pinMode(nomor_pin.OUTPUT).

Dengan perintah ini, maka pin Arduino


akan membaca sinyal digital pada pin yang
ditentukan. Lalu pilih input floating atau pull up
dengan perintah.
Untuk floating
writeDigital(nomor_pin,0)
atau Gambar 5. Flowchart Digital Input
writeDigital(nomor_pin,LOW) Berdasarkan flowchart diatas dapat diketahui
Untuk pull up bahwa flowchart tersebut merupakan flowchart
writeDigital(nomor_pin,1) membuat digital input. Langkah yang harus dilakukan
atau pertama adalah mengetikkan coding pada aplikasi
writeDigital(nomor_pin,HIGH) arduino yang telah terinstall. Kemudian memverify
Lalu untuk membaca data digital yang masuk, coding lalu mengupload coding. Lalu perintah terakhir
digunakan perintah: yakni menampilkan digital input.
digitalRead(nomor_pin)
Untuk pin input yang dihubungkan dengan Berikut ini merupakan coding yang dituliskan dalam
sebuah saklar, disarankan mengatur pin pada program Arduino :
kondisi pull up. Program ini untuk menghidupkan a.) Penjelasan Coding
lampu LED ketika tombol push button ditekan. byte tombol;
Menggunakan 8 tombol dan 8 LED, dengan Tombol digunakan untuk menghidupkan lampu LED
masing-masing LED dinyalakan oleh setiap
sesuai dengan nomor pin yang terhubung. LED tidak
tombol.
akan menyala jika tombol tidak ditekan
void setup(){ kali (terus menerus) oleh Arduino. Fungsi ini akan
Dijalankan pertama kali setiap board arduino dijalankan setelah setup (fungsi void setup) selesai.
dihidupkan, Semua kode didalam kurung kurawal Setelah dijalankan satu kali fungsi ini akan
akan dijalankan hanya satu kali ketika program dijalankan lagi, dan lagi secara terus menerus
Arduino dijalankan untuk pertama kalinya. sampai catu daya (power) dilepaskan.
pinMode(2, INPUT); pinMode(3, INPUT); tombol=digitalRead(2);
Kode diatas digunakan untuk seting mode pin. nomer Artinya kode akan membaca nilai sensor pada pin 2
pin yang akan digunakan, artinya pin 2 dan 3 dan akan menyala jika tombol di tekan. Tombol
digunakan sebagai INPUT memiliki arti kodingan yang sama dengan
pinMode(4, INPUT);pinMode(5, INPUT); digitalRead(2);
Kode diatas digunakan untuk seting mode pin. nomer if(tombol==LOW)digitalWrite(10,1);
pin yang akan digunakan, artinya pin 4 dan 5 Program akan dijalankan jika tombol sama dengan
digunakan sebagai INPUT 0 volt (mati) dan pin nomor 10 diberi 5 volt (nyala)
pinMode(6, INPUT);pinMode(7, INPUT); telah benar maka program akan menjalankan
Kode diatas digunakan untuk seting mode pin. nomer perintah
pin yang akan digunakan, artinya pin 6 dan 7 else digitalWrite(10,0);
digunakan sebagai INPUT Jika tidak maka program akan melihat pada
pinMode(8, INPUT);pinMode(9, INPUT); perintah digitalWrite(10,0); yang artinya pin nomor
Kode diatas digunakan untuk seting mode pin. nomer 10 diberi 0 volt (mati atau tidak nyala)
pin yang akan digunakan, artinya pin 8 dan 9 tombol=digitalRead(3);
digunakan sebagai INPUT Artinya kode akan membaca nilai sensor pada pin 3
digitalWrite(2, HIGH);digitalWrite(3, HIGH); dan akan menyala jika tombol di tekan. Tombol
Kode diatas digunakan untuk pin OUTPUT nomor 2 memiliki arti kodingan yang sama dengan
dan 3 yang sudah kita seting akan menyala digitalRead(3);
digitalWrite(4, HIGH);digitalWrite(5, HIGH); if(tombol==LOW)digitalWrite(11,1);
Kode diatas digunakan untuk pin OUTPUT nomor 4 Program akan dijalankan jika tombol sama dengan 0
dan 5 yang sudah kita seting akan menyala volt (mati) dan pin nomor 11 diberi 5 volt (nyala) telah
digitalWrite(6, HIGH);digitalWrite(7, HIGH); benar maka program akan menjalankan perintah
Kode diatas digunakan untuk pin OUTPUT nomor 6 else digitalWrite(11,0);
dan 7 yang sudah kita seting akan menyala Jika tidak maka program akan melihat pada perintah
digitalWrite(8, HIGH);digitalWrite(9, HIGH); digitalWrite(11,0); yang artinya pin nomor 11 diberi 0
Kode diatas digunakan untuk pin OUTPUT nomor 8 volt (mati atau tidak nyala)
dan 9 yang sudah kita seting akan menyala tombol=digitalRead(4);
pinMode(10, OUTPUT);pinMode(11, OUTPUT); Artinya kode akan membaca nilai sensor pada pin 4
Kode diatas digunakan untuk seting mode pin. nomer dan akan menyala jika tombol di tekan. Tombol
pin yang akan digunakan, artinya pin 10 dan 11 memiliki arti kodingan yang sama dengan
digunakan sebagai OUTPUT digitalRead(4);
pinMode(12, OUTPUT);pinMode(13, OUTPUT); if(tombol==LOW)digitalWrite(12,1);
Kode diatas digunakan untuk seting mode pin. nomer Program akan dijalankan jika tombol sama dengan 0
pin yang akan digunakan, artinya pin 12 dan 13 volt (mati) dan pin nomor 12 diberi 5 volt (nyala) telah
digunakan sebagai OUTPUT benar maka program akan menjalankan perintah
pinMode(A0, OUTPUT);pinMode(A1, OUTPUT); else digitalWrite(12,0);
Kode diatas digunakan untuk seting mode pin. nomer Jika tidak maka program akan melihat pada perintah
pin yang akan digunakan, artinya pin A0 dan A1 digitalWrite(12,0); yang artinya pin nomor 12 diberi 0
digunakan sebagai OUTPUT volt (mati atau tidak nyala)
pinMode(A2, OUTPUT);pinMode(A3, OUTPUT); tombol=digitalRead(5);
Kode diatas digunakan untuk seting mode pin. nomer Artinya kode akan membaca nilai sensor pada pin 5
pin yang akan digunakan, artinya pin A2 dan A3 dan akan menyala jika tombol di tekan. Tombol
digunakan sebagai OUTPUT memiliki arti kodingan yang sama dengan
{ digitalRead(5);
void loop(){ if(tombol==LOW)digitalWrite(13,1);
Semua kode yang ada disini akan dibaca berulang Program akan dijalankan jika tombol sama dengan 0
volt (mati) dan pin nomor 13 diberi 5 volt (nyala)
telah benar maka program akan menjalankan
perintah
else digitalWrite(13,0);
Jika tidak maka program akan melihat pada perintah
digitalWrite(13,0); yang artinya pin nomor 13 diberi
0 volt (mati atau tidak nyala)
tombol=digitalRead(7);
Artinya kode akan membaca nilai sensor pada pin
7 dan akan menyala jika tombol di tekan. Tombol
memiliki arti kodingan yang sama dengan
digitalRead(7);
if(tombol==LOW)digitalWrite(A1,1);
Program akan dijalankan jika tombol sama
dengan 0 volt (mati) dan kode akan membaca nilai
sensor pada pin A1 diberi 5 volt (nyala) telah benar
maka program akan menjalankan perintah
Gambar 6. Hasil Tampilan Digital Input
else digitalWrite(A1,0);
Dari tampilan gambar diatas dapat
Jika tidak maka program akan melihat pada diketahui bahwa digital input adalah program yang
perintah digital Write(A1,0); yang artinya pin dibuat untuk menghidupkan lampu LED dengan
nomor A1 diberi 0 volt (mati atau tidak nyala) cara menekan tombol terlebih dahulu, lampu LED
tombol=digitalRead(8); tidak akan menyala jika tombolnya tidak ditekan.
Artinya kode akan membaca nilai sensor pada pin Jumlah lampu LED yang dapat dinyalakan dengan
tombol pada gambar tersebut ada 8 LED juga
8 dan akan menyala jika tombol di tekan. Tombol
dengan 8 tombol. Pin LED yangakan dinyalakan
memiliki arti kodingan yang sama dengan harus sama dengan nomor atau pin tombol yang
digitalRead(8); digunakan untuk menghidupkan.
if(tombol==LOW)digitalWrite(A2,1);
Jika tidak maka program akan melihat pada III. ADC Digital
perintah digital Write(A2,0); yang artinya pin Arduino juga mempunyai ADC internal untuk
nomor A2 diberi 0 volt (mati atau tidak nyala) pembacaan data analog. Terdapat 6 pin yang
else digitalWrite(A2,0); digunakan untuk hal ini, yaitu dari A0 sampai A5.
Resolusi ADC yang dimiliki oleh Arduino tipe ini
Jika tidak maka program akan melihat pada
adalah 10 bit. Artinya nilai yang bisa dibaca berkisar
perintah digital Write(A2,0); yang artinya pin antara 0 sampai dengan 1023 dengan tegangan analog
nomor A2 diberi 0 volt (mati atau tidak nyala) masukan dari 0 sampai 5 V. Maka dengan itu, nilai 1
tombol=digitalRead(9); bit dari hasil pembacaan ADC bisa didapatkan dengan
Artinya kode akan membaca nilai sensor pada pin 9 persamaan berikut:
dan akan menyala jika tombol di tekan. Tombol
memiliki arti kodingan yang sama dengan
digitalRead(9); Artinya setiap 1 bit ADC bisa dianggap sebagai 4,89
if(tombol==LOW)digitalWrite(A3,1); V. Perintah untuk membaca data analog adalah:
analogRead(nomor_pin)
Jika tidak maka program akan melihat pada
Pada training kit ini, ada 3 buah sensor yang
perintah digital Write(A3,0); yang artinya pin bisa digunakan untuk masukan analog, yaitu sensor
nomor A3 diberi 0 volt (mati atau tidak nyala) suhu LM35, sensor LDR, dan potensiometer. dan hasil
else digitalWrite(A3,0); pembacaan ditampilkan ke LCD:
Jika tidak maka program akan melihat pada
perintah digital Write(A3,0); yang artinya pin Untuk Potensiometer :
nomor A3 diberi 0 volt (mati atau tidak nyala) Tabel 3. Konfigurasi untuk Potensiometer
}
Tanda kurung kurawal Digunakan untuk
menentukan akhir dari program.

Sehingga akan tampil pada arduino seperti


berikut ini: Untuk LCD
Tabel 4. Konfigurasi untuk LCD Variabel yang paling sering digunakan dan dapat
menyimpan data sebesar 2 bytes (16 bits)
void setup() {
Dijalankan pertama kali setiap board arduino
dihidupkan, Semua kode didalam kurung kurawal
akan. dijalankan hanya satu kali ketika program
Arduino dijalankan untuk pertama kalinya.
lcd.begin(16,2);
Untuk begin() digunakan dalam inisialisasi
Dibawah ini merupakan flowchart pada praktikum
Analog to Digital Converter: interface ke LCD dan mendefinisikan ukuran kolom
dan baris LCD. Maka pada lcd.begin(16,2) maksudnya
16 kolom dan 2 baris.
lcd.print("ADC channel 0");
instruksi print() ini digunakan untuk mencetak,
menampilkan pesan text di LCD.
lcd.setCursor(0,1);
Instruksi ini digunakan untuk memposisikan cursor
awal pesan text di LCD.
lcd.print("ADC= ");
instruksi print() ini digunakan untuk mencetak,
menampilkan pesan text di LCD.
}
void loop() {
Semua kode yang ada disini akan dibaca berulang
kali (terus menerus) oleh Arduino. Fungsi ini akan
dijalankan setelah setup (fungsi void setup) selesai.
Setelah dijalankan satu kali fungsi ini akan dijalankan
lagi, dan lagi secara terus menerus sampai catu daya
(power) dilepaskan
adc0 = analogRead(A0);
Gambar 7. Flowchart Analog to Digital Converter lcd.setCursor(5,1);
Instruksi ini digunakan untuk memposisikan cursor
Berdasarkan flowchart pada gambar 7 dapat awal pesan text di LCD.
diketahui bahwa flowchart tersebut merupakan lcd.print(adc0);
flowchart membuat digital input. Langkah yang harus instruksi print() ini digunakan untuk mencetak,
dilakukan pertama adalah mengetikkan coding pada
menampilkan pesan text di LCD.
aplikasi arduino yang telah terinstall. Kemudian
memverify coding lalu mengupload coding. Lalu lcd.print(" ");
perintah terakhir yakni menampilkan Analog to instruksi print() ini digunakan untuk mencetak,
Digital Converter. menampilkan pesan text di LCD.
Delay(1000);
Berikut ini merupakan coding yang dituliskan dalam Memberikan waktu tundaan 1000 millisecond, atau
program Arduino :
setara dengan 1 detik sebelum melanjutkan
a.) Penjelasan Coding
#include <LiquidCrystal.h> mengerjakan perintah baris program selanjutnya
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); }
Proses inisialisasi pin Arduino yang terhubung Tanda kurung kurawal Digunakan untuk
ke pin LCD RS, Enable, D4, D5, D6, dan D7, menentukan akhir dari program
dilakukan dalam baris LiquidCrystal lang (2, 3, 4, 5,
6, 7); dimana lang merupakan variable yang Sehingga akan muncul pada board arduino seperti pada
gambar dibawah ini:
dipanggil setiap kali instruksi terkait LCD akan
digunakan.
int adc0;
Tabel 5. Konfigurasi Pin Interupsi

Berikut ini merupakan flowchart praktikum interupsi


yang ditunjukkan pada gambar 9:

Gambar 8. Hasil Tampilan pada LCD program ADC


Berdasarkan pada gambar 8 yang
merupakan hasil tampilan pada LCD Program ADC.
Dari tampilan LCD tersebut dapat diamati bahwa
tertera nilai atau angka dari ADC yang berbeda-beda
yaitu sebesar 610, 244, 161, dan 830. Hasil nilai ADC
berubah-ubah dikarenakan praktikan mengatur nilai
ADC tersebut dengan menggunakan potensiometer.
Hal ini dikarenakan praktikan memutar potensiometer
yang menyebabkan nilai ADC pada LCD berubah.
IV. Interupsi
Interupsi adalah kondisi dimana eksekusi
program utama berhenti sementara karena ada sebuah
kejadian. Lalu program akan berpindah mengeksekusi
kejadian tersebut. Setelah kejadian tersebut selesai
dieksekusi, maka mikrokontroler akan kembali
mengerjakan eksekusi program utama. Pada Arduino
Uno, terdapat 2 pin untuk interupsi, yaitu pin 2 dan 3.
Gambar 9. Flowchart Praktikum Interupsi
Interupsi ekternal ditulis pada bagian
inisialisasi dengan:
Berdasarkan flowchart pada gambar 7 dapat
attachInterrupt
diketahui bahwa flowchart tersebut merupakan
(nomot_interrupt,nama_fungsi_interrupt,mode)
flowchart membuat digital input. Langkah yang harus
ada 4 macam mode dalam interupsi pada Arduino
dilakukan pertama adalah mengetikkan coding pada
Uno yang menentukan jenis pemicunya:
aplikasi arduino yang telah terinstall. Kemudian
i. LOW, pemicu interupsi berupa sinyal LOW (0) memverify coding lalu mengupload coding. Lalu
ii. CHANGE, pemicu interupsi ketika ada perintah terakhir yakni menampilkan perintah interupsi
perubahan logika
iii. RISING, pemicu interupsi ketika terjadi Berikut ini merupakan coding yang dituliskan dalam
perubahan logika dari LOW ke HIGH program Arduino :
iv. FALLING, pemicu interupsi ketika terjadi a.) Penjelasan Coding
perubahan logika dari HIGH ke LOW int i;
Berikut contoh program untuk Variabel yang paling sering digunakan dan dapat
menghidupkan ke 8 LED dengan menggunakan menyimpan data sebesar 2 bytes (16 bits).
program utama pada subbab Kontrol LED, LED
void setup(){
berjalan. Konfigurasi kabel pada tabel di bawah:
Dijalankan pertama kali setiap board arduino
dihidupkan, Semua kode didalam kurung kurawal
akan dijalankan hanya satu kali ketika program
Arduino dijalankan untuk pertama kalinya.
pinMode(2, OUTPUT);
Kode diatas digunakan untuk seting mode pin. Pin
adalah nomer pin yang akan digunakan, artinya pin 2
digunakan sebagai OUTPUT
pinMode(3, OUTPUT);
menentukan pin 3 sebagai OUTPUT untuk memberikan 5V (nyala) kepada pin 10
pinMode(4, OUTPUT); digitalWrite(11,HIGH);
menentukan pin 4 sebagai OUTPUT untuk memberikan 5V (nyala) kepada pin 11
pinMode(5, OUTPUT); digitalWrite(4,LOW);
menentukan pin 5 sebagai OUTPUT untuk memberikan 0V (mati) kepada pin 4
pinMode(6, OUTPUT); digitalWrite(5,LOW);
menentukan pin 6 sebagai OUTPUT untuk memberikan 0V (mati) kepada pin 5
pinMode(7, OUTPUT); digitalWrite(6,LOW);
menentukan pin 7 sebagai OUTPUT untuk memberikan 0V (mati) kepada pin 6
pinMode(8, OUTPUT); digitalWrite(7,LOW);
menentukan pin 8 sebagai OUTPUT untuk memberikan 0V (mati) kepada pin 7
pinMode(9, OUTPUT); digitalWrite(8,LOW);
menentukan pin 9 sebagai OUTPUT untuk memberikan 0V (mati) kepada pin 8
} digitalWrite(9,LOW);
Tanda kurung kurawal Digunakan untuk untuk memberikan 0V (mati) kepada pin 9
menentukan awal dan akhir dari program digitalWrite(10,LOW);
void loop(){ untuk memberikan 0V (mati) kepada pin 10
Semua kode yang ada disini akan dibaca berulang digitalWrite(11,LOW);
kali (terus menerus) oleh Arduino. Fungsi ini akan untuk memberikan 0V (mati) kepada pin 11
dijalankan setelah setup (fungsi void setup) selesai. }
Setelah dijalankan satu kali fungsi ini akan Tanda kurung kurawal Digunakan untuk
dijalankan lagi, dan lagi secara terus menerus menentukan akhir dari program
sampai catu daya (power) dilepaskan
for(i=4; i<=11; i++){ Sehingga akan tampil pada arduino seperti berikut ini:
Digunakan bila akan melakukan pengulangan kode
beberapa kali, dengan 11 kali pengulangan dimulai
dari 4 serta melakukan penghitungan ke atas dengan
i++.
digitalWrite(i,LOW);
Ketika sebuah pin ditetapkan sebagai OUTPUT,
pin tersebut dapat dijadikan LOW (diturunkan
menjadi ground).
}
delay(100);
Memberikan waktu tundaan 100 millisecond, atau
setara dengan 0,1 detik sebelum melanjutkan
mengerjakan perintah baris program selanjutnya
}
void lampu1(){
digitalWrite(4,HIGH);
Gambar 10. Hasil Tampilan Praktikum Interupsi
untuk memberikan 5V (nyala) kepada pin 4
Berdasarkan gambar 10 dapat terlihat bahwa
digitalWrite(5,HIGH); pada saat lampu LED berjalan lalu tiba-tiba program
untuk memberikan 5V (nyala) kepada pin 5 tersebut terhenti karena praktikan menekan tombol
digitalWrite(6,HIGH); sehingga lampu LED akan berhenti. Dan ketika
untuk memberikan 5V (nyala) kepada pin 6 melepas tombol tersebut. Program akan kembali
digitalWrite(7,HIGH); berjalan. Hal ini dikarenakan pada program Interupsi
untuk memberikan 5V (nyala) kepada pin 7 adalah kondisi dimana eksekusi program utama
berhenti sementara karena ada sebuah kejadian. Lalu
digitalWrite(8,HIGH);
program akan berpindah mengeksekusi kejadian
untuk memberikan 5V (nyala) kepada pin 8 tersebut. Setelah kejadian tersebut selesai dieksekusi,
digitalWrite(9,HIGH); maka mikrokontroler akan kembali mengerjakan
untuk memberikan 5V (nyala) kepada pin 9 eksekusi program utama. Pada Arduino Uno, terdapat 2
digitalWrite(10,HIGH); pin untuk interupsi, yaitu pin 2 dan 3
V. Komunikasi Serial Serial.print(" Dan");
Komunikasi serial digunakan untuk Perintah diatas untuk menuliskan kata Dan
antarmuka mikrokontroler dan perangkat yang lain, Serial.println(" Instrumentasi");
seperti laptop, komputer, maupun sesama Perintah diatas untuk menuliskan kata
mikrokontroler. 2 pin khusus digunakan pada Instrumentasi
komunikasi serial, yaitu TX (transmiter) yang Serial.println("Arduino Uno");
mengirim data dan RX (receiver) yang menerima Perintah diatas untuk menuliskan kata Universitas
data. Pada board Arduino tidak lagi membutuhkan Gadjah Mada
RS232 untuk koneksi dengan perangkat lain, karena }
USB Arduino sudah bisa untuk melakukan hal itu. void loop(){
Semua kode yang ada disini akan dibaca berulang kali
Jika dibuat dalam flowchart maka flowchartnya (terus menerus) oleh Arduino
adalah seperti berikut : }
Tanda kurung kurawal Digunakan untuk
menentukan akhir dari program

Sehingga akan muncul tampilan berikut ini:

Gambar 12. Hasil Tampilan Praktikum Komunikasi


Serial
Berdasarkan gambar 12 dapat diketahui
bahwa gambar tersebut merupakan capturan dari hasil
tampilan praktikum komunikasi serial. Sehingga
Gambar 11. Flowchart Praktikum Komunikasi Serial tulisan Metrologi dan Instrumentasi Universitas
Gadjah Mada akan muncul di serial monitor program
Berdasarkan flowchart pada gambar 11 dapat Arduino.
diketahui bahwa flowchart tersebut merupakan
flowchart membuat digital input. Langkah yang harus VI. Timer
dilakukan pertama adalah mengetikkan coding pada Contoh program selanjutnya akan dibahas
aplikasi arduino yang telah terinstall. Kemudian tentang penggunaan interupsi timer untuk melakukan
memverify coding lalu mengupload coding. Lalu dua kerja sekaligus. Program ini ditulis untuk
perintah terakhir yakni menampilkan hasil dari melakukan dua LED berkedip dengan memanfaatkan
komunikasi serial timer compare interrupt. Nilai OCR1A (nilai compare
match) diperoleh dengan memperhitungkan frekuensi
Berikut ini merupakan coding yang dituliskan dalam prosesor, prescaler, dan frekuensi yang digunakanLED
program Arduino : berkedip pertama menggunaakn program utama
a.) Penjelasan Coding (loop()), sedangkan LED berkedip kedua
void setup(){ menggunakan interupsi timer yang mempunyai interval
Dijalankan pertama kali setiap board arduino berbeda dengan yang pertama.
dihidupkan, Semua kode didalam kurung kurawal Dengan konfigurasi:
akan dijalankan hanya satu kali ketika program
Arduino dijalankan untuk pertama kalinya. Tabel 6. Konfigurasi PIN dari Program Timer
Serial.begin(9600);
Perintah diatas Untuk melakukan komunikasi
serial, pertama adalah inisialisasi, yaitu mengatur bit
rate, atau laju lalu lintas data,
Serial.print("Metrologi");
Perintah diatas untuk menuliskan kata Metrologi
Apabila dibuat dalam flowchart program timer maka OCR1A = 31250;
flowchartnya akan seperti berikut ini: compare match register 16MHz/256/2Hz
TCCR1B |= (1 << WGM12);
untuk mengatur prescaler CS10 dan CS12 untuk
1024 bit
TCCR1B |= (1 << CS12);
untuk menentukan nilai prescaler 256 bit pada
CS12
Sehingga akan muncul tampilan pada arduino
seperti berikut:

Gambar 14. Hasil Tampilan pada Program Timer


Berdasarkan gambar 14 dapat terlihat bahwa
lampu berkedip dengan 1 lampu menyala terang dan 1
Gambar 13. Flowchart Program Timer lampu lagi nyalanya redup. Hal ini dikarenakan pada
Berdasarkan flowchart pada gambar 11 dapat program ini ditulis untuk melakukan dua LED
diketahui bahwa flowchart tersebut merupakan berkedip dengan memanfaatkan timer compare
flowchart membuat digital input. Langkah yang harus interrupt. Pada lampu LED berkedip pertama
dilakukan pertama adalah mengetikkan coding pada menggunakan program utama (loop()), sedangkan LED
aplikasi arduino yang telah terinstall. Kemudian berkedip kedua menggunakan interupsi timer yang
memverify coding lalu mengupload coding. Lalu mempunyai interval berbeda dengan yang pertama.
perintah terakhir yakni menampilkan hasil dari Timer
VII. Pulse Width Modulation/Digital to Analog
Berikut ini merupakan coding yang dituliskan dalam Converter
program Arduino : Teknik PWM digunakan untuk mengatur
a.) Penjelasan Coding lebar pulsa. Lebar pulsa ini berpengaruh pada tegangan
#define ledPin 4 RMS pada perangkat yang dikendalikan. Lebar pulsa
LED terkoneksi dengan digital pin 4 dipengaruhi oleh nilai duty cycle. Pada mikrokontroler,
PWM sangat luas aplikasinya, termasuk dalam
void setup() pengendalian kecepatan motor DC. Pada Arduino Uno,
memiliki arti untuk menginisialisasi variabel- PWM secara default memiliki resolusi sebesar 8 bit,
variabel yang akan digunakan, dan hanya maka PWM bisa diatur dari nilai 0 sampai dengan 255.
dijalankan satu kali saat Arduino mulai menyala. Ada enam pin Arduino yang digunakan untuk PWM,
{ yaitu 3, 5, 6, 9, 10, dan 11. Pemrograman PWM pada
pinMode(ledPin, OUTPUT); arduino sangat mudah, hanya mengatur pin yang
mengatur digital pin sebagai output digunakan dan duty cycle. Perintahnya:
noInterrupts(); analogWrite(nomor_pin, dutycycle)
untuk menonaktifkan interupsi sementara Contoh program dengan menggunakan pin 10 dengan
TCCR1A = 0; dutycycle sebesar 50%, maka nilai PWM adalah 128.
Untuk mengatur mode pembanding dan mode Pada percobaan ini bisa menggunakan motor DC,
penghasil ketebalan denyut (PWM) dari Timer 1 servo, maupun mengatur kecerahan la
TCCR1B = 0; Lampu DC:
Mengatur prescaler, input multiplexer dari Timer Tabel 7. Konfigurasi PIN Pulse Width
1 dan juga mode input capture Modulation/Digital to Analog Converter
TCNT1 = 0;
Register yang berfungsi untuk menyimpan nilai
cacahan dari counter timer 1. Pada konfigurasi
perlu diset TCNT1=0.
dijalankan lagi, dan lagi secara terus menerus sampai
Apabila dibuatkan dalam diagram flowchart program catu daya (power) dilepaskan.
PWM maka akan tampak seperti pada gambar 15 analogWrite(10,1023);
berikut ini: Kode diatas digunakan untuk mengatur pin 10
menyala dengan kondisi bilangan ADC 1023Bit.
analogWrite(9,20);
Kode diatas digunakan untuk mengatur pin 9 menyala
dengan kondisi bilangan ADC 20 Bit
}
Tanda kurung kurawal Digunakan untuk
menentukan akhir dari program.

Sehingga akan tampil dalam arduino seperti berikut ini:

Gambar 15. Flowchart Program Pulse Width Gambar 16. Hasil Tampilan Program Pulse Width
Modulation Modulation
Berdasarkan flowchart pada gambar 15 dapat Berdasarkan gambar 16 dapat diketahui
diketahui bahwa flowchart tersebut merupakan bahwa LED nomor 7 nyala lampunya lebih terang
flowchart membuat digital input. Langkah yang harus dibandingkan dengan nyala lampu LED nomor 3. Hal
dilakukan pertama adalah mengetikkan coding pada ini dikarenakan pada lampu LED nomor 7 yang
aplikasi arduino yang telah terinstall. Kemudian tersambung pada pin 10 menyala pada kondisi bilangan
memverify coding lalu mengupload coding. Lalu ADC 1023 Bit. Bit yang terbesar. Sedangkan lampu
perintah terakhir yakni menampilkan hasil dari PWM. LED nomor 3 yang tersambung pada pin 9 menyala
pada kondisi bilangan ADC 20 Bit. Sehingga nyala
Berikut ini merupakan coding yang dituliskan dalam lampu LED nomor 7 lebih terang dibandingkan dengan
program Arduino : nyala lampu LED nomor 3.
a.) Penjelasan Coding
void setup() { VIII. Data Logger EPPROM
Dijalankan pertama kali setiap board arduino Arduino, seperti mikrokontroler pada
dihidupkan, Semua kode didalam kurung kurawal umumnya mempunyai dua jenis memory, yaitu static
akan dijalankan hanya satu kali ketika program random access memory (SRAM) dan electrical
Arduino dijalankan untuk pertama kalinya. erasable programmable read only memory (EEPROM).
pinMode(10,OUTPUT); Data yang disimpan dalam SRAM akan hilang ketiks
Kode diatas digunakan untuk seting mode pin. sistem dimatikan. Namun pada EEPROM data tetap
nomer pin yang akan digunakan, artinya pin 10 dan tersimpan. Memory ini biasanya dipakai pada data
11 digunakan sebagai OUTPUT logger. Kapasitas EEPROM pada Arduino Uno adalah
pinMode(9,OUTPUT); 1 kB, artinya alamat penyimpanannya dari 0 sampai
Kode diatas digunakan untuk seting mode pin. dengan 255. Nilai awal EEPROM ketika belum diisi
nomer pin yang akan digunakan, artinya pin 10 dan data adalah 255.
11 digunakan sebagai OUTPUT Pemrograman EEPROM hanya berkaitan
} dengan dua hal, yaitu menulis dan membaca data. Pada
Tanda kurung kurawal Digunakan untuk Arduino, telah ada library untuk mengakses EEPROM.
menentukan akhir dari program. Sama seperti library yang lain, ditulis pada awal
void loop() { program.
Semua kode yang ada disini akan dibaca berulang #include <EEPROM.h>
kali (terus menerus) oleh Arduino. Fungsi ini akan Untuk menulis data ke EEPROM digunakan perintah:
dijalankan setelah setup (fungsi void setup) selesai. EEPROM.write(alamat,nilai_variabel)
Setelah dijalankan satu kali fungsi ini akan Untuk membaca data digunakan perintah:
EEPROM.read(alamat) Menentukan kecepatan baca data serial (Baud
Rate) sebesar 9600
EEPROM.write(1,125);
Apabila dibuatkan dalam diagram flowchart Untuk menuliskan data ke EEPROM dengan
program data logger maka akan tampak seperti pada
alamat EEPROM 1, dan nilai/data yang berada
gambar 17 berikut ini:
dalam alamat EEPROM bernilai 125
EEPROM.write(2,15);
Untuk menuliskan data ke EEPROM dengan
alamat EEPROM 2, dan nilai/data yang berada
dalam alamat EEPROM bernilai 15
EEPROM.write(3,45);
Untuk menuliskan data ke EEPROM dengan
alamat EEPROM 3, dan nilai/data yang berada
dalam alamat EEPROM bernilai 45
EEPROM.write(4,100);
Untuk menuliskan data ke EEPROM dengan
alamat EEPROM 4, dan nilai/data yang berada
dalam alamat EEPROM bernilai 100
EEPROM.write(5,121);
Untuk menuliskan data ke EEPROM dengan
alamat EEPROM 5, dan nilai/data yang berada
dalam alamat EEPROM bernilai 121
for(alamat=1; alamat<6; alamat++){
Makna dari script diatas adalah variabel alamat=1
adalah nilai awal dari alamat EEPROM adalah 1
dan arti alamat<6 adalah maksimal pengulangan
dilakukan adalah sampai 6. Arti dari alamat++
adalah menambahkan nilai setiap pengulangan
Gambar 17. Flowchart Program Data Logger
yang sudah di eksekusi, contoh nya jika kita sudah
Berdasarkan flowchart pada gambar 15 dapat memasukkan nilai di alamat 1 , maka akan
diketahui bahwa flowchart tersebut merupakan langsung lanjut ke alamat 2 dan seterusnya hingga
flowchart membuat digital input. Langkah yang harus alamat 6
dilakukan pertama adalah mengetikkan coding pada
aplikasi arduino yang telah terinstall. Kemudian nilai = EEPROM.read(alamat);
memverify coding lalu mengupload coding. Lalu Untuk membaca data dari EEPROM. Parameter
perintah terakhir yakni menampilkan hasil dari PWM. alamat merupakan alamat EEPROM yang akan
dibaca
Berikut ini merupakan coding yang dituliskan dalam Serial.print(alamat);
program Arduino : untuk menampilkan alamat data ke serial monitor
a.) Penjelasan Coding
Serial.print(":");
#include <EEPROM.h>
Untuk mencetak simbol : pada komunikasi serial
Library yang digunakan untuk membaca dan
Serial.println(nilai,DEC);
menuliskan data dari EEPROM ke mikrokontroler
delay(1000);
ATMega
Memberikan waktu tundaan 1000 millisecond, atau
int alamat;
setara dengan 1 detik sebelum melanjutkan
Untuk menyimpan alamat EEPROM
mengerjakan perintah baris program selanjutnya
int nilai = 0;
}
variabel untuk menyimpan nilai 0
}
void setup() {
void loop() {
Dijalankan pertama kali setiap board arduino
dihidupkan, Semua kode didalam kurung kurawal Semua kode yang ada disini akan dibaca berulang kali
akan dijalankan hanya satu kali ketika program (terus menerus) oleh Arduino. Fungsi ini akan
Arduino dijalankan untuk pertama kalinya. dijalankan setelah setup (fungsi void setup) selesai.
Serial.begin(9600); Setelah dijalankan satu kali fungsi ini akan dijalankan
lagi, dan lagi secara terus menerus sampai catu daya
(power) dilepaskan.
}
Tanda kurung kurawal Digunakan untuk
menentukan akhir dari program.

Sehingga akan tampil dalam arduino seperti berikut


ini :

Gambar 19. Struktur Dasar Program Arduino

Daftar Pustaka

[1] Kusuma, Hendra. 2013. Rancang Bangun


Gambar 18. Hasil Tampilan Program Data Logger Pengendalian Komunikasi Serial Modem
Berdasarkan gambar 18 yang merupakan Menggunakan Mikrokontroler Sebagai Alat
hasil Tampilan Program Data logger dapat diketahui Kontrol Jarak Lampu Penerangan. Skripsi.
bahwa Hasil dari pembacaan EEPROM dikirim ke STMIK Atma Luhur. Pangkalpinang.
serial monitor. Agar tampilan pada Serial Monitor
[2] Syahwil, Muhammad. 2013. Panduan
datanya berupa data digital, maka perlu diatur dengan
Mudah Simulasi Dan Praktek
perintah DEC. Sehingga nilai dapat terbaca pada
Mikrokontroler Arduino.
serial monitor. Contoh hasil data 1 : 125, pada angka
1 menunjukkan alamat dari EEPROM dan 125
[3] Ujub. 2016. Fungsi-fungsi untuk serial
menunjukkan data yang berada dalam alamat
komunikasi di Arduino. Jakarta :
EEPROM
Sebatekno.com
Struktur dasar pemrograman arduino terdiri
dari deklarasi, inisialisasi, program utama dan
subprogram. Deklarasi merupakan proses untuk
menentukan identitas sebuah variabel. Variabel
adalah nilai yang mewakili parameter tertentu yang
bisa digunakan pada operasi matematika dalam
pemrograman. Inisialisasi merupakan proses
menentukan kondisi input atau output chip Arduino,
seperti pada pin I/O,PWM,komunikasi serial dan
peripheral lain. Program Utama pada program ini alur
kerja emmbedded system dikerjakan dan struktur
yang digunakan adalah void loop(). Dan yang terakhir
adalah subprogram yang merupakan anak dari
program utama. Berikut ini merupakan gambar
diagram struktur dasari dari Arduino :
Lampiran

Koding 7 segmen

void setup(){
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
void loop(){
//1
digitalWrite(2,0);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,1);
digitalWrite(8,1);
digitalWrite(9,0);
delay (1000);
//0
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,1);
digitalWrite(5,1);
digitalWrite(6,1);
digitalWrite(7,1);
digitalWrite(8,1);
digitalWrite(9,1);
delay (1000);
//A
digitalWrite(2,1);
digitalWrite(3,1);
digitalWrite(4,1);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,1);
digitalWrite(8,1);
digitalWrite(9,1);
delay (1000);
//p
digitalWrite(2,1);
digitalWrite(3,1);
digitalWrite(4,1);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,0);
digitalWrite(8,1);
digitalWrite(9,1);
delay (1000);
//R
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,1);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,0);
digitalWrite(8,0);
digitalWrite(9,1);
delay (1000);
//I
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,1);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,0);
digitalWrite(8,0);
digitalWrite(9,0);
delay (1000);
//L
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,1);
digitalWrite(5,1);
digitalWrite(6,0);
digitalWrite(7,0);
digitalWrite(8,0);
digitalWrite(9,0);
delay (1000);
//2
digitalWrite(2,0);
digitalWrite(3,1);
digitalWrite(4,1);
digitalWrite(5,1);
digitalWrite(6,0);
digitalWrite(7,0);
digitalWrite(8,1);
digitalWrite(9,1);
delay (1000);
//0
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,1);
digitalWrite(5,1);
digitalWrite(6,1);
digitalWrite(7,1);
digitalWrite(8,1);
digitalWrite(9,1);
delay (1000);
//1
digitalWrite(2,0);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,1);
digitalWrite(8,1);
digitalWrite(9,0);
delay (1000);
//7
digitalWrite(2,0);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,1);
digitalWrite(8,1);
digitalWrite(9,1);
delay (1000);
}

DIGITAL INPUT

byte tombol;
void setup(){
pinMode(2, INPUT);pinMode(3, INPUT);
pinMode(4, INPUT);pinMode(5, INPUT);
pinMode(6, INPUT);pinMode(7, INPUT);
pinMode(8, INPUT);pinMode(9, INPUT);
digitalWrite(2, HIGH);digitalWrite(3, HIGH);
digitalWrite(4, HIGH);digitalWrite(5, HIGH);
digitalWrite(6, HIGH);digitalWrite(7, HIGH);
digitalWrite(8, HIGH);digitalWrite(9, HIGH);
pinMode(10, OUTPUT);pinMode(11, OUTPUT);
pinMode(12, OUTPUT);pinMode(13, OUTPUT);
pinMode(A0, OUTPUT);pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);pinMode(A3, OUTPUT);
}
void loop(){
tombol=digitalRead(2);
if(tombol==LOW)digitalWrite(10,1);
else digitalWrite(10,0);
tombol=digitalRead(3);
if(tombol==LOW)digitalWrite(11,1);
else digitalWrite(11,0);
tombol=digitalRead(4);
if(tombol==LOW)digitalWrite(12,1);
else digitalWrite(12,0);
tombol=digitalRead(5);
if(tombol==LOW)digitalWrite(13,1);
else digitalWrite(13,0);

tombol=digitalRead(6);
if(tombol==LOW)digitalWrite(A0,1);
else digitalWrite(A0,0);
tombol=digitalRead(7);
if(tombol==LOW)digitalWrite(A1,1);
else digitalWrite(A1,0);
tombol=digitalRead(8);
if(tombol==LOW)digitalWrite(A2,1);
else digitalWrite(A2,0);
tombol=digitalRead(9);
if(tombol==LOW)digitalWrite(A3,1);
else digitalWrite(A3,0);
}
ADC

#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
int adc0;
void setup() {
lcd.begin(16,2);
lcd.print("ADC channel 0");
lcd.setCursor(0,1);
lcd.print("ADC= ");
}
void loop() {
adc0 = analogRead(A0);
lcd.setCursor(5,1);
lcd.print(adc0);
lcd.print(" ");
delay(1000);
}
PULSE LAMPU
void setup() {
pinMode(10,OUTPUT);
pinMode(9,OUTPUT);
}
void loop() {
analogWrite(10,1023);
analogWrite(9,20);
}
INTERUPSI

int i;
void setup() {
pinMode(2,INPUT);
digitalWrite(2,HIGH);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
attachInterrupt(0,lampu1,LOW);
}
void loop() {
for(i=4; i<=11; i++){
digitalWrite(i,HIGH);
delay(100);
digitalWrite(i,LOW);
delay(100);
}
}
void lampu1(){
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
}
Komunikasi serial

void setup(){
Serial.begin(9600);
Serial.print("Metrologi");
Serial.print("dan");
Serial.println("Instrumentasi");
Serial.println("Universitas Gadjah Mada");
}
void loop(){
}

TIMER
#define ledPin 4
void setup()
{
pinMode(ledPin, OUTPUT);
noInterrupts();
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;
OCR1A = 31250;
TCCR1B |= (1 << WGM12);
TCCR1B |= (1 << CS12);
TIMSK1 |= (1 << OCIE1A);
interrupts();
}
ISR(TIMER1_COMPA_vect)
{
digitalWrite(ledPin, digitalRead(ledPin) ^ 1);
}
void loop()
{
digitalWrite(5,HIGH);
delay(200);
digitalWrite(5,LOW);
delay(200);
}

Anda mungkin juga menyukai