BAB II DASAR TEORI Pada bab ini akan menerangkan beberapa teori dasar yang mendukung terciptanya skripsi ini. Teori-teori tersebut antara lain mikrokontroler AVR ATmega32, RTC (Real Time Clock) DS1307, LCD (Liquid Chrystal Display) karakter 4 kolom x 20 baris, keypad, Parallax memory stick datalogger (#27937), sensor inductive proximity OMRON E2E-X5E2, dan Visual Studio menggunakan bahasa Visual Basic. 2.1. Mikrokontroler AVR ATmega32 AVR adalah salah satu jenis mikrokontroler yang dibuat oleh Atmel Corporation. AVR ini berupa chip atau IC (Integrated Circuit) yang dapat diprogram karena di dalamnya berisi mikroprosesor, memori dan modul-modul I/O layaknya sebuah komputer. Tetapi perbedaannya terdapat pada kemampuan menjalankan program, komputer dapat menjalankan program secara bersamaan, tetapi mikrokontroler hanya dapat menjalankan satu buah program karena biasanya program yang ditanamkan pada mikrokontroler bersifat khusus dengan kata lain program tersebut diciptakan untuk mengatur atau mengendalikan suatu peralatan. Contohnya mengatur lampu lalu lintas, menstabilkan suhu ruangan, mengendalikan motor-motor, dan lain sebagainya. ATmega32 termasuk mikrokontroler dengan lebar jalur data 8 bit, hemat energi dan memiliki kinerja tinggi karena nilai osilator eksternal yang dapat terpasang hingga 16Mhz. ATmega32 merupakan salah satu mikrokontroler yang banyak digunakan oleh programmer untuk mengendalikan suatu peralatan, karena mikrokontroler ini mempunyai fasilitas-fasilitas pendukung antara lain: 32K byte memori In-System Programmable Flash, 512 byte EEPROM, 512 byte SRAM, 32 jalur I/O untuk keperluan umum, 3 buah Timer/Counter internal, interupsi internal dan eksternal, serial programmable USART, 8 jalur ADC (Analog to Digital Converter), dan masih terdapat banyak fasilitas lainnya. Konfigurasi mikrokontroler AVR ATmega32 untuk 40 pin DIP (Dual In Line Package) ditunjukkan pada Gambar 2.1 dan tabel 2.1 menunjukkan keterangan dari masing-masing pin ATmega32 [10]. 4
. Gambar 2.1. Konfigurasi pin ATmega32. Tabel 2.1. Keterangan Konfigurasi pin ATmega32. Nomor Pin Nama Pin Keterangan 10 VCC Catu Daya 5Volt 11dan 31 GND Ground 33 40 PORT A : P0 P7 (ADC0 ADC7) Port I/O dua arah yang dilengkapi dengan internal pull-up resistor. Selain itu Port ini juga berfungsi sebagai inputan ADC 1 7 PORT B : PB0 PB7 Port I/O dua arah yang dilengkapi dengan internal pull-up resistor PB0 : (Timer/Counter0 eksternal counter input) PB1 : (Timer/Counter1 eksternal counter input) PB2 : AIN0 (Analog Comparator Positive Input) PB3 : AIN1 (Analog Comparator Positive Input) PB4 : SS (Select Input) PB5 : MOSI (data input) PB6 : MISO (data output) PB7 : SCK (serial clock) 22 29 PORT C : PC0 PC7 Port I/O dua arah yang dilengkapi dengan internal pull-up resistor Dua pin pada PC6 dan PC7 berfungsi sebagai osilator eksternal untuk timer/counter2 5
Tabel 2.1. Keterangan Konfigurasi pin ATmega32. (lanjutan) 14 21 PORT D : PD0 PD7 Port I/O dua arah yang dilengkapi dengan internal pull-up resistor PD0 : RXD (UART input) PD1 : TXD (UART output) PD2 : INT0 (input eksternal interrupt 0) PD3 : INT1 (input eksternal interrupt 1) PD4 : OC1B (timer/counter1 output compare B match output) PD5 : OC1A (timer/counter1 output compare A match output) PD6 : ICP (timer/counter1 input capture pin) PD7 : OC2 (timer/counter2 output compare match output) 9 RESET Pin ini aktif low, dan digunakan apabila terjadi kegagalan program saat alat berjalan. Sehingga program akan dimulai dari awal 13 XTAL1 Masukan ke inverting oscillator amplifier dan masukan ke rangkaian internal clock 12 XTAL2 Keluaran dari inverting oscillator amplifier 30 AVCC Catu daya untuk PORTA dan ADC 32 AREF Referensi masukan analog untuk ADC 2.2. RTC (Real Time Clock) DS1307 Real Time Clock DS1307 merupakan salah satu jenis IC (Integrated Circuit) yang bekerja sebagai pewaktu, DS1307 dapat menyimpan jam, menit, detik, tanggal, bulan, dan tahun. Karena penggunaannya yang mudah dan bentuknya yang kecil, IC (Integrated Circuit) ini merupakan solusi yang baik apabila menghadapi permasalahan tentang timer. DS1307 membutuhkan osilator eksternal dengan nilai 32,768 KHz dan berkomunikasi dengan mikrokontroler dengan komunikasi I2C (Inter Integrated Circuit) yang membutuhkan jalur data (SDA) dan jalur clock (SCL), selain itu DS1307 mempunyai pin keluaran sendiri yang mampu menghasilkan pulsa dengan periode 1 detik (SQW). DS1307 mempunyai asupan daya yang kecil ketika mendapatkan tegangan 3 Volt saat sumber tegangan utama dimatikan, hal ini bertujuan supaya perhitungan pewaktuan tetap berjalan. Gambar 2.2 menunjukkan konfigurasi pin 6
DS1307 DIP (Dual In Line Package) dan tabel 2.2 menunjukkan keterangan pin DS1307 DIP (Dual In Line Package). Gambar 2.2. Konfigurasi Pin DS1307 DIP (Dual In Line Package). Tabel 2.2. Keterangan Pin DS1307 DIP (Dual In Line Package). Nomor Pin Nama Pin Keterangan 1 2 X1 dan X2 Pin yang terhubung dengan osilator eksternal 32,768 KHz 3 V BAT Terhubung dengan baterai 3 Volt yang bertujuan untuk memberikan tegangan apabila sumber tegangan utama tidak bekerja. 4 GND GROUND 5 SDA Serial Data yang berfungsi sebagai jalur transfer data I2C 6 SCL Serial Clock yang berfungsi sebagai jalur pewaktu antar IC 7 SQW Square Wave pin ini menghasilkan pulsa dengan peride 1 detik yang dapat di gunakan sebagai masukan pada mikrokontroler 8 V CC Catu daya 5 Volt 2.2.1. Komunikasi I2C (Inter Integrated Circuit) Komunikasi ini merupakan jalur komunikasi yang baik karena hanya memerlukan dua jalur sebagai media komunikasi. Jalur yang pertama adalah SDA (Serial Data) pada jalur ini terdapat data-data yang akan disampaikan oleh master ke slave atau sebaliknya. 7
Dan jalur yang kedua adalah SCL (Serial Clock) yang berfungsi untuk mensinkronkan data transfer antara Master dan Slave dalam komunikasi I2C. Jalur SDA dan SCL merupakan tipe open drain yang berarti chip tidak mempunyai nilai default sebagai acuan dengan kata lain open drain bernilai tidak setabil. Sehingga agar mampu memberikan output yang bernilai setabil, diperlukan pull-up resistor yang dihubungkan ke sumber tegangan 5 Volt. Gambar 2.3 adalah ilustrasi pemasangan resistor pull-up pada DS1307. 5V 5V Real Time Clock R P R P SDA SCL Gambar 2.3. Pemasangan Resistor Pull-Up Pada DS1307. Piranti yang dihubungkan dengan komunikasi I2C (Inter Integrated Cicuit) dapat dioperasikan sebagai Master dan Slave. Master adalah piranti yang memulai transfer data dengan membentuk sinyal start, mengakhiri transfer data dengan membentuk sinyal stop, dan membangkitkan sinyal clock. Slave adalah piranti yang dialamati master. Sinyal Start merupakan sinyal untuk memulai semua perintah, didefinisikan sebagai perubahan tegangan jalur SDA dari logika 1 menjadi logika 0 pada saat SCL berlogika 1. Sinyal Stop merupakan sinyal untuk mengakhiri semua perintah, didefinisikan sebagai perubahan tegangan jalur SDA dari logika 0 menjadi logika 1 pada saat SCL berlogika 1. Gambar 2.4 menunjukkan kondisi sinyal SDA dan SCL saat perintah start dan stop [13]. Gambar 2.4. Sinyal SDA Dan SCL Saat Perintah Start Dan Stop. 8
Jenis sinyal lain yang terdapat pada komunikasi I2C adalah sinyal ACK (acknowledge). Setelah transfer data dari master berhasil diterima oleh slave, slave akan memberikan feedback dengan mengirim sinyal acknowledge, sinyal ini akan membuat SDA berlogika 0 selama siklus clock ke 9. Hal ini menunjukkan bahwa Slave telah menerima data dari Master. Gambar 2.5 menunjukkan sinyal ACK [14]. SDA Gambar 2.5. Sinyal ACK (Acknowledge). 2.3. Keypad Untuk menghubungkan pengguna dengan sistem yang telah terbentuk digunakan keypad ukuran 4 baris x 3 kolom. Keypad matriks merupakan sekumpulan tombol yang dapat mengkombinasikan sinyal masukkan dari mikrokontroler. Apabila pengguna menekan salah satu tombol tersebut, hasil kombinasi tersebut dideteksi oleh mikrokontroler. Karena setiap tombol memiliki hasil kombinasi yang berbeda maka mikrokontroler dapat mengetahui tombol mana yang tertekan. Gambar 2.6 merupakan gambar keypad matriks 4 baris x 3 kolom. 9
Gambar 2.6. Keypad Matriks 4 Baris x 3 Kolom. 2.4. LCD (Liquid Chrystal Display) Karakter Piranti ini merupakan media penyampaian mikrokontroler kepada pengguna, karena pada piranti ini akan tertampil berbagai informasi yang telah ditampilkan oleh programmer sehingga pengguna dapat mengetahuinya. Supaya dapat menyampaikan informasi dengan leluasa penggunaan LCD (Liquid Crystal Display) karakter dengan ukuran 4 baris dan 20 kolom sudah cukup baik. Informasi yang ditampilkan cukup jelas dan cukup banyak dengan piranti ini. Gambar 2.7 adalah LCD karakter 4 baris x 20 kolom dan tabel 2.4 adalah pin konfigurasi dari LCD tersebut [3]. Gambar 2.7. LCD (Liquid Chrystal Display) Karakter 4 Baris x 20 Kolom. 10
Tabel 2.3. Konfigurasi Pin LCD 4 Baris x 20 Kolom. No. Pin Nama Pin Keterangan 1 V SS Ground 2 V dd Sumber tegangan 5 Volt 3 V O Kontras 4 RS Register Select 5 R/W Read/Write 6 E Enable 7 DB0 Data bit 0 8 DB1 Data bit 1 9 DB2 Data bit 2 10 DB3 Data bit 3 11 DB4 Data bit 4 12 DB5 Data bit 5 13 DB6 Data bit 6 14 DB7 Data bit 7 15 LED + Anode LED Backlight 16 LED - Katode LED Backlight 2.5. Parallax Memory Stick Datalogger (#27937) Modul ini bekerja dengan masukan tegangan 5 Volt dan arus yang dibutuhkan saat bekerja sebesar 25 ma. Piranti ini merupakan sebuah modul yang dapat menghubungkan flash disk dengan mikrokontroler dengan 2 macam mode yaitu UART (Universal Asynchronous Receiver/Transmitter) ditunjukkan pada Gambar 2.8 dan SPI (Serial Pheriperal Interface) ditunjukkan pada Gambar 2.9. Modul ini mampu melakukan operasi file seperti : create file, open file, write file, close file, dan lain lain. Tidak hanya operasi file, modul ini dapat melakukan operasi folder dan beberapa fungsi pendukung lainnya. 11
Gambar 2.8. Konfigurasi Mode UART. Gambar 2.9. Konfigurasi Mode SPI. 2.6. Sensor Inductive Proximity OMRON E2E-X5E2 Sensor inductive proximity merupakan suatu piranti yang berfungsi untuk mendeteksi keberadaan suatu objek tanpa ada kontak fisik dengan benda tersebut. Cara kerja sensor proximity ini yaitu dengan memancarkan medan elektromagnetik dan menerima perubahan bentuk medan elektromagnetik pada saat benda di deteksi. Sensor inductive proximity akan mendeteksi benda berbahan dasar logam, sensor jenis ini biasanya terdiri dari elektonik solid-state yang terbungkus rapat untuk melindunginya dari pengaruh getaran, cairan, kimiawi, dan korosif yang berlebihan. OMRON E2E-X5E2 dapat bekerja pada tegangan 12 Volt hingga 24 Volt dan membutuhkan arus 13 ma. Jarak sensing sensor ini maksimal sejauh 5 mm, dengan jarak tersebut sensor ini mempunyai frekuensi sebesar 0.6 KHz dengan kata lain kecepatan sensor ini untuk mendeteksi perubahan sinyal dari high ke low atau 12
sebaliknya sebesar 1.666 mili detik. Apabila perubahan sinyal lebih cepat dari 1.666 mili detik, sensor ini tidak dapat bekerja secara maksimal. Transistor di dalam OMRON E2E-X5E2 mempunyai sifat NPN, ketika sensor tidak mendeteksi penghalang berupa logam transistor bersifat normally open hal ini di tandai dengan lampu indikator LED (Light Emitting Diode) sensor menyala dan tidak ada tegangan keluar dari pin output. Ketika sensor mendeteksi benda di depannya maka transistor didalam sensor akan bersifat normally close sehingga lampu indikator akan mati dan keluar tegangan pada pin output setara dengan tegangan masukan sensor [4]. Gambar 2.10 adalah konfigurasi transistor NPN yang berada di dalam sensor inductive proximity. 2.7. Visual Basic Gambar 2.10. Konfigurasi Transistor NPN Pada Sensor Inductive Proximity. Visual Basic merupakan suatu compiler yang menggunakan bahasa pemrograman yang disebut basic, compiler ini lebih menekankan pada kemampuan visual. Kemampuan visual yang dimaksud adalah programmer dapat memanjakan pengguna dengan tampilan yang menarik dan dengan fungsi-fungsi lain yang membuat pengguna merasa dimudahkan. Bagi para programmer bahasa basic sudah tidak asing lagi, para programmer dapat membangun sebuah sistem dengan bahasa basic yang 13
sudah mereka kuasai supaya dapat menghasilkan GUI (Graphic User Interface) yang menarik bagi para pengguna. Dalam pemakaian komputer, user interface sangat memegang peranan penting, karena dalam pemakaian aplikasi yang dibuat, pengguna selalu berinteraksi dengan user interface tanpa menyadari bahwa dibelakangnya berjalan instruksi instruksi program yang mendukung tampilan dan proses yang dilakukan. Pada pemrograman visual, pengembangan aplikasi dimulai dengan pembentukkan user interface, kemudian mengatur properti dari objek-objek yang digunakan dalam user interface, kemudian dilakukan penulisan kode program untuk tiap objek yang dapat digunakan. Tahap pengembangan aplikasi seperti ini dikenal dengan istilah pengembangan aplikasi dengan pendekatan Bottom Up. Gambar 2.11 adalah tampilan awal Visual Basic 2010 Express [12]. Gambar 2.11. Tampilan awal Visual Basic 2010 Express. 14