Sensor Ultrasonic Bahasa Pemrograman Mikrokontroler

BAB II LANDASAN TEORI

2.1. Umum

Mata merupakan bagian tubuh manusia yang memegang peranan sangat penting, karena manusia mengenali apapun pertama kali melalui penglihatan. Maka tidaklah salah ketika ada yang berpendapat bahwa mata merupakan jendela dunia.Tidak semua orang memiliki mata yang sempurna yang bisa menikmati semua penciptaan di alam ini. Ada beberapa orang di dunia ini yang tidak mampu melihat karena mata tidak bisa berfungsi sebagaimana mestinya. Salah satu permasalahan mata adalah kebutaan. Ada yang mengalami kebutaan sejak kecil dan ada juga yang terjadi setelah dewasa. Berdasarkan data organisasi kesehatan dunia atau WHO, setiap lima detik ada satu orang dewasa menjadi buta. Sementara setiap satu menit ada satu anak menjadi buta. Diperkirakan belasan tahun ke depan penderita kebutaan mencapai 100 juta kasus. Pada tahun 2000 saja jumlahnya sudah mencapai 45 juta orang buta dan 135 juta orang mengalami gangguan penglihatan. http:kompas.com: 2007Di Indonesia, terdapat sekitar 3,5 jutA penderita kebutaan. Sebanyak ,76 disebabkan katarak, 0,20 karena glaukoma dan kelainan refraksi 0,14. http:kompas.com: 2007 Karena tidak mampu melihat, penderita tunanetra seringkali memerlukan bantuan orang lain dalam melakukan aktivitasnya sehari-hari, Terutama saat berjalan.

2.2. Sensor Ultrasonic

Sensor ultrasonic adalah sensor yang bekerja berdasarkan prinsip pantulan gelombang dimana sensor menghasilkan gelombang pantulan ke benda yang kemudian menangkapnya kembali dengan perbedaan waktu sebagai dasar perhitungannya.. Perbedaan waktu antara gelombang pantulan yang di kembalikan dan yang diterima kembali adalah berbanding lurus dengan jarak atau tinggi objek yang memantulkannya.. Jenis objek yang dapat di indranya adalah padat, cair dan butiran. Tanpa kontak jarak 2 cm sampai 3 meter dan dapat dengan mudah dihubungkan dengan mikrokontroler malalui satu pin IO saja. Ubiversitas Sumatera Utara Dimensi : 2,6 cm p x 4,1 cm l x 6,2 cm t Gambar 2.1. Sensor Ultrasonic Spesifikasi: : -. Memiliki 2 jenis antarmuka yang dapat aktif bersamaan, yaitu I2C-bus fSCL maks. 65 kHz dan pulse width 10µsmm. -. 8 modul dapat digunakan bersama dalam satu sistem I2C-bus yang hanya membutuhkan 2 pin IO mikrokontroler saja. -. Membutuhkan catu daya tunggal +5 VDC, dengan konsumsi arus 17 mA typ. tanpa sensor infrared ranger. cara kerja sensor ultrasonic dengan cara memantulkan gelombang ke sebuah objek kemudian data yang di pantulkan menentukan jarak dari sensor ke objek. Gambar 2.2. Ilustrasi cara kerja sensor Ubiversitas Sumatera Utara

2.3. Mikrokontroler Atmega8535

