Tampilkan postingan dengan label Mikrokontroler. Tampilkan semua postingan
Tampilkan postingan dengan label Mikrokontroler. Tampilkan semua postingan

Rabu, 04 Juli 2012

Eksternal Interupt Pada ATmega


          Interupsi adalah kondisi dimana pada saat program utama dijalankan/dieksekusi oleh CPU, kemudian tiba-tiba berhenti untuk sementara waktu karena ada rutin laian yang harus ditangani terlebih dahulu oleh CPU, dan setelah selesai mengerjakan rutin tersebut CPU kembali mengerjakan instruksi pada program utama. Berikut ini adalah sumber interupsi pada ATmega8535.

Interupsi Eksternal
          Pada ATmega8535 terdapat 3 pin untuk interupsi eksternal, yaitu INT0, INT1, dan INT2. Interupsi eksternal dapat dibangkitkan apabila terdapat perubahan logika 1 atau logika 0 pada pin INT0, INT1, dan INT2. Inisialisasi external interrupt pada ATmega16 dapat dilakukan dengan melakukan konfigurasi register MCUCR, MCUCSR, GICR, GIFR.
          Bit-bit INT0, INT1, dan INT2 pada register GICR digunakan untuk mengaktifkan masing-masing interupsi eksternal. Ketika bit-bit tersebut diset 1 (aktif) maka interupsi eksternal akan aktif jika bit I (interupt) pada SREG (status register) diset 1 juga (enable interupt), instruksi untuk mengaktifkan global interupt yaitu sei. Program interupsi dari masing-masing interupsi akan dimulai dari vektor interupsi pada masing-masing jenis interupsi eksternal. 
          Untuk interupsi yang dijalankan terlebih dahulu pada ATmega8535 yaitu ditunjukkan oleh tabel 1. Sehingga interupsi eksternal yang dijalankan terlebih dahulu adalah INT0, INT1, dan INT2. Untuk membuktikannya kita lakukan percobaan seperti berikut.

ALAT DAN BAHAN YANG DIGUNAKAN
  1. 1 set Personal Computer/Laptop yang sudah berisi program Code Vision dan Khazama
  2. 1 buah ISP Downloader AVR
  3. 1 buah sistem minimum AVR
  4. 1 buah I/O
  5. 1 buah kabel printer USB

PROSEDUR
A.    Interupt
  • Rangkailah peralatan yang diperlukan seperti dalam Gambar 1. Hubungkan soket jumper PORTC pada minimum system dengan soket jumper pada OUTPUT LED. Hubungkan PIN D2, PIN D3, dan PIN B2 ke push button ( INT0, INT1, dan INT2 ).
Gambar 1. Blok diagram antarmuka mikrokontroler dengan I/O
  • Buka program Code Vision AVR
  • Buatlah project baru. Pada saat mengeset chip, clock, dan External IRQ, set juga bagian PORTC untuk LED. Kemudian simpanlah file tersebut.
Gambar 2. Setting LED dan Interupt
  • Perhatikan blok program berikut.
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here
// untuk program interupt 0
}

// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void)
{
// Place your code here
// untuk program interupt 1
}

// External Interrupt 2 service routine
interrupt [EXT_INT2] void ext_int2_isr(void)
{
// Place your code here
// untuk program interupt 2
}
// Port C initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTC=0x00;
DDRC=0xFF;

// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Falling Edge
// INT1: On
// INT1 Mode: Falling Edge
// INT2: On
// INT2 Mode: Falling Edge
GICR|=0xE0;
MCUCR=0x0A;
MCUCSR=0x00;
GIFR=0xE0;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// Global enable interrupts
#asm("sei")

while (1)
      {
      // Place your code here
     // Untuk program utama
      };
}


  • Tuliskan script berikut dalam program utama:
while (1)
      {
      // Place your code here
      PORTC=0x00;
      delay_ms(1000);
      PORTC=0x01;
      delay_ms(1000);
      PORTC=0x03;
      delay_ms(1000);
      PORTC=0x07;
      delay_ms(1000);
      PORTC=0x0F;
      delay_ms(1000);
      PORTC=0x1F;
      delay_ms(1000);
      PORTC=0x3F;
      delay_ms(1000);
      PORTC=0x7F;
      delay_ms(1000);
      PORTC=0xFF;
      delay_ms(1000);
      };

  • Tuliskan script berikut dalam program interupt:

// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here
PORTC=0xFF;
delay_ms(1000);
PORTC=0x00;
delay_ms(1000);
PORTC=0xFF;
delay_ms(1000);
PORTC=0x00;
delay_ms(1000);
PORTC=0xFF;
delay_ms(1000);
PORTC=0x00;
delay_ms(1000);
}

// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void)
{
// Place your code here
PORTC=0xFF;
delay_ms(1000);
PORTC=0x7F;
delay_ms(1000);
PORTC=0x3F;
delay_ms(1000);
PORTC=0x1F;
delay_ms(1000);
PORTC=0x0F;
delay_ms(1000);
PORTC=0x07;
delay_ms(1000);
PORTC=0x03;
delay_ms(1000);
PORTC=0x01;
delay_ms(1000);
PORTC=0x00;
delay_ms(1000);
}

// External Interrupt 2 service routine
interrupt [EXT_INT2] void ext_int2_isr(void)
{
// Place your code here
PORTC=0xF0;
delay_ms(1000);
PORTC=0x0F;
delay_ms(1000);
PORTC=0xF0;
delay_ms(1000);
PORTC=0x0F;
delay_ms(1000);
PORTC=0xF0;
delay_ms(1000);
PORTC=0x0F;
delay_ms(1000);
}
  • Downloadkan program ke mikrokontroler, setelah itu tekan pada push button yang berhubungan dengan PIN D2 (INT0).
  • Perhatikan dan catat nyala LED.
  • Lakukan hal serupa dengan Interup 1  dan Interupt 2.
  • Selanjutnya jalankan interup 0, interupt 1, dan interupt 2 secara bersamaan (antara program utama, program interup 0, program interupt 1, dan program interupt 2 harus berbeda).
  • Perhatikan dan catat nyala LED.

UNTUK PERCOBAAN INI SAYA BERI FILE PROTEUS UNTUK SIMULASI!!!!


Sabtu, 17 Desember 2011

Monitoring Tandon Air



            Pada postingan kali ini saya ingin membahas mengenai alat sederhana untuk memonitoring tandon air. Komponen utama dari alat ini adalah sensor ultrasonik untuk mengukur ketinggian dari airnya.untuk lebih jelasnya langsung saja kita pelajari pembahasan dibawah!!!

              Ini saya kasih sedikit penjelasan tentang komponen yang digunakan!!
1.      Sensor Ultrasonik SRF 04 
                                                 Gambar 1. Senror Ultrasonok SRF 04

Ultrasonik adalah suara atau getaran dengan frekwensi yang terlalu tinggi untuk bisa didengar oleh telinga manusia, yaitu kira-kira di atas 20 KHz. Hanya beberapa hewan, seperti lumba-lumba menggunakannya untuk komunikasi, sedangkan kelelawar menggunakan gelombang ultrasonik untuk navigasi. Dalam hal ini, gelombang ultrasonik merupakan gelombang ultra (di atas) frekuensi gelombang suara (sonik).
Gelombang ultrasonik dapat merambat dalam medium padat, cair dan gas. Reflektivitas dari gelombang ultrasonik ini di permukaan cairan hampir sama dengan permukaan padat, tapi pada tekstil, dan busa, maka jenis gelombang ini akan diserap.

2.      RS 232
Jika peralatan yang digunakan menggunakan logika TTL, maka sinyal port serial harus dikonversikan terlebih dahulu ke pulsa TTL sebelum digunakan begitu juga sebaliknya. Converter yang paling mudah digunakan ialah RS232. Di dalam IC ini terdapat charge pump yang akan membangkitkan tegangan +10 Volt dan -10 Volt dari sumber +5 Volt tunggal. Dalam IC DIP (Dual Inline Package) 16 pin ini terdapat 2 buah transmitter dan 2 buah receiver.


Gambar 2. RS232 Dalam Rangkaian

