• Tidak ada hasil yang ditemukan

BAB II KHAMDANI TE'14

N/A
N/A
Protected

Academic year: 2019

Membagikan "BAB II KHAMDANI TE'14"

Copied!
23
0
0

Teks penuh

(1)

BAB II

LANDASAN TEORI

2.1 Tinjauan Pustaka

Hal yang mendasari penelitian yang dilakukan dalam penyusunan laporan

Tugas Akhir ini adalah melihat pada alat yang telah dibuat sebelumnya yaitu

berupa papan informasi yang dilakukan oleh Fatoni (2005) dan dot matrix display

yang dilakukan oleh Rudiono (2010). Alat yang akan dibuat kali ini adalah

pengembangan dari alat yang telah dibuat sebelumnya, yaitu dengan penambahan

jumlah karakter dari sistem dot matrix display.

Dalam papan informasi elektronik, masukan atau input data dilakukan

melalui rangkaian downloader ataupun software, sedangkan pada dot matrix display pada umumnya harus membuat driver kolom, driver baris dan jumlah karakter sedikit. Maka, untuk pengembangan kali ini adalah apabila kita ingin

merubah tulisan pada dot matrix display menggunakan konektor keyboard PC maka kita tidak perlu repot-repot merubah programnya. Cara mengoperasikannya

juga sangat mudah, yaitu cukup menekan tombol ESC untuk mengganti karakter

sesuai dengan yang kita inginkan lalu menekan tombol ENTER untuk

mengirimkan data masukan dari keyboard PC yang akan diproses oleh

(2)

2.2 Dot Matrix Display

Dot Matrix Display yaitu berupa LED (Light Emitting Diode) yang disambung dan dirangkai menjadi deretan LED (Light Emitting Diode) ataupun dapat berupa dot matrix. Dot matrix merupakan deretan LED (Light Emitting Diode) yang membentuk array dengan jumlah kolom dan baris tertentu, sehingga titik-titik yang menyala dapat membentuk suatu karakter angka,

huruf, tanda baca, dan sebagainya. Panel dot matrix display P10 ukuran 16 x 32 merupakan modul display dot matrix yang sudah tersusun register untuk mengendalikan nyala array LED (Light Emitting Diode), dan input teks. Jika dot matrix tidak menggunakan shift register, maka LED (Light Emitting Diode) bisa menyala bersamaan satu kolom atau satu baris.

Pada dasarnya LED (Light Emitting Diode) memiliki dua buah kaki Anoda

dan Katoda yang dimana untuk mengaktifkan LED (Light Emitting Diode)

tersebut Anoda kita beri VCC dan Katoda kita hubungkan ke Ground. Dot Matrix merupakan kumpulan dari LED (Light Emitting Diode) yang dihubungkan.

(3)

Untuk menampilkan sebuah huruf pada display, maka data binernya harus dikirimkan secara terus menerus. Sebagai contoh adalah cara pembentukan

karakter “A”. Langkah selanjutnya adalah mengubah bentuk pola karakater “A”

dimana LED (Light Emitting Diode) yang nyala (merah) logika 1 dan yang padam (hitam) logika 0.

Berikut contoh tampilan huruf A pada Dot Matrix ukuran 5x7 dapat dilihat pada Gambar 2.2.

Gambar 2.2 Contoh Tampilan Huruf A pada Dot Matrix 5x7

Dalam Tugas Akhir ini, jenis Dot Matrix yang akan digunakan dalam rangkaian adalah Dot Matrix Display P10 ukuran 16 baris dan 32 kolom berwarna merah. Prinsip kerjanya sama seperti Dot Matrix 5x7 dimana Dot Matrix Display

(4)

Gambar 2.3 Skema Dot Matrix Display P10

Pada Display Dot matrix ini terdapat pin konektor sebanyak 16 pin untuk menghubungkan ke pin mikrokontroler ATmega328. Pin konektor ini akan

dijelaskan pada Gambar 2.4.

(5)

2.3 Keyboard PC

Keyboard PC adalah sarana input yang nantinya akan dimanfaatkan untuk menuliskan atau mengubah text pada tampilan display. Keyboard merupakan sarana input yang sangat murah. Sistem berbasis mikrokontroler dengan mudah

bisa dilengkapi dengan 101 tombol untuk mengisikan teks maupun angka.