Mikrokontroler sesuai namanya adalah suatu alat atau komponen pengontrol atau pengendali yang berukuran mikro atau kecil. Sebelum ada mikrokontroler, telah ada terlebih dahulu muncul mikroprosesor. Bila dibandingkan dengan mikroprosesor, mikrokontroler jauh lebih unggul karena terdapat berbagai alasan, diantaranya : a. Tersedianya IO IO dalam mikrokontroler sudah tersedia sementara pada mikroprosesor dibutuhkan IC tambahan untuk menangani IO tersebut. IC IO yang dimaksud adalah PPI 8255. Syahrul.2012 b. Memori Internal Memori merupakan media untuk menyimpan program dan data sehingga mutlak harus ada. Mikroprosesor belum memiliki memori internal sehingga memerlukan IC memori eksternal. Dengan kelebihan-kelebihan di atas, ditambah dengan harganya yang relatif murah sehingga banyak penggemar elektronika yang kemudian beralih ke mikrokontroler. Namun demikian, meski memiliki berbagai kelemahan, mikroprosesor tetap digunakan sebagai dasar dalam mempelajari mikrokontroler. Inti kerja dari keduanya adalah sama, yakni sebagai pengendali suatu sistem. Mikrokontroler adalah otak dari suatu sistem elektronika seperti halnya mikroprosesor sebagai otak komputer. Namun mikrokontroler memiliki nilai tambah karena didalamnya sudah terdapat memori dan sistem inputoutput dalam suatu kemasan IC. Mikrokontroler AVR Alf and Vegard’s RISC processor standar memiliki arsitektur 8-bit, dimana semua instruksi dikemas dalam kode 16- bit dan sebagian besar instruksi dieksekusi dalam satu siklus clock. Berbeda dengan instruksi MCS-51 yang membutuhkan 12 siklus clock karena memiliki arsitektur CISC seperti komputer.Dedi.2010 Ubiversitas Sumatera Utara Gambar 2. 4. Blok Diagram ATMega8535 Dari gambar tersebut dapat dilihat bahwa Atmega8535 memiliki bagian sebagai berikut : 1. Saluran IO sebanyak 32 buah, yaitu Port A, Port B, Port C, Port D.

2. ADC 10 bit sebanyak 8 saluran.

3. Tiga buah TimerCounter dengan kemampuan pembandingan.

4. CPU yang terdiri atas 32 buah register.

5. Watchdog Timer dengan osilator internal.

6. SRAM sebesar 512 byte.

7. Memori Flash sebesar 8 kb dengan kemampuan Read While Write.

8. Unit interupsi internal dan eksternal.

9. Port antarmuka SPI.

10. EEPROM sebesar 512 byte yang dapat diprogram saat operasi.

11. Antarmuka komparator analog.

12. Port USART untuk komunikasi serial

Secara umum, AVR dapat dikelompokkan menjadi 4 kelas, yaitu keluarga ATTiny, keluarga AT90Sxx, keluarga ATMega dan AT89RFxx. Pada dasarnya Ubiversitas Sumatera Utara yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama. Oleh karena itu, dipergunakan salah satu AVR produk Atmel, yaitu Atmega8535. Selain mudah didapatkan dan lebih murah Atmega8535 juga memiliki fasilitas yang lengkap. Untuk tipe AVR ada 3 jenis yaitu ATTiny, AVR klasik, dan ATMega. Perbedaannya hanya pada fasilitas dan IO yang tersedia serta fasilitas lain seperti ADC, EEPROM, dan lain sebagainya. Salah satu contohnya adalah ATMega 8535. Memiliki teknologi RISC dengan kecepatan maksimal 16 MHz membuat ATMega 8535 lebih cepat bila dibandingkan dengan varian MCS51. Dengan fasilitas yang lengkap tersebut menjadikan Atmega8535 sebagai mikrokontroler yang powerfull. Adapun blok diagramnya sebagai berikut :

2.3.1. Konfigurasi PIN Atmega8535

