Download - Speedometer Digital

Transcript
  • BAB II

    LANDASAN TEORI

    2.1. Motor Bensin

    2.1.1. Sistem Kelistrikan

    Sistem kelistrikan bisa disebut juga sebagai jantungnya sepeda motor agar. Karena dengan adanya sistim kelistrikan tersebut maka fungsi mekanik lainnya

    bisa bersinergi untuk bergerak. Tenaga listrik pada motor biasanya adalah 6 volt,

    tegangan tersebut dapat diubah menjadi 12 volt dengan mengubah sistem

    kelistrikannya. Dengan tegangan 12 volt lampu-lampu menjadi lebih terang dan

    klakson menjadi lebih keras, serta bunga api busi menjadi lebih besar. Dengan

    perubahan tegangan tersebut maka semua peralatan kelistrikan seperti lampu, koil,

    baterai, dan klakson harus diganti dengan yang 12 volt. Pada motor bensin sistem

    kelistrikan diperlukan untuk menyalakan busi. Adanya listrik pada motor berasal

    dari generator yang berputar mengikuti poros engkol. Generator dibedakan

    menjadi dua yaitu:

    a. Generator AC, yaitu generator yang menghasilkan arus bolak-balik.

    b. Generator DC, yaitu generator yang menghasilkan arus searah.

    Gangguan-gangguan yang terjadi pada generator antara lain yaitu:

    a. Magnit lemah, akibatnya arus listrik yang dihasilkan lemah, sehingga motor

    tidak bisa hidup sempurna. Perbaikannya ganti magnit.

    b. Lubang spi magnit goyah, akibatnya hidup motor terganggu. Perbaikannya

    dibubut.

    c. Spoel atau gulungan kawat terbakar,akibatnya tidak ada arus listrik, sehingga

    motor tidak mau hidup (bila spoel penyalaan mesin yang mati) perbaikannya:

    gulung spoel atau ganti spoel.

    d. Spoel putus hubungan, akibatnya motor tidak mau hidup dan perbaikannya:

    gulung spoel atau ganti spoel Ignition Coil digunakan untuk memperbesar

    4

  • 5

    e. arus listrik dari 6 volt menjadi sekitar 10000-12000 Volt, karena untuk

    menghidupkan busi dibutuhkan arus sebesar 10000-12000V.

    Pada dasarnya sistem kelistrikan merupakan salah satu sistem yang

    berkaitan dengan berbagai macam kinerja motor maupun komponen tambahan

    moyor bakar. Sisitem kelistrikan pada motor bakar berasal dari generator yang

    diputar oleh energi dari putaran mesin. Manfaat sistem kelistrikan pada motor

    bakar dapat dibedakan berbagai macam berdasarkan fungsinya, misalnya sebagai

    penerangan, sebagai starter, pemercik api busi dan sebaggai sumber energi untuk

    menghidupkan komponen lain seperti klakson dan lain-lain. Pada motor bakar

    sistem kelistrikan dapat dibedakan menjadi beberapa sistem.

    Sistem pengisian berfungsi untuk mengisi kembali baterai setelah

    digunakan starting dan menyuplai kebutuhan listrik ke sistem kelistrikan saat

    mesin hidup. Arus baterai yang digunakan untuk menghidupkan starter sangat

    banyak sehingga memerlukan sistem pengisian untuk mengisinya kembali. Pada

    sistem pengisian ini, komponen yang terpenting adalah generator yang prinsip

    dasarnya bekerja karena adanya gerakan yang memotong garis gaya magnet

    sehingga dapat menimbulkan atau mengahasilkan energi listrik. Generator ini

    sering juga disebut sebagai Alternator. Kebanyakan mobil dilengakapi dengan

    alternator arus bolak-balik karena lebih baik daripada dinamo atau generator arus

    searah dalam hal kemampuan membangkitkan tenaga listrik dan ketahanannya.

    Karena mobil membutuhkan arus searah, maka arus bolak-balik yang diproduksi

    oleh alternator diserarahkan sebelum keluar menuju sistem kelistrikan mobil.

    Komponen- komponen yang terdapat pada sistem kelistrikan khususnya charging

    antara lain yaitu :

    a. Baterai

    b. Kunci Kontak

    c. Lampu Indikator

    d. Alternator

    e. Pulley

    f. Bearing

    g. Rotor

    h. Stator

  • 6

    i. Rectifier (Dioda)

    j. Brush

    k. Brush Holder

    l. Frame and Cover

    m. Regulator (Mekanis Type)

    n. Voltage Relay

    o. Voltage Regulator

    p. Terminal FPE

    q. Regulator (IC Type)

    Fungsi dari beberapa komponen generator diatas antara laian yaitu :

    a. Pulley sebagai tempat vanbelt memindahkan gerak putar crankshaft ke rotor.

    b. Bearing untu mengurangi gaya gesek dua benda yang berputar.

    c. Rotor sebagai penghasil medan magnet atau kemagnetan.

    d. Stator sebagai tempat terbangkitnya energi listrik.

    e. Rectifier sebagai penyearah arus AC yang telah dibangkitkan stator menjadi

    DC.

    f. Brush sebagai penurunkan tahanan mesin.

    Regulator pada sistem pengisian ada dua macam yaitu tipe IC yang

    terpasang menjadi satu dengan alternator dan tipe mekanis yang terpasang terpisah

    dari alternator. Regulator berfungsi:

    a. Meregulasi tegangan dan arus yang menuju ke kumparan rotor sehingga

    tegangan dan arus yang dihasilkan alternator sesuai kebutuhan.

    b. Mengukur tegangan baterai

    c. Pengukuran arus dan tegangan yang masuk ke rotor.

    Jenis-jenis kerusakan yang mungkin terjadi pada sistem pengisian ini

    antara lain yaitu:

    a. Ketika alternator membangkitkan listrik (ketika di bawah voltage yang

    dibangkitkan).

    b. Ketika alternator membangkitkan listrik (jika voltage di atas).

    c. Rotor coil terbuka

    d. Rotor coil terputus

    e. Terminal S terputus

  • 7

    f. Terminal B terputus

    g. Antara terminal F dan terminal E terputus. [1]

    2.2. Microcontroler

    2.2.1. Arduino Uno Arduino adalah sebuah board mikrokontroller yang berbasis ATmega328.

    Arduino memiliki 14 pin input/output yang mana 6 pin dapat digunakan sebagai

    output PWM, 6 analog input, crystal osilator 16 MHz, koneksi USB, jack power,

    kepala ICSP, dan tombol reset. Arduino mampu men-support mikrokontroller;

    dapat dikoneksikan dengan komputer menggunakan kabel USB.

    Gambar 2.1 Board Arduino Uno R3

    Gambar 2.2 Tampilan belakang Arduino Uno R3

    Arduino adalah merupakan sebuah board minimum sistem mikrokontroler

    yang bersifat open source. Di dalam rangkaian board arduino terdapat

    mikrokontroler AVR seri ATMega328 yang merupakan produk dari Atmel.

  • 8

    Arduino memiliki kelebihan tersendiri disbanding board mikrokontroler

    yang lain selain bersifat open source, arduino juga mempunyai bahasa

    pemrogramanya sendiri yang berupa bahasa C. Selain itu dalam board arduino

    sendiri sudah terdapat loader yang berupa USB sehingga memudahkan kita ketika

    kita memprogram mikrokontroler didalam arduino. Sedangkan pada kebanyakan

    board mikrokontroler yang lain yang masih membutuhkan rangkaian loader

    terpisah untuk memasukkan program ketika kita memprogram mikrokontroler.

    Port USB tersebut selain untuk loader ketika memprogram, bisa juga difungsikan

    sebagai port komunikasi serial.

    Arduino menyediakan 20 pin I/O, yang terdiri dari 6 pin input analog dan

    14 pin digital input/output. Untuk 6 pin analog sendiri bisa juga difungsikan

    sebagai output digital jika diperlukan output digital tambahan selain 14 pin yang

    sudah tersedia. Untuk mengubah pin analog menjadi digital cukup mengubah

    konfigurasi pin pada program. Dalam board kita bisa lihat pin digital diberi

    keterangan 0-13, jadi untuk menggunakan pin analog menjadi output digital, pin

    analog yang pada keterangan board 0-5 kita ubah menjadi pin 14-19. dengan kata

    lain pin analog 0-5 berfungsi juga sebagi pin output digital 14-16.

    Sifat open source arduino juga banyak memberikan keuntungan tersendiri

    untuk kita dalam menggunakan board ini, karena dengan sifat open source

    komponen yang kita pakai tidak hanya tergantung pada satu merek, namun

    memungkinkan kita bisa memakai semua komponen yang ada dipasaran.

    Bahasa pemrograman arduino merupakan bahasa C yang sudah

    disederhanakan syntax bahasa pemrogramannya sehingga mempermudah kita

    dalam mempelajari dan mendalami mikrokontroler.

    Berikut ini adalah konfigurasi dari arduino duemilanove 328 :

    Mikronkontroler ATmega328

    a. Beroperasi pada tegangan 5V

    b. Tegangan input (rekomendasi) 7 - 12V

    c. Batas tegangan input 6 - 20V

    d. Pin digital input/output 14 (6 mendukung output PWM)

    e. Pin analog input 6

    f. Arus pin per input/output 40 mA

  • 9

    g. Arus untuk pin 3.3V adalah 50 mA

    h. Flash Memory 32 KB (ATmega328) yang mana 2 KB digunakan oleh

    Bootloader. [2]

    2.2.1.1. Power

    Arduino dapat diberikan power melalui koneksi USB atau power supply.

    tenaganya diselek secara otomatis. Power supply dapat menggunakan adaptor DC

    atau baterai. Adaptor dapat dikoneksikan dengan mencolok jack adaptor pada

    koneksi port input supply. Board arduino dapat dioperasikan menggunakan supply

    dari luar sebesar 6 - 20 volt. Jika supply kurang dari 7V, kadangkala pin 5V akan

    menyuplai kurang dari 5 volt dan board bisa menjadi tidak stabil. Jika

    menggunakan lebih dari 12 V, tegangan di regulator bisa menjadi sangat panas

    dan menyebabkan kerusakan pada board. Rekomendasi tegangan ada pada 7

    sampai 12 volt.

    2.2.1.2. Vin

    Tegangan input ke board arduino ketika menggunakan tegangan dari luar

    (seperti yang disebutkan 5 volt dari koneksi USB atau tegangan yang

    diregulasikan). Pengguna dapat memberikan tegangan melalui pin ini, atau jika

    tegangan suplai menggunakan power jack, aksesnya menggunakan pin ini.

    2.2.1.3. Komunikasi Arduino Uno

    Uno Arduino memiliki sejumlah fasilitas untuk berkomunikasi dengan

    komputer, Arduino lain, atau mikrokontroler lain. ATmega328 ini menyediakan

    UART TTL (5V) komunikasi serial, yang tersedia pada pin digital 0 (RX) dan 1

    (TX). Sebuah ATmega16U2 pada saluran board ini komunikasi serial melalui

    USB dan muncul sebagai com port virtual untuk perangkat lunak pada

    komputer. Firmware 16U2 menggunakan USB driver standar COM, dan tidak

    ada driver eksternal yang dibutuhkan. Namun, pada Windows, file. Inf diperlukan.

    Perangkat lunak Arduino termasuk monitor serial yang memungkinkan data

    tekstual sederhana yang akan dikirim ke dan dari papan Arduino. RX dan TX

    LED di papan akan berkedip ketika data sedang dikirim melalui chip USB-to-

  • 10

    serial

  • 11

    dan koneksi USB ke komputer (tetapi tidak untuk komunikasi serial pada

    pin 0 dan 1). Sebuah perpustakaan Software Serial memungkinkan untuk

    komunikasi serial pada setiap pin digital Arduino Uno tersebut.

    2.2.1.4. Bahasa Pemograman Arduino

    Arduino menggunakan pemrograman dengan bahasa C. Untuk

    memprogram Arduino digunakan software Arduino. Paket program ini

    menggunakan WinAVR sebagai kompilernya. Namun demikian, tidak seperti

    pemrograman WinAVR biasa, Arduino dilengkapi semacam framework yang

    dilengkapi fungsi-fungsi siap pakai sehingga memudahkan dalam proses

    pengembangan program. Berikut ini adalah sedikit penjelasan singkat mengenai

    karakter bahasa C dan software Arduino. Setiap program Arduino (biasa

    disebut sketch) mempunyai dua buah fungsi yang harus ada.

    void setup ( ) { }

    Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika

    program Arduino dijalankan untuk pertama kalinya.

    void loop ( ) { }

    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. Syntax

    Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format

    penulisan. //(komentar satu baris)

    Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti

    dari kode-kode yang dituliskan. Cukup menuliskan dua buah garis miring dan

    apapun yang kita ketikkan dibelakangnya akan diabaikan oleh program.

    /* */(komentar banyak baris)

    Jika anda punya banyak catatan, maka hal itu dapat dituliskan pada

    beberapa baris sebagai komentar. Semua hal yang terletak di antara dua

    simbol tersebut akan diabaikan oleh program.

  • 12

    { }(kurung kurawal)

    Digunakan untuk mendefinisikan kapan blok program mulai dan

    berakhir (digunakan juga pada fungsi dan pengulangan).

    ;(titk koma)

    Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik

    koma yang hilang maka program tidak akan bisa dijalankan).

    2. Variabel

    Sebuah program secara garis besar dapat didefinisikan sebagai instruksi

    untuk memindahkan angka dengan cara yang cerdas. Variabel inilah yang

    digunakan untuk memindahkannya. Berikut ini adalah contoh beberapa macam

    intruksi dari variabel.

    int (integer)

    Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Tidak

    mempunyai angka desimal dan menyimpan nilai dari -32,768 dan 32,767.

    long

    Digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte (32 bit)

    dari memori (RAM) dan mempunyai rentang dari -2,147,483,648 dan

    2,147,483,647.

    boolean

    Variabel sederhana yang digunakan untuk menyimpan nilai TRUE

    (benar) atau FALSE (salah). Sangat berguna karena hanya menggunakan 1 bit dari

    RAM.

    Float (float)

    Digunakan untuk angka desimal (floating point). Memakai 4 byte (32 bit)

    dari RAM dan mempunyai rentang dari -3.4028235E+38 dan 3.4028235E+38.

    char (character)

    Menyimpan 1 karakter menggunakan kode ASCII (misalnya A =

    65). Hanya memakai 1 byte (8 bit) dari RAM.

    3. Operator Matematika

    Operator yang digunakan untuk memanipulasi angka (bekerja seperti

  • 13

    matematika yang sederhana).

    = Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10

    * 2, x sekarang sama dengan 20).

    %

    Menghasilkan sisa dari hasil pembagian suatu angka dengan angka

    yang lain (misalnya: 12 % 10, ini akan menghasilkan angka 2).

    + (Penjumlahan)

    - (Pengurangan)

    * (Perkalian)

    / (Pembagian)

    4. Operator Pembanding

    Digunakan untuk membandingkan nilai logika.

    = Sama dengan (misalnya : 12 == 10 adalah FALSE (salah) atau 12 == 12

    adalah TRUE (benar)

    != Tidak sama dengan (misalnya: 12 != 10 adalah TRUE (benar) atau 12 !=

    12 adalah FALSE (salah)

    < Lebih kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12 < 12

    adalah FALSE (salah) atau 12 < 14 adalah TRUE (benar)

    > Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12

    > 12 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah).

    2.2.1.5.Struktur Pengaturan

    Program sangat tergantung pada pengaturan apa yang akan dijalankan

    berikutnya, berikut ini adalah elemen dasar pengaturan dan beserta penjelasanya

    (banyak lagi yang lain dan bisa dicari di internet).

    if.else, dengan format sepertI if (kondisi) { }, else if (kondisi){ } else { }

    Dengan struktur seperti diatas program akan menjalankan kode yang

    ada di dalam kurung kurawal jika kondisinya TRUE, dan jika tidak FALSE maka

    akan diperiksa apakah kondisi pada else if dan jika kondisinya FALSE maka kode

    pada else yang akan dijalankan.

  • 14

    for, dengan format seperti berikut ini:

    for (int i = 0; i < #pengulangan; i++) { }

    Digunakan bila anda ingin melakukan pengulangan kode di dalam kurung

    kurawal beberapa kali, ganti #pengulangan dengan jumlah pengulangan yang

    diinginkan. Melakukan penghitungan ke atas dengan i++ atau ke bawah dengan

    i.

    6. Digital pinMode(pin, mode)

    Digunakan untuk menetapkan mode dari suatu pin, pin adalah nomor pin

    yang akan digunakan dari 0-19 (pin analog 0-5 adalah 14-19). Mode yang bisa

    digunakan adalah INPUT atau OUTPUT.

    digitalWrite(pin, value)

    Ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat

    dijadikan HIGH (ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground).

    digitalRead(pin)

    Ketika sebuah pin ditetapkan sebagai INPUT maka anda dapat

    menggunakan kode ini untuk mendapatkan nilai pin tersebut apakah HIGH

    (ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground).

    7. Analog

    Arduino adalah mesin digital tetapi mempunyai kemampuan untuk

    beroperasi di dalam alam analog (menggunakan trik). Berikut ini cara untuk

    menghadapi hal yang bukan digital.

    analogWrite(pin, value)

    Beberapa pin pada Arduino mendukung PWM (pulse width modulation)

    yaitu pin 3, 5, 6, 9, 10, 11. Ini dapat merubah pin hidup (on)atau mati (off)

    dengan sangat cepat sehingga membuatnya dapat berfungsi layaknya keluaran

    analog. Value (nilai) pada format kode tersebut adalah angka antara 0 ( 0% duty

    cycle ~ 0V) dan 255 (100% duty cycle ~ 5V).

    analogRead(pin)

    Ketika pin analog ditetapkan sebagai INPUT anda dapat membaca

  • 15

    keluaran voltase-nya. Keluarannya berupa angka antara 0 (untuk 0 volts) dan 1024

    (untuk 5 volts). [3]

    Salah satu kelebihan dari arduino Uno adalah didukung oleh software

    Arduino IDE (Integrated Development Enviroment) untuk melakukan penulisan

    pemrograman. Bahasa pemrogramannya berdasarkan bahasa C yang mudah untuk

    dipelajari dan sudah didukung oleh library yang lengkap. Berikut ini adalah

    contoh bahasa pemograman dalam softwere arduino.

    Gambar 2.3 Bahasa pemrograman dalam softwere arduino

    2.2.2. GCC AVR Gnu Compiler Collection merupakan sebuah project compiler berbasis

    open source untuk beberapa bahasa pemrograman. Karena sifatnya yang "terbuka"

    inilah membuat pengembang bahasa pemrograman untuk microcontroller memilih

    bahasa C yang digabungkan dalam environment GCC, sebagai bahasa

    pemrogramman pada beberapa compiler seperti WINAVR atau TOOLCHAIN.

  • 16

    Kali ini akan kita bahas GCC yang digunakan paling umum untuk

    menyusun script dari pemrogramman AVR yang digunakan umum pada AVR

    STUDIO yatu WINAVR. Atmel sebagai produsen microcontroller AVR memiliki

    beberapa kerjasama dengan bahasa pemrograman lain seperti IAR akan tetapi

    banyak juga yang memilih versi gratisnya dengan menginstall plugin WINAVR.

    Pola pemrograman dari winavr umumnya seperti berikut :

    Header

    #define F_CPU 4000000UL

    #include

    #include

    #include "coba.h"

    uint8_t jam,menit,detik,show;

    #define hidup PORTB|=_BV(PB3)

    Pada bagian header ini dinyatakan beberapa syntax yang berhubungan

    dengan preprocessor (#define), variabel global serta "include" yang merupakan

    rujukan compiler untuk menyertakan file-file eksternal. mari kita bahas satu

    persatu.

    #define nama kondisi

    Setelah #define terdapat dua buah kalimat yang dipisahkan dengan spasi.

    Kalimat sebelah kiri merupakan rujukan sedangkan sebelah kanan merupakan

    proses yang dilakukan. Seperti contoh diatas maka dapat diartikan bahwa setiap

    syntax yang ditulis sebagai "nama" akan berubah menjadi "kondisi", contoh lain

    #define F_CPU 4000000UL berarti setiap syntax pada script yang berisikan

    "F_CPU" maka akan digantikan dengan "4000000UL".

    Jika ditulis seperti ini #define hidup PORTB|=_BV(PB3) maka setiap kita

    menulis " hidup; " pada syntax maka akan terjadi kejadian pada port B3 akan

    menjadi "high" atau kalau menyingkat dalam penulisan dan mempermudah proses

    tracing atau debuging error(kesalahan) syntax serta jalannya dari program yang

    diinginkan.

  • 17

    #include "nama.file".

    Bagian ini untuk melakukan penyertaan compiling kepada file-file

    external. Contoh yang paling gampang adalah #include dimana

    compiler akan menyertakan directory pada instalasi WINAVR pada folder

    "include/avr" . File io.h merupakan file yang berisikan definisi port input output

    yang disesuaikan dengan jenis IC microcontroller yang digunakan. Include yang

    lain juga sangat berguna dan disesuaikan dengan kebutuhan, contohnya delay.h

    yang berhubungan dengan delay, interrupt.h yang berhubungan dengan interupt,

    string.h yang berhubungan dengan operasi string dan lain sebagainya. Untuk file

    include yang menggunakan tanda petik merupakan penyertaan file lokal yang

    diletakkan di folder atau direktori yang sama dengan direktori project. [4]

    int variabel;

    Untuk menyimpan suatu nilai pada memory maka diperlukan pemesanan

    lokasi variabel terlebih dahulu. GCC memiliki cara dinamis untuk menempatkan

    memory sehingga memudahkan dalam penyusunan. Variabel ini tentunya harus

    diberitahukan jenisnya sehingga dapat dipesankan sesuai kebutuhan. Contoh dari

    tipe variabel yang sering digunakan adalah seperti LED akan menyala, karena

    syntax hidup telah diartikan sebagai syntax PORTB|=_BV(PB3) yang merupakan

    syntax untuk menghidupkan port B3.

    Berguna sekali apabila kita menggunakan perulangan "kondisi" yang

    banyak sehingga :

    - unsigned : menyatakan kalau tipe variabel berupa 8 bit sehingga nilainya antara

    0-255, sama seperti char

    - int : integer, merupakan memory 16 bit memiliki nilai antara -32768 sampai +

    32767

    ada beberapa tipe integer yang dapat diambil dengan menggunakan #include

    - uint8_t : 8 bit

    - uint16_t: 16 bit

    - uint32_t: 32 bit

  • 18

    Sebagai contoh kita akan menyimpan data karakter huruf, cukup dengan

    menggunakan unsigned char atau char saja karena karakter ascii merupakan data

    dengan lebar 8 bit. Sedangkan untuk perhitungan timer 16 bit maka sebaiknya

    menggunakan uint16_t yang memiliki lebar data 16 bit dan selalu bernilai positif.

    Dalam bahasa C semua kode dieksekusi berada dalam suatu function.

    Function adalah sebuah blok yang mempunyai nama yang melakukan tugas dan

    kemudian akan mengembalikan kontrol ke pemanggil. Perhatikan bahwa bahasa

    pemrograman lain mungkin membedakan antara "function", "subroutine",

    "subprogram", "procedure", atau "metode" - sedangkan dalam C hal ini semuanya

    sama dan bernama function.

    Sebuah function sering dieksekusi (dipanggil) beberapa kali, dari beberapa

    tempat yang berbeda, selama eksekusi dari sebuah program. Setelah

    menyelesaikan subrutin, program ini akan bercabang dan kembali ke titik setelah

    dimana function ini dipanggil. Function adalah alat pemrograman yang kuat yang

    merupakan salah satu kelebihan bahasa C. Secara umum pada pemrograman

    microcontroller berbasis GCC - Winavr, pola function paling utama adalah seperti

    berikut:

    int main(void)

    {

    uint8_t a;

    DDRA |= (1

  • 19

    Function yang bernama main merupakan function utama dimana awal dari

    program microcontroller dimulai. Function ini sebaiknya diberikan tipe data yang

    akan di kembalikan (return) karena beberapa compiler menanggap semua function

    itu sama. Jika tidak diberi tipe maka di depan main diberikan tanda void.

    perhatikan jenis function berikut ini.

    void coba_fungsi_1(void)

    { DDRA |= (1

  • 20

    kontaktor ( jadi satu dengan Kontaktor ) yang akan berfungsi jika kontaktor

    bekerja ( ON ) maka Timer juga bekerja ( ON ).

    Off Delay adalah suatu Timer yang dihubungkan secara langsung ke

    kontaktor ( jadi satu dengan Kontaktor ) yang akan berfungsi jika kontaktor

    bekerja ( ON ) dan Timer tidak bekerja ( OFF ). adalah sebagai pengatur waktu

    bagi peralatan yang dikendalikannya. Timer ini dimaksudkan untuk mengatur

    waktu hidup atau mati dari kontaktor atau untuk merubah sistem bintang ke

    segitiga dalam delay waktu tertentu. Timer dapat dibedakan dari cara kerjanya

    yaitu timer yang bekerja menggunakan induksi motor dan menggunakan

    rangkaian elektronik. Timer yang bekerja dengan prinsip induksi motor akan

    bekerja bila motor mendapat tegangan AC sehingga memutar gigi mekanis dan

    memarik serta menutup kontak secara mekanis dalam jangka waktu tertentu.

    Sedangkan relay yang menggunakan prinsip elektronik, terdiri dari rangkaian R

    dan C yang dihubungkan seri atau paralel. Bila tegangan sinyal telah mengisi

    penuh kapasitor, maka relay akan terhubung. Lamanya waktu tunda diatur

    berdasarkan besarnya pengisisan kapasitor. Bagian input timer biasanya

    dinyatakan sebagai kumparan (Coil) dan bagian pengeluaranya sebagai kontak NO

    atau NC.

    Kumparan pada timer akan bekerja selama mendapat sumber arus. Apabila

    telah mencapai batas waktu yang diinginkan maka secara otomatis timer akan

    mengunci dan membuat kontak NO menjadi NC dan NC menjadi NO. Pada

    umumnya timer memiliki 8 buah kaki yang 2 diantaranya merupakan kaki coil

    sebagai contoh pada gambar di atas adalah TDR type H3BA dengan 8 kaki yaitu

    kaki 2 dan 7 adalah kaki coil, sedangkan kaki yang lain akan berpasangan NO dan

    NC, kaki 1 akan NC dengan kaki 4 dan NO dengan kaki 3. Sedangkan kaki 8 akan

    NC dengan kaki 5 dan NO dengan kaki 6. Kaki kaki tersebut akan berbeda

    tergantung dari jenis relay timernya. [6]

    2.2.4. Interrupt Interrupt adalah suatu kejadian atau peristiwa yang menyebabkan

    mikrokontroler berhenti sejenak untuk melayani interrupt tersebut.Yang harus

    diperhatikan untuk menguanakan interupsi adalah, kita harus tau sumber-sumber

  • 21

    interupsi, vektor layanan interupsi dan yang terpenting rutin lyanan interupsi,

    yaitu subrutinyang akan dikerjakan bila terjadi interupsi.

    Analoginya adalah sebagai berikut, seseorang sedang mengetik laporan,

    mendadak telephone berdering dan menginterrupsi orang tersebut sehingga

    menghentikan pekerjaanmengetik dan mengangkat telephone.Setelah pembicaraan

    telephone yang dalam hal iniadalah merupakan analogi dari Interrupt Service

    Routine selesai maka orang tersebut kembalimeneruskan pekerjaanya mengetik.

    Demikian pula pada sistem mikrokontroler yang sedangmenjalankan programnya,

    saat terjadi interrupt, program akan berhenti sesaat, melayaniinterrupt tersebut

    dengan menjalankan program yang berada pada alamat yang ditunjuk olehvektor

    dari interrupt yang terjadi hingga selesai dan kembali meneruskan program

    yangterhenti oleh interrupt tadi. Seperti yang terlihat Gambar di bawah, sebuah

    program yang seharusnya berjalan terus lurus, tiba-tiba terjadi interrupt dan harus

    melayani interrupt tersebut terlebih dahulu hingga selesai sebelum ia kembali

    meneruskan pekerjaannya.

    Gambar 2.4 Proses Interrupt

    AVR menyediakan beberapa sumber interupsi yang berbeda. Tiap-tiap

    interupsi dan reset memiliki vektor program yang berbeda. Semua interupsi

    didasari satu bit tunggalyang harus diberi logika tinggi sebagai Global Interrupt

    Enable. i vektor interupsi seperti pada tabel di bawah ini. Setiap interupsi yang

    aktif akan dilayani segera setelah terjadi permintaan interupsi, tapi jika dalam

    waktu bersamaan terjadi lebih dari satu interupsi maka perioritas yang akan

  • 22

    diselesaikan terlebih dahulu adalah interupsi yang memiliki urut lebih kecil sesuai

    tabel 19 berikut.

    Tabel 2.1 Reset and interrupt vectors

    Pada AVR terdapat 3 pin interupsi eksternal, yaitu INT0,INT1,dan INT2.

    Interupsi eksternal dapat dibangkitkan apabila ada perubahan logika baik transisi

    naik (rising edge) maupun transisi turun (falling edge) pada pin interupsi. [7]

    2.3. KOMPONEN PENDUKUNG 2.3.1. Sensor Infra Red (Infra Merah)

    Cahaya infra merah merupakan cahaya yang tidak tampak. Jika dilihat

    dengan spektroskop cahaya maka radiasi cahaya infra merah akan terlihat pada

    spektrum elektromagnet dengan panjang gelombang di atas panjang gelombang

  • 23

    cahaya merah. Radiasi inframerah memiliki panjang gelombang antara 700 nm

    sampai 1 mm dan berada pada spektrum berwarna merah. Dengan panjang

    gelombang ini maka cahaya infra merah tidak akan terlihat oleh mata namun

    radiasi panas yang ditimbulkannya masih dapat dirasakan/dideteksi.

    Pada dasarnya komponen yang menghasilkan panas juga menghasilkan

    radiasi infra merah termasuk tubuh manusia maupun tubuh binatang. Cahaya infra

    merah, walaupun mempunyai panjang gelombang yang sangat panjang tetap tidak

    dapat menembus bahan-bahan yang tidak dapat melewatkan cahaya yang nampak

    sehingga cahaya infra merah tetap mempunyai karakteristik seperti halnya cahaya

    yang nampak oleh mata.

    Pada pembuatan komponen yang dikhususkan untuk penerima infra merah,

    lubang untuk menerima cahaya (window) sudah dibuatkhusus sehingga dapat

    mengurangi interferensi dari cahaya non-infra merah. Oleh sebab itu sensor infra

    merah yang baik biasanya memiliki jendela (pelapis yang terbuat dari silikon)

    berwarna biru tua keungu-unguan. Sensor ini biasanya digunakan untuk aplikasi

    infra merah yang digunakan diluar rumah (outdoor).

    Sinar infra merah yang dipancarkan oleh pemancar infra merah tentunya

    mempunyai aturan tertentu agar data yang dipancarkan dapat diterima dengan baik

    pada penerima. Oleh karena itu baik di pengirim infra merah maupun penerima

    infra merah harus mempunyai aturan yang sama dalam mentransmisikan (bagian

    pengirim) dan menerima sinyal tersebut kemudian mendekodekannya kembali

    menjadi data biner (bagian penerima). Berikut ini adalah contoh gambar sensor

    infra merah dan photo diode.

    Gambar 2.5 sensor infra merah dan photo diode

  • 24

    Komponen yang dapat menerima infra merah ini merupakan komponen

    yang peka cahaya yang dapat berupa dioda (photodioda) atau transistor

    (phototransistor). Komponen ini akan merubah energi cahaya, dalam hal ini

    energi cahaya infra merah, menjadi pulsa-pulsa sinyal listrik. Komponen ini harus

    mampu mengumpulkan sinyal infra merah sebanyak mungkin sehingga pulsa-

    pulsa sinyal listrik yang dihasilkan kualitasnya cukup baik.

    2.3.2. Fotodioda

    Fotodioda adalah jenis dioda yang berfungsi mendeteksi cahaya.

    Fotodioda merupakan sensor cahaya semikonduktor yang dapat mengubah

    besaran cahaya menjadi besaran listrik. Fotodioda merupakan sebuah dioda

    dengan sambungan pn yang dipengaruhi cahaya dalam kerjanya. Cahaya yang

    dapat dideteksi oleh fotodioda ini mulai dari cahaya infra merah, cahaya tampak,

    ultra ungu sampai dengan sinar-X. Aplikasi fotodioda mulai dari penghitung

    kendaraan di jalan umum secara otomatis, pengukur cahaya pada kamera serta

    beberapa peralatan di bidang medis.

    Gambar 2.6 Fotodioda

    Prinsip kerja dari fotodioda jika sebuah sambungan-pn dibias maju dan

    diberikan cahaya padanya maka pertambahan arus sangat kecil sedangkan jika

    sambungan pn dibias mundur arus akan bertambah cukup besar. Cahaya yang

    dikenakan pada fotodioda akan mengakibatkan terjadinya pergeseran foton yang

    akan menghasilkan pasangan electron-hole dikedua sisi dari sambungan. Ketika

    elektron- elektron yang dihasilkan itu masuk ke pita konduksi maka elektron-

    elektron itu akan mengalir ke arah positif sumber tegangan sedangkan hole yang

    dihasilkan mengalir ke arah negatif sumber tegangan sehingga arus akan mengalir

  • 25

    di dalam rangkaian. Besarnya pasangan elektron ataupun hole yang dihasilkan

    tergantung dari besarnya intensitas cahaya yang dikenakan pada fotodioda.

    Alat yang mirip dengan fotodioda adalah fototransistor (Phototransistor).

    Fototransistor ini pada dasarnya adalah jenis transistor bipolar yang

    menggunakan kontak (junction) base-collector untuk menerima cahaya.

    Komponen ini mempunyai sensitivitas yang lebih baik jika dibandingkan dengan

    fotodioda. Hal ini disebabkan karena elektron yang ditimbulkan oleh foton cahaya

    pada junction ini diinjeksikan di bagian Base dan diperkuat di bagian

    Kolektornya. Namun demikian, waktu respon dari fototransistor secara umum

    akan lebih lambat dari pada fotodioda. [8]

    2.3.3. LCD Liquid Crystal Display (LCD) merupakan Sebuah teknologi layar digital

    yang menghasilkan citra pada sebuah permukaan yang rata (flat) dengan memberi

    sinar pada kristal cair dan filter berwarna, yang mempunyai struktur molekul

    polar, diapit antara dua elektroda yang transparan. Bila medan listrik diberikan,

    molekul menyesuaikan posisinya pada medan, membentuk susunan kristalin yang

    mempolarisasi cahaya yang melaluinya.

    Teknologi yang ditemukan semenjak tahun 1888 ini, merupakan

    pengolahan kristal cair merupakan cairan kimia, dimana molekul-molekulnya

    dapat diatur sedemikian rupa bila diberi medan elektrik--seperti molekul-molekul

    metal bila diberi medan magnet. Bila diatur dengan benar, sinar dapat melewati

    kristal cair tersebut.

    Tampilan Kristal Cair (Liquid Crystal Display) juga dikenal sebagai LCD

    adalah suatu jenis media tampilan yang menggunakan kristal cair sebagai

    penampil utama. LCD sudah digunakan di berbagai bidang misalnya dalam alat-

    alat elektronik seperti televisi, kalkulator ataupun layar komputer.

    Pada LCD berwarna semacam monitor terdapat banyak sekali titik cahaya

    (pixel) yang terdiri dari satu buah kristal cair sebagai sebuah titik cahaya. Walau

    disebut sebagai titik cahaya, namun kristal cair ini tidak memancarkan cahaya

    sendiri. Sumber cahaya di dalam sebuah perangkat LCD adalah lampu neon

  • 26

    berwarna putih di bagian belakang susunan kristal cair tadi. Titik cahaya

    yang jumlahnya puluhan ribu bahkan jutaan inilah yang membentuk tampilan

    citra. Kutub kristal cair yang dilewati arus listrik akan berubah karena pengaruh

    polarisasi medan magnetik yang timbul dan oleh karenanya akan hanya

    membiarkan beberapa warna diteruskan sedangkan warna lainnya tersaring.

    Berikut ini adalah contoh gambar LCD 16 x 2.

    Gambar 2.7 LCD 16 x 2

    Beberapa alasan yang menjadi petimbangan utama para pengguna beralih

    ke monitor LCD adalah, selain lebih artistik ketika dipandang, harganya sudah

    jauh lebih murah ketimbang tahun tahun sebelumya. Selain itu secara kualitas

    dan teknologi, monitor LCD juga sudah jauh lebih berkembang dibanding tahun-

    tahun sebelumbya. Belakangan, kalangan rumahan juga banyak yang lebih

    memilih monitor LCD ketimbang CRT, baik untuk penggunaan sandar maupun

    untuk beragam aplikasi sepetigame maupun sebagai perangkat penampil

    aplikasi digital home entertainment. [9]

    2.3.4. LED Lampu LED atau kepanjangannya Light Emitting Diode adalah suatu

    lampu indikator dalam perangkat elektronika yang biasanya memiliki fungsi untuk

    menunjukkan status dari perangkat elektronika tersebut. Misalnya pada sebuah

    komputer, terdapat lampu LED power dan LED indikator untuk processor, atau

    dalam monitor terdapat juga lampu LED power dan power saving. Lampu LED

    terbuat dari plastik dan dioda semikonduktor yang dapat menyala apabila dialiri

    tegangan listrik rendah (sekitar 1.5 volt DC). Bermacam-macam warna dan bentuk

  • 27

    dari lampu LED, disesuaikan dengan kebutuhan dan fungsinya. Dibawah

    ini adalah contoh gambar struktur dasar LED.

    Gambar 2.8 Struktur Dasar LED

    LED (Light Emitting Diode) merupakan sejenis lampu yang akhir-akhir ini

    muncul dalam kehidupan kita. LED dulu umumnya digunakan pada gadget seperti

    ponsel atau PDA serta komputer. Sebagai pesaing lampu bohlam dan neon, saat

    ini aplikasinya mulai meluas dan bahkan bisa kita temukan pada korek api yang

    kita gunakan, lampu emergency dan sebagainya. Led sebagai model lampu masa

    depan dianggap dapat menekan pemanasan glonal karena efisiensinya.

    Kualitas cahayanya memang berbeda dibandingkan dengan lampu TL atau

    lampu lainnya. Tingkat pencahayaan LED dalam ruangan memang tak lebih

    terang dibandingkan lampu neon, inilah mengapa LED dianggap belum layak

    dipakai secara luas. Untungnya para ilmuwan di University of Glasgow

    menemukan cara untuk membuat LED bersinar lebih terang. Solusinya adalah

    dengan membuat lubang mikroskopis pada permukaan LED sehingga lampu bisa

    menyala lebih terang tanpa menggunakan tambahan energi apapun. Pelubangan

    tersebut menerapkan sistem nano-imprint litography yang sampai saat ini

    proyeknya masih dikembangkan bersama-sama dengan Institute of Photonics.

    Sementara ini beberapa jenis lampu LED sudah dipasarkan oleh Philips. Anda

    bisa menemui beberapa model lampu LED bergaya bohlam yang hadir dalam

    warna putih susu dan juga warna-warni. Daya yang diperlukan lampu jenis ini

    hanya sekitar 4-10 watt saja dibandingkan lampu neon sejenis yang mencapai

    http://usmanft.blogspot.com/2006/05/led-sebagai-sumber-cahaya-masa-depan.htmlhttp://obengware.com/news/index.php?id=4027

  • 28

    1220 watt. Jika dihitung secara seksama memang bisa diakui bahwa lampu

    LED menggunakan daya yang lebih hemat daripada lampu TL.

    Sumber cahaya dari waktu ke waktu semakin berkembang, mulai dari

    penemuan lampu pijar oleh Edison dan dalam waktu yang hampir bersamaan

    ditemukan juga lampu fluorescence (TL) dan merkuri. Saat ini ada beberapa jenis

    lampu yang digunakan manusia untuk berbagai keperluan, yaitu lampu pijar, TL,

    LED, Merkuri, Halogen, Sodium dan sebagainya. Namun masih ada kekurangan

    pada lampu generasi pertama sehingga lampu terus dikembangkan agar bisa

    menghasilkan cahaya yang terang, memberikan warna yang bagus, hemat energi,

    portable (mudah dibawa) dan lain sebagainya. Yang paling menarik dari beberapa

    jenis lampu adalah LED.

    Lampu pijar lebih murah tapi juga kurang efisien dibanding LED. Lampu

    TL lebih efisien daripada lampu pijar, tapi butuh tempat besar, mudah pecah dan

    membutuhkan starter atau rangkaian ballast yang terkadang terdengar suara

    dengungnya. LED mempunyai beberapa keunggulan dibandingkan dengan lampu

    pijar konvensional. LED tidak memiliki filamen yang terbakar, sehingga usia

    pakai LED jauh lebih panjang daripada lampu pijar, LED tidak memerlukan gas

    untuk menghasilkan cahaya. Selain itu bentuk dari LED yang sederhana, kecil dan

    kompak memudahkan penempatannya. Dalam hal efisiensi, LED juga memiliki

    keunggulan. Pada lampu pijar konvensional, proses produksi cahaya

    menghasilkan panas yang tinggi karena filamen lampu harus dipanaskan. LED

    hanya sedikit menghasilkan panas, sehingga porsi terbesar dari energi listrik yang

    ada digunakan untuk menghasilkan cahaya dan membuatnya jauh lebih efisien.

    RGB (Red Green Blue) LED atau LED yang bisa mengeluarkan warna yang

    dipancarkan lebih dari satu warna sehingga memungkinkan aplikasi LED yang

    semakin luas, khususnya menambah keindahan dalam dunia desain interior dan

    eksterior.

    Dalam terminologi teknik pencahayaan, LED dapat dikatakan memiliki

    tingkat efisiensi luminus (cahaya) atau efikasi yang tinggi, karena perbandingan

    banyaknya energi cahaya yang dikeluarkan LED dengan besarnya daya listrik

    yang dikonsumsinya cukup tinggi jika dibandingkan dengan lampu pijar

    konvensional. Salah satu contoh produk dari LED adalah LedVision yang

  • 29

    dikeluarkan oleh Philips sebagai traffic light (lampu lalu lintas) yang

    tersusun dari ribuan LED yang dipasangkan pada lampu lalu lintas dengan umur

    (life time) mencapai 100.000 jam atau sekitar 10 tahun lebih sehingga efektif

    dalam mengurangi biaya perawatan.LedVision beroperasi pada tegangan rendah

    dan arus yang lebih kecil sehingga bisa menghemat sampai 90% energi listrik

    yang dikonsumsi oleh lampu pijar (yang sekarang banyak digunakan) dan

    umurnya 10 kali lebih panjang.

    LED dengan cahaya monokromatiknya memiliki keunggulan kekuatan

    yang besar lebih dari cahaya putih ketika warna yang spesifik diperlukan. tidak

    seperti cahaya putih tradisional, LED tidak membutuhkan lapisan atau diffuser

    yang banyak mengabsorpsi cahaya yang dikeluarkan. cahaya LED mempunyai

    sifat warna tertentu, dan tersedia pada range warna yang lebar. salah satunya yang

    baru-baru ini warnanya diperkenalkan adalah emerald green (bluish green,

    panjang gelombangnya kira-kira 500nm) yang cocok dengan persyaratan sebagai

    sinyal lalu lintas dan cahaya navigasi. Cahaya LED kuning adalah pilihan bagus

    karena mata manusia sensitif pada cahaya kuning (kira-kira yang dipancarkan

    500lm/watt). Kelebihan LED dari lampu yang ada sekarang (lampu pijar, TL,dll)

    yaitu dalam hal efisiensi energi dan umur yang panjang menjadikan LED sangat

    berpotensi untuk dijadikan sumber pencahayaan pengganti lampu di masa depan.

    Kemajuan teknologi mungkin akan mengurangi biaya sehingga LED bisa menjadi

    idola sebagai lampu dimasa depan. [10]

    2.3.5. Buzzer Buzzer adalah sebuah komponen elektronika yang berfungsi untuk

    mengubah getaran listrik menjadi getaran suara. Pada dasarnya prinsip kerja

    buzzer hampir sama dengan loud speaker, jadi buzzer juga terdiri dari kumparan

    yang terpasang pada diafragma dan kemudian kumparan tersebut dialiri arus

    sehingga menjadi elektromagnet, kumparan tadi akan tertarik ke dalam atau

    keluar, tergantung dari arah arus dan polaritas magnetnya, karena kumparan

    dipasang pada diafragma maka setiap gerakan kumparan akan menggerakkan

    diafragma secara bolak-balik sehingga membuat udara bergetar yang akan

  • 30

    menghasilkan suara. Buzzer biasa digunakan sebagai indikator bahwa proses telah

    selesai atau

  • 31

    terjadi suatu kesalahan pada sebuah alat (alarm). Berikut ini adalah contoh

    gambar buzzer.

    Gambar 2.9 Buzzer

    Buzzer dibagi menjadi beberapa jenis yaitu bedasarkan teganganya, ada

    yang 12 volt, ada yang 6 volt dan ada juga yang 3 volt. Apabila akan

    menggunakan buzzer maka dapat memilih jenis buzzer sesuai dengan kebutuhan

    atau yang diperlukan. [11]