Aplikasi ini berfungsi untuk mengambil data karakter dari keyboard dan mengirim ke port serial mikrokontroler ATmega328 dalam bentuk ASCII

(American Standard Code for Information Interchange).

Gambar 2.5 Keyboard PC dan Scan Code

(Sutanto, 2000)

Setiap kali salah satu tombol keyboard ditekan atau dilepas, keyboard akan mengirimkan kode ke mikrokontroler. Kode tersebut dinamakan dengan scan code, seperti yang terlihat pada Gambar 2.5.

Scan code untuk tombol ‘s’ adalah 1B (angka hexsadesimal yang setara dengan angka biner 00011011). Ketika tombol ‘s’ ditekan terus, maka keyboard

akan mengirimkan 1B berikutnya terus menerus sampai ada tombol lain yang

(6)

Keyboard juga mengirimkan kode pada saat ada satu tombol yang dilepas, kodenya adalah F0 (angka heksadesimal yang setara dengan biner 11110000).

Jadi, jika tombol ‘s’ tadi dilepas maka keyboard akan mengirimkan F0 dan 1B. Kode-kode tersebut dikirim oleh keyboard secara seri, artinya dikirmkan satu bit demi satu bit. Misalkan mula-mula dikirim ‘1’, sesaat kemudian ‘1’ lagi

dan menyusul ‘0’ sampai akhirnya terkirim sebanyak 8 bit yang berbentuk

00011011 (dikirim mulai dari bit yang paling kanan kemudian bergeser satu

persatu samapi yang paling kiri). Masing-masing tombol mempunyai scan code

sendiri, termasuk tombol ‘Shift’, tombol ‘Ctrl’ dan lain-lain. Scan code disusun sebagai kode 8 bit. Konfigurasi dari konektor keyboard dapat dilihat pada Gambar

2.6.

Gambar 2.6 Konfigurasi konektor keyboard PS2

2.4 Scanning Encoder

(7)

Interchange) yang sesuai bila tombol pada matrix saklar ditekan. ASCII

(American Standard Code for Information Interchange) menyajikan sebuah karakter dengan 7 bit bilangan biner yang memungkinkan kombinasi sampai 128

karakter yang berbeda.

Dari 128 karakter ini, 96 karakter diantaranya berupa printable character

(termasuk huruf besar dan kecil). Sisa karakter yang lain sebanyak 32 buah,

digunakan untuk karakter khusus, seperti carriage return, line feed, backspace

dan delete pada keyboard. Sistem berbasis mikrokontroler dengan mudah bisa dilengkapi dengan 101 tombol untuk mengisikan teks maupun angka.

Aplikasi ini berfungsi untuk mengambil data karakter dari keyboard dan

mengirimakan ke port serial mikrokontroler ATmega328 dalam bentuk ASCII

(American Standard Code for Information Interchange).

2.5 Mikrokontroler ATmega328

Mikrokontroler adalah suatu alat elektronika digital yang mempunyai

masukan serta keluaran serta dapat di read dan write dengan cara khusus. Mikrokontroler dapat diberikan suatu program yang bekerja sesuai dengan

keinginan pengguna. Sehingga mikrokontroler dapat dihubungkan dengan

alat-alat lain. Dapat dikatakan mikrokontroler sebagai otak dari sistem secara

keseluruhan

(8)

eksekusi data lebih cepat dari pada arsitektur CISC (Completed Instruction Set Computer).

Mikrokontroler ini memiliki beberapa fitur antara lain :

1. 130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus

clock.

2. 32 x 8-bit register serba guna.

3. Kecepatan mencapai 16 MIPS dengan clock 16 MHz.

4. 32 KB Flash memory dan pada arduino memiliki bootloader yang menggunakan 2 KB dari flash memori sebagai bootloader.

5. Memiliki EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 1KB sebagai tempat penyimpanan data semi permanent karena EEPROM tetap dapat menyimpan data meskipun catu daya dimatikan.

6. Memiliki SRAM (Static Random Access Memory) sebesar 2KB.

7. Memiliki pin I/O digital sebanyak 14 pin 6 diantaranya PWM (Pulse Width Modulation) output.

(9)

Gambar 2.7 Arsitektur ATmega328

Gambar 2.8 Konfigurasi pin Atmega328

(10)

Memory

ATmega328 memiliki 32 KB flash memori untuk menyimpan kode, juga 2