3.      USB to Serial
IC Serial RS 232 yang berada pada kabel data digunakan sebagai antarmuka dari PC ke perangkat luar atau sebaliknya. Tegangan pada RS 232 berada dengan level tegangan digital. Tegangan yang digunakan oleh RS 232 atau TC 232 tersebut adalah +3 V s/d +25V untuk logika “0” dan -3 s/d -25 untuk level logika “1”. Tegangan yang cukup tinggi menyebabkan data dapat ditransmisikan cukup jauh. Ada dua macam sistem transmisi dalam komunikasi serial, yaitu asinkron dan sinkron, pada komunikasi data serial sinkron, clock dikirimkan bersama-sama dengan data serial, sedangkan komunikasi data asinkron clock tidak dikirimkan bersama data serial, melainkan dibangkitkan secara sendiri-sendiri baik pada sisi pengirim (transmitter) maupun pada sisi penerima (receiver).
Konsep dasar pengiriman seri adalah pada saat data parallel internal dimasukkan ke pengubah parallel ke seri. Kanal seri mengirimkan setiap karakter per elemen, sehingga hanya diperlukan 2 penghantar, yaitu kirim data (TXD), dan terima data (RXD). Adapun piranti tambahan yang dibutuhkan adalah IC MAX232. 
                                              Gambar 3. USB To Serial



A.    PERANCANGAN
1.      DIAGRAM BLOK

Gambar 4. Diagram Blok Rangkaian

2.      PRINSIP KERJA
a.       Input
Input yang akan dideteksi pada rangkaian ini adalah jarak dari sensor terhadap permukaan air. Jarak dideteksi menggunakan sensor ultrasonik kemudian masuk ke rangkaian minimum sistem mikroprosesor untuk dilakukan proses pehitungan.
  
b.      Mikrokontroler ATmega16
Mikrokontroler digunakan untuk melakukan perhitungan dari sensor ultrasonik agar dari bentuk sinyal pulsa menjadi data nilai jarak. Jadi mikro mengirimkan perintah ke sensor, setelah sensor mendapat perintah dari mikro maka sensor mengirimkan gelombang suara (dari transmiter). Selanjutnya gelombang suara tersebut akan memantul mengenai permukaan dari air, kemudian akan diterima oleh receiver. Dari data yang diterima receiver ini nanti akan di konversi oleh mikro ke nilai jarak. Nilai jarak ini nanti dikirimkan ke program borland delphi ke komputer melalui rangkaian MAX232 serta USB to serial.

c.       MAX 232
Pada rangkaian MAX 232 untuk mengkonversi sinyal dari port serial ke pulsa TTL.

d.      USB to Serial
Dari MAX 232 kemudian masuk ke converter USB to serial agar data mudah dibaca menggunakan laptop atau PC
e.       PC
PC digunakan untuk menampilkan berapakah volume dari tandon air setelah dilakukan perhitungan terlebih dahulu, selain itu program Delphi 7 digunakan untuk menampilkan nilaianya.


3.      GAMBAR SKEMA RANGKAIAN

Gambar 5. Skema Rangkaian


4.      LAY OUT PCB


            Gambar 6a.PCB MAX 232          Gambar 6b. Minimum Sistem ATmega16



       B.     HASIL
1.      Foto Alat

                                                                                          Gambar 7. Hardware Alat

2.      Foto Tampilan Delphi


                                           Gambar 8. Tampilan Awal Program Delphi

  
                                                                           Gambar 9. Tampilan Utama Program Delphi


Langkah Kerja:
a.       Buka file simpanan program (.dpr atau .exe)
b.      Jika menjalankan dari format .dpr maka RUN program tersebut, tetapi bila yang dijalankan format .exe maka tinggal klik 2x program akan jalan.
c.       Klik tombol “SETTING”, atur “PORT” port berapa yang digunakan dan “BOUDRATE” yang digunakan.
d.      Kemudian isikan berapa nilai dari luas alas dari tandon yang akan kita monitoring ke kolom “Luas Alas” dan juga isikan nilai dari jarak pemasangan sensor dari dasar tandon ke kolom “Tinggi Sensor”.
e.       Klik tombol START, maka program “Monitoring Tandon Air” siap untuk digunakan. Saat program start dijalankan maka data dari mikrokontroler akan diterima oleh program delphi, selanjutnya secara otomatis akan menghitung berapakah volume dari tandon tersebut serta ditampilkan dalam grafik batang.
f.       Tombol Stop digunakan untuk menghentikan sementara program.
g.      Tombol Exit digunakan untuk keluar dari program.


Yang iningi download listing programnya dan program exe-nya download disini


 
Design by Wordpress Theme | Bloggerized by Free Blogger Templates | coupon codes