Gambar 2. 5 Konfigurasi Pin ATMega8535 Mikrokontroler Atmega8535 mempunyai jumlah pin sebanyak 40 buah, dimana 32 pin digunakan untuk keperluan port IO yang dapat menjadi pin inputoutput sesuai konfigurasi. Pada 32 pin tersebut terbagi atas 4 bagian port, yang masing-masingnya terdiri atas 8 pin. Pin-pin lainnya digunakan untuk keperluan rangkaian osilator, supply tegangan, reset, serta tegangan referensi Ubiversitas Sumatera Utara untuk ADC. Untuk lebih jelasnya, Agus. 2005. konfigurasi pin Atmega8535 dapat dilihat pada gambar 2.9. Berikut ini adalah susunan pin-pin dari Atmega8535; • VCC merupakan pin yang berfungsi sebagai pin masukkan catu daya • GND merupakan pin ground • Port A PA0..PA7 merupakan pin IO dua arah dan pin masukan ADC • Port B PB0..PB7 merupakan pin IO dua arah dan pin fungsi khusus, yaitu TimerCounter, Komparator Analog, dan SPI • Port C PC0..PC7 merupakan pin IO dua arah dan pin fungsi khusus, yaitu TWI, Komparator Analog, dan Timer Oscilator • Port D PD0..PD7 merupakan pin IO dua arah dan pin fungsi khusus, yaitu Komparator Analog, Interupsi Iksternal dan komunikasi serial USART • Reset merupakan pin yang digunakan untuk mereset mikrokontroler • XTAL1 dan XTAL2 merupakan pin masukkan clock eksternal osilator menggunakan kristal, biasanya dengan frekuensi 11,0592 MHz.

2.3.1.1. Port-Port Pada Atmega8535 Dan Fungsinya

2.3.1.1.1. Port A

Merupakan 8-bit directional port IO. Setiap pinnya dapat menyediakan internal pull-up resistor dapat diatur per bit. Output buffer Port A dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port A DDRA harus disetting terlebih dahulu sebelum Port A digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, kedelapan pin port A juga digunakan untuk masukan sinyal analog bagi AD converter.

2.3.1.1.2. Port B

Merupakan 8-bit directional port IO. Setiap pinnya dapat menyediakan internal pull-up resistor dapat diatur per bit. Output buffer Port B dapat memberi Ubiversitas Sumatera Utara arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port B DDRB harus disetting terlebih dahulu sebelum Port B digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Pin-pin port B juga memiliki untuk fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel berikut . Tabel 2.2 Fungsi Pin-pin Port B

2.3.1.1.3. Port C

Merupakan 8-bit directional port IO. Setiap pinnya dapat menyediakan internal pull-up resistor dapat diatur per bit. Output buffer Port C dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port C DDRC harus disetting terlebih dahulu sebelum Port C digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin port C yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, dua pin port C PC6 dan PC7 juga memiliki fungsi alternatif sebagai oscillator untuk timercounter 2. Ubiversitas Sumatera Utara

2.3.1.1.4. Port D

Merupakan 8-bit directional port IO. Setiap pinnya dapat menyediakan internal pull-up resistor dapat diatur per bit. Output buffer Port D dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port D DDRD harus disetting terlebih dahulu sebelum Port D digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin port D juga memiliki untuk fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel berikut. Tabel 2.3 Fungsi Pin-pin Port D

2.3.1.1.5. RESET

RST pada pin 9 merupakan reset dari AVR. Jika pada pin ini diberi masukan low selama minimal 2 machine cycle maka system akan di-reset.

2.3.1.1.6. XTAL1

XTAL1 adalah masukan ke inverting oscillator amplifier dan input ke internal clock operating circuit

2.3.1.1.7. XTAL2

XTAL2 adalah output dari inverting oscillator amplifier.

2.3.1.1.8. AVcc

Ubiversitas Sumatera Utara Avcc adalah kaki masukan tegangan bagi AD Converter. Kaki ini harus secara eksternal terhubung ke Vcc melalui lowpass filter.

2.3.1.1.9. AREF

AREF adalah kaki masukan referensi bagi AD Converter. Untuk operasionalisasi ADC, suatu level tegangan antara AGND dan Avcc harus diberikan ke kaki ini.

2.3.1.1.10. AGND

AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND, kecuali jika board memiliki analog ground yang terpisah

2.3.2. Peta Memori ATMega8535

ATMega8535 memiliki dua jenis memori yaitu Program Memory dan Data Memory ditambah satu fitur tambahan yaitu EEPROM Memory untuk penyimpan data.Wardhana.2006