KB yang digunakan untuk bootloader. ATmega328 memiliki 2 KB untuk SRAM dan 1 KB untuk EEPROM.

Input dan Output

Setiap 14 pin digital pada arduino dapat digunakan sebagai input atau

output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead().

Input/output dioperasikan pada 5 volt. Setiap pin dapat menghasilkan atau menerima maximum 40 mA dan memiliki internal pull-up resistor (disconnected oleh default) 20-50 KOhms.

Beberapa pin memiliki fungsi sebagai berikut :

1. Serial : 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan

mengirim (TX) TTL data serial. Pin ini terhubung pada pin yang

koresponding dari USB FTDI ke TTL chip serial.

2. Interupt eksternal : 2 dan 3. Pin ini dapat dikonfigurasikan untuk trigger

sebuah interap pada low value, rising atau falling edge, atau perubahan

nilai.

3. PWM : 3, 5, 6, 9, 10, dan 11. Mendukung 8 -bit output PWM dengan

fungsi analogWrite().

4. SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin ini mensuport

komunikasi SPI, yang mana masih mendukung hardware, yang tidak

(11)

5. LED : 13. Ini adalah dibuat untuk koneksi LED ke digital pin 13. Ketika

pin bernilai HIGH, LED hidup, ketika pin LOW, LED mati.

2.6 Catu Daya

Catu daya merupakan sumber tegangan DC. Sumber tegangan DC ini

dibutuhkan oleh berbagai macam rangkaian elektronika untuk dapat dioperasikan.

Karena sebagian besar rangkaian elektronika membutuhkan tegangan DC untuk

dapat bekerja dengan baik. Karena tegangan jala-jala dari PLN adalah tegangan

AC, maka yang harus dilakukan terlebih dahulu dalam setiap peralatan

elektronika adalah mengubah tegangan AC ke tegangan DC. Oleh sebab itu

diperlukan rangkaian penyearah yang dapat melakukan pengubahan tegangan AC

ke tegangan DC. Rangkaian inti dari catu daya ini adalah suatu rangkaian

penyearah yaitu rangkaian yang mengubah sinyal bolak-balik (AC) menjadi sinyal

searah (DC).

Gambar 2.9 Catu Daya

(12)

2.7 Pemrograman Bahasa C Arduino

2.7.1. Structure

Structure dasar dari bahasa pemrograman arduino itu sederhana hanya terdiri dari dua bagian yaitu:

void setup( )

Dimana setup() bagian untuk inisialisasi yang hanya dijalankan sekali diawal program, sedangkan loop() untuk mengeksekusi bagian program yang akan dijalankan berulang-ulang untuk selamanya.

setup()

Fungsi setup() hanya di panggil satu kali ketika program pertama kali di jalankan. Ini digunakan untuk pendefinisian mode pin atau memulai komunikasi

serial. Fungsi setup() harus disertakan dalam program walaupun tidak ada statement yang di jalankan.