2.3.2.1. Program Memory

ATMega8535 memiliki On-Chip In-System Reprogrammable Flash Memory untuk menyimpan program. Untuk alasan keamanan, program memory dibagi menjadi dua bagian, yaitu Boot Flash Section dan Application Flash Section . Boot Flash Section digunakan untuk menyimpan program Boot Loader, yaitu program yang harus dijalankan pada saat AVR reset atau pertama kali diaktifkan. Application Flash Section digunakan untuk menyimpan program aplikasi yang dibuat user. AVR tidak dapat menjalakan program aplikasi ini sebelum menjalankan program Boot Loader. Besarnya memori Boot Flash Section dapat diprogram dari 128 word sampai 1024 word tergantung setting pada konfigurasi bit di register BOOTSZ. Jika Boot Loader diproteksi, maka program pada Application Flash Section juga sudah aman.Agus.2005 Ubiversitas Sumatera Utara Gambar 2. 6 Peta Memori Program 2.3.2.2. Data Memory . Gambar 2. 7 Peta Memori Data Gambar berikut menunjukkan peta memori SRAM pada ATMEGA 8535. Terdapat 608 lokasi address data memori. 96 lokasi address digunakan untuk Register File dan IO Memory sementara 512 likasi address lainnya digunakan untuk internal data SRAM. Register file terdiri dari 32 general purpose working register, IO register terdiri dari 64 register

2.3.2.3. EEPROM Data Memory

ATMEGA 8535 memiliki EEPROM 8 bit sebesar 512 byte untuk menyimpan data. Loaksinya terpisah dengan system address register, data register dan control register yang dibuat khusus untuk EEPROM. Alamat EEPROM dimulai dari 000 sampai 1FF. Ubiversitas Sumatera Utara Gambar 2. 8 EEPROM Data Memory.

2.3.3. Status Register SREG

Status register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti CPU mikrokontroler. Gambar 2. 9 Status Register ATMega 8535 • Bit 7 – I : Global Interrupt Enable Jika bit Global Interrupt Enable diset, maka fasilitas interupsi dapat dijalankan. Bit ini akan clear ketika ada interrupt yang dipicu dari hardware, setelah program interrupt dieksekusi, maka bit ini harus di set kembali dengan instruksi SEI. • Bit 6 – T : Bit Copy Storage Instruksi bit copy BLD dan BST menggunakan bit T sebagai sumber atau tujuan dalam operasi bit. • Bit 5 – H: Half Carry Flag • Bit 4 – S : Sign Bit Bit S merupakan hasil exlusive or dari Negative Flag N dan Two’s Complement Overflow Flag V. • Bit 3 – V : Two’s Complement Overflow Flag Digunakan dalam operasi aritmatika • Bit 2 – N : Negative Flag Ubiversitas Sumatera Utara Jika operasi aritmatika menghasilkan bilangan negatif, maka bit ini akan set. • Bit 1 – Z : Zero Flag Jika operasi aritmatika menghaslkan bilangan nol, maka bit ini akan set. • Bit 0 – C : Carry Flag Jika suatu operasi menghasilkan Carry, maka bit ini akan set.

2.4. Bahasa Pemrograman Mikrokontroler

Pengembangan sebuah sistem menggunakan mikrokontroler AVR buatan ATMEL menggunakan software AVR STUDIO dan CodeVisionAVR. AVR STUDIO merupakan software yang digunakan untuk bahasa assembly yang mempunyai fungsi yang sangat lengkap, yaitu digunakan untuk menulis program, kompilasi, simulasi dan download program ke IC mikrokontroler AVR. Sedangkan CodeVisionAVR merupakan software C-cross Compiler, dimana program dapat ditulis dalam bahasa C, CodeVision memiliki IDE Integrated development Environment yang lengkap, dimana penulisan program, compile,link, pembuatan kode mesin assembler dan download program ke chip AVR dapat dilakukan dengan CodeVision, selain itu ada fasilitas terminal, yaitu melakukan komunikasi serial dengan mikrokontroler yang sudah di program. Proses download program ke IC mikrokontroler AVR dapat menggunakan System programmable Flash on-Chip mengizinkan memori program untuk diprogram ulang dalam sistem menggunakan hubungan serial SPI.

2.4.1. CodevisionAVR

CodeVisionAVR merupakan sebuah cross-compiler C, Integrated Development Environtment IDE, dan Automatic Program Generator yang didesain untuk mikrokontroler buatan Atmel seri AVR. CodeVisionAVR dapat dijalankan pada sistem operasi Windows 95, 98, Me, NT4, 2000, dan XP. Cross- compiler C mampu menerjemahkan hampir semua perintah dari bahasa ANSI C, sejauh yang diijinkan oleh arsitektur dari AVR, dengan tambahan beberapa fitur Ubiversitas Sumatera Utara untuk mengambil kelebihan khusus dari arsitektur AVR dan kebutuhan pada sistem embedded. File object COFF hasil kompilasi dapat digunakan untuk keperluan debugging pada tingkatan C, dengan pengamatan variabel, menggunakan debugger Atmel AVR Studio. IDE mempunyai fasilitas internal berupa software AVR Chip In-System Programmer yang memungkinkan Anda untuk melakukan transfer program kedalam chip mikrokontroler setelah sukses melakukan kompilasiasembli secara otomatis. Software In-System Programmer didesain untuk bekerja dengan Atmel STK500AVRISPAVRProg, Kanda Systems STK200+300, Dontronics DT006, Vogel Elektronik VTEC-ISP, Futurlec JRAVR dan MicroTronics ATCPUMega2000 programmersdevelopment boards. Untuk keperluan debugging sistem embedded, yang menggunakan komunikasi serial, IDE mempunyai fasilitas internal berupa sebuah Terminal. Selain library standar C, CodeVisionAVR juga mempunyai library tertentu untuk: • Modul LCD alphanumeric • Bus I2C dari Philips • Sensor Suhu LM75 dari National Semiconductor • Real-Time Clock: PCF8563, PCF8583 dari Philips, DS1302 dan DS1307 dari MaximDallas Semiconductor • Protokol 1-Wire dari MaximDallas Semiconductor • Sensor Suhu DS1820, DS18S20, dan DS18B20 dari MaximDallas Semiconductor • TermometerTermostat DS1621 dari MaximDallas Semiconductor • EEPROM DS2430 dan DS2433 dari MaximDallas Semiconductor • SPI • Power Management • Delay • Konversi ke Kode Gray CodeVisionAVR juga mempunyai Automatic Program Generator bernama CodeWizardAVR, yang mengujinkan Anda untuk menulis, dalam hitungan menit, semua instruksi yang diperlukan untuk membuat fungsi-fungsi berikut: Ubiversitas Sumatera Utara • Set-up akses memori eksternal • Inisialisasi port inputoutput • Inisialisasi interupsi eksternal • Inisialisasi TimerCounter • Inisialisasi Watchdog-Timer • Inisialisasi UART USART dan komunikasi serial berbasis buffer yang digerakkan oleh interupsi • Inisialisasi Pembanding Analog • Inisialisasi ADC • Inisialisasi Antarmuka SPI • Inisialisasi Antarmuka Two-Wire • Inisialisasi Antarmuka CAN\ • Inisialisasi Bus I2C, Sensor Suhu LM75, ThermometerThermostat DS1621 dan Real-Time Clock PCF8563, PCF8583, DS1302, dan DS1307 • Inisialisasi Bus 1-Wire dan Sensor Suhu DS1820, DS18S20 • Inisialisasi modul LCD Ubiversitas Sumatera Utara BAB III PERANCANGAN ALAT DAN PEMBUATAN SISTEM

3.1 Perancangan Blok Diagram Sistim