void setup() {

(13)

loop

Setelah melakukan fungsi setup() maka secara langsung akan melakukan fungsi loop() secara berurutan dan melakukan instruksi-instruksi yang ada dalam fungsi loop().

Function (fungsi) adalah blok pemrograman yang mempunyai nama dan mempunyai statement yang akan di eksekusi ketika function di panggil. Fungsi

void setup() dan void loop() telah dibahas diatas

Cara pendeklarasian function

type functionName(parameters) {

(14)

2.7.2 Variable

Variable adalah sebuah penyimpan nilai yang dapat digunakan dalam program. Variable dapat dirubah sesuai dengan instruksi yang kita buat. Ketika mendeklarisikan variable harus disertakan type variable serta nilai awal variable.

Type variableName = 0;

Contoh:

Int inputVariable = 0; // mendefinisikan sebuah variable

bernama inputVariable dengan nilai awal 0

inputVariable = analogRead(2); // menyimpan nilai yang ada di analog pin 2 ke inputVariable

variable scope

Sebuah variable dapat dideklarasikan pada awal program sebelum void setup(), secara lokal didalam sebuah function, dan terkadang didalam sebuah

block statement pengulangan. Sebuah variable global hanya satu dan dapat digunakan pada semua block function dan statement didalam program. Variable

global dideklarasikan pada awal program sebelum function setup(). Sebuah variable lokal dideklarasikan disetiap block function atau di setiap block statement pengulangan dan hanya dapat digunakan pada block yang bersangkutan saja.

Contoh penggunaan:

int value; // ‘value’ adalah variable global dan dapat di gunakan pada semua block funtion

(15)

for (int i=0; i<20;) // 'i' hanya dapat di gunakan dalam

Type byte dapat menyimpan 8-bit nilai angka bilangan asli tanapa koma.

Byte memiliki range 0 – 255.

Byte biteVariable = 180; // mendeklarasikan ‘biteVariable’ sebagai type byte

integer

Integer adalah tipe data yang utama untuk menyimpan nilai bilangan bulat tanpa koma. Penyimpanan integer sebesar 16bit dengan range 32.767 sampai -32.768.

Int integerVariable = 1600; // mendeklarasikan ‘integerVariable’ sebagai type integer

long

Perluasan ukuran untuk long integer, penyimpanan long integer sebesar 32-bit dengan range 2.147.483.647 sampai -2.147.483.648

(16)

float

Float adalah tipe data yang dapat menampung nilai decimal, float

merupakan penyimpan yang lebih besar dari integer dan dapat menyimpan sebesar 32-bit dengan range 3.4028235E+38 sampai -3.4028235E+38

Float floatVariable = 3.14; // mendeklarasikan ‘floatVariable’ sebagai type float

array

Array adalah kumpulan nilai yang dapat diakses dengan index number, nilai yang terdapat dalam array dapat dipanggil dengan cara menuliskan nama

array dan index number. Array dengan index 0 merupakan nilai pertama dari

array. Array perlu dideklarasikan dan kalau perlu diberi nilai sebelum di gunakan.

Int arraysName[] = {nilai0, nilai1, nilai2 . . . }

Contoh penggunaan array:

Int arraySaya[] = {2,4,6,8,10}

x = arraySaya[5]; // x sekarang sama dengan 10

2.7.4 Operator aritmatic

Operator aritmatic terdiri dari penjumlahan, pengurangan, pengkalian, dan pembagian.

(17)

Dalam menggunakan operan aritmatic harus hati-hati dalam menentukan tipe data yang digunakan jangan sampai terjadi overflow range data.

compound assignments

Compound assignments merupakan kombinasi dari aritmatic dengan sebuah variable. Ini biasanya dipakai pada pengulangan.

x ++; // sama seperti x = x + 1 atau menaikan nilai x sebesar 1

Statement ini membadingkan dua variable dan apabila terpenuhi akan bernilai 1 atau true. Statement ini banyak digunakan dalam operator bersyarat.

x == y; // x sama dengan y

Operator logical digunakan untuk membandingkan 2 expresi dan mengembalikan nilai balik benar atau salah tergantung dari operator yang

(18)

Contoh penggunaan:

Logical AND

If ( x > 0 && x < 5) // bernilai benar apabila kedua operator pembanding terpenuhi

Logical OR

If ( x > 0 || y > 0) // bernilai benar apabila salah satu dari operator pembanding terpenuhi

Logical NOT

If ( !x > 0 ) // benilai benar apabila ekspresi operator

salah

2.7.5 Konstanta

Arduino mempunyai beberapa variable yang sudah dikenal yang kita sebut konstanta. Ini membuat program lebih mudah untuk dibaca. Konstanta di

kelasifikasi berdasarkan group.

true/false

Merupakan konstanta Boolean yang mendifinisikan logic level. False

mendifinisikan 0 dan True mendifinisikan 1.

If ( b == TRUE ); {

(19)

high/low

Konstanta ini mendifinisikan aktifitas pin HIGH atau LOW dan digunakan

ketika membaca dan menulis ke digital pin. HIGH didefinisikan sebagai 1

sedangkan LOW sebagai 0.

digitalWrite( 13, HIGH );

input/output

Konstanta ini digunakan dengan fungsi pinMode() untuk mendifinisikam

mode pin digital, sebagai input atau output

pinMode( 13, OUTPUT );

2.7.6 Flow control if

If Operator if mengtest sebuah kondisi seperti nilai analog sudah berada dibawah nilai yang kita kehendaki atau belum, apabila terpenuhi maka akan

mengeksekusi baris program yang ada dalam brackets kalau tidak terpenuhi maka akan mengabaikan baris program yang ada dalam brackets.

If ( someVariable ?? value ) {

//DoSomething; }

if… else

(20)

If ( inputPin == HIGH )

Operator for digunakan dalam blok pengulangan tertutup.

For ( initialization; condition; expression ) {

//doSomethig; }

while

Operator while akan terus mengulang baris perintah yang ada dalam

bracket sampai ekspresi sebagai kondisi pengulangan benilai salah.

While ( someVariable ?? value ) {

//doSomething; }

do… while

Sama halnya dengan while() hanya saja pada operator Do…while tidak melakukan pengecekan pada awal tapi diakhir, sehingga otomatis akan melakukan

satu kali baris perintah walaupun pada awalnya sudah terpenuhi.

Do {

//doSomething; }

(21)

2.7.7 Digital I/O

Input / Output Digital pada breadboard arduino ada 14, pengalamatnya 0 - 13, ada saat tertentu I/O 0 dan 1 tidak bisa digunakan karena dipakai untuk

komunikasi serial, sehingga harus hati-hati dalam pengalokasian I/O.

pinMode(pin, mode)

Digunakan dalam void setup() untuk mengkonfigurasi pin apakah sebagai

Input atau Output. Arduino digital pin secara default dikonfigurasi sebagai input

sehingga untuk merubahnya harus menggunakan operator pinMode(pin, mode).

pinMode (pin, OUTPUT); // mengset pin sebagai output

digitalWrite(pin, HIGH); // pin sebagai source voltage

digitalRead(pin)

Membaca nilai dari pin yang kita kehendaki dengan hasil HIGH atau LOW.

Value = digitalRead(pin); // mengset ‘value’ sama dengan pin

digitalWrite(pin, value)

Digunakan untuk mengset pin digital. Pin digital arduino mempunyai 14 ( 0 – 13 ).

digitalWrite ( pin, HIGH ); // set pin to HIGH

2.7.8 Analog I/O

(22)

analogRead(pin)

Membaca nilai pin analog yang memiliki resolusi 10-bit. Fungsi ini hanya

dapat bekerja pada analog pin (0-5). Hasil dari pembacaan berupa nilai integer

dengan range 0 sampai 1023.

Value = analogRead(pin); // mengset ‘value’ sama dengan

nilai analog pin

analogWrite(pin, value)

Untuk mengirimkan nilai analog pada pin analog.

analogWrite(pin, value); // menulis ke pin analog

2.7.9 Time delay(ms)

Menghentikan program untuk sesaat sesuai dengan yang di kehendaki,

satuanya dalam millisecond.

Delay(1000); // menunggu selama satu detik

2.7.10 Serial Serial.begin(rate)

(23)

Serial.prinln(data)

Mengirimkan data ke serial port.

Gambar

Gambar 2.1 Susunan Led Dot Matrix
Gambar 2.2 Contoh Tampilan Huruf A pada Dot Matrix 5x7
Gambar 2.3 Skema Dot Matrix Display P10
Gambar 2.5 Keyboard PC dan Scan Code
+4

Referensi

Dokumen terkait

Otto turned back to Seth and shook his head unhappily. “More of

SISTEM PENDUKUNG KEPUTUSAN PEMILIHAN MAHASISWA BERPRESTASI MENGGUNAKAN METODE AHP DAN LOGIKA FUZZY..

Metode biaya plus (cost plus method) atau metode CPM adalah metode penentuan harga transfer yang dilakukan dengan menambahkan tingkat laba kotor wajar yang diperoleh perusahaan

Pada pekan ini investor selain masih akan tetap mencerna rilis kinerja perusahaan di kuartal I, juga akan memperhatikan data ekonomi awal bulan seperti inflasi

Program kerja PPL telah terlaksana dengan baik dan lancar. Kegiatan praktik mengajar di kelas dan pembuatan administrasi guru telah dapat terselesaikan sesuai dengan

Metode plot pada transek yang diletakkan secara acak menghasilkan estimasi kepadatan kelompok kotoran rusa dengan presisi baik (CVs &lt;16%), akan tetapi tidak begitu baik

Penelitian ini dilakukan untuk mengetahui konsentrasi penambahan katalis DBTDL yang tepat atau efektif pada aplikasi cat acrylic berbasis solvent untuk

Dengan adanya Risk Management ini, pemilik juga dapat mengetahui bagaimana perlakuan risiko yang seharusnya dapat dilakukan agar setiap risiko yang terjadi dapat diminimalkan