• Tidak ada hasil yang ditemukan

Bab 2 Landasan Teoris

2.4 Mikrokontroller Atmega 8535

2.4.4 Organisasi Memori Atmega8535

Mikrokontroler ATmega 8535 memiliki 3 jenis memori yaitu memori program, memori data dan memori EEPROM.

Gambar 2.7 Organisasi memori ATMega8535

2.4.4.2 Memori Program

ATmega8535 mempunyai kapasitas memori program sebesar 8 Kbytes. Memori program ini terbagi menjadi 2 bagian yaitu bagian program boot dan bagian program aplikasi. Jika kita tidak menggunakan fitur Boot Loader Flash maka semua kapasitas memori program di atas dapat digunakan untuk program aplikasi. Tetapi jika kita menggunakan fitur Boot Loader Flash maka pembagian ukuran kedua bagian ini ditentukan oleh BOOTSZ fuse. (Bejo, 2008)

2.4.4.3 Memori Data

Memori data pada ATMega 8535 terdiri atas memori data internal dan eksternal kapasitas dari mSRam internal adalah sebesar 512 Kbytes. Ini menempati ruang alamat setelah 32 lokasi register serbaguna. alamat dan setelah 64 register I/O.

Jika SRAM eksternal digunakan, ini akan mengiukuti besar SRAM eksternal sampai dengan maksimum 64K terganung ukuran SRAM eksternal.

Operasi SRAM eksternal dimungkinkan oleh setting bit SRE di register MCUCR. Mode pengalamatan untuk mengakses memori data meliputi pengalamatan langsung (Direct Addressing), pengalamatan tak langsung (Indirect Addressing), Indirect dengan Pre-Decrement, Indirect dengan Post-Decrement, dan Indirect dengan Displacement. (www.ATMEL.com.Data sheet ATMega 8535)

Gambar 2.8 Memori Data

2.4.4.4 Memori EEPROM

ATmega 8535 memiiki memori EEPROM SEBESAR 512 Byte yang terpisah dari memori program maupun memori data. Memori EEPROM ini hanya dapat diakses dengan menggunakan register-register I/O yaitu register EEPROM Addres (EEARH-EEARL), register EEPROM Data (EEDR) dan register EEPROM Contro (EECR). Untuk mengakses memori EEPROM ini diperlakukan seperti mengakses data eksternal sehingga waktu eksekusinya relative lebih lama bila dibandingkan dengan data dari SRAM. (Bejo, 2008)

2.4.5 Status Register (SREG)

Register SREG digunakan untuk menyimpan informasi dari hasil operasi aritmatika yang terakhir. Informasi-informasi dari register SREG dapat digunakan untuk mengubah alur program yang sedang dijalankan dengan menggunakan instruksi percabangan. Data SREG akan selalu berubah setiap instruksi atau operasi pada ALU dan datanya tidak otomatis tersimpan apabila terjadi instruksi percabangan baik karena interupsi maupun lompatan. (Bejo, 2008)

2.5 Bahasa Pemrograman ATMega8535

Dalam proses merancang sistem mikrokontroler diperlukan adanya software yang berupa software compiler dan software downloader/programmer.

2.5.1 CODEVISION AVR

Pemrograman mikrokontroler ATMega8535 dapat menggunakan low level language (assembly) dan high level language (C, Basic, Pascal, Java, dll) tergantung compiler yang digunakan. Bahasa Assembler mikrokontroler AVR memiliki kesamaan instruksi, sehingga jika pemrograman satu jenis mikrokontroler AVR sudah dikuasai, maka akan dengan mudah menguasai pemrograman keseluruhan mikrokontroler jenis mikrokontroler AVR. Namun bahasa assembler relatif lebih sulit dipelajari dari pada bahasa C.

CodeVision AVR merupakan salah satu software compiler yang khusus digunakan untuk mikrokontroler keluarga AVR. Meskipun CodeVisionAVR termasuk software komersil, namun kita dapat menggunakannya dengan mudah karena terdapat versi evaluasi.

Salah satu kelebihan CodeVisionAVR adalah tersedianya fasilitas untuk mendownload program ke mikrokontroler yang telah terintegrasi sehingga dengan demikian CodeVisionAVR ini selain dapat berfungsi sebagai software compiler

juga dapat berfungsi sebagai software programmer/downloader. Jadi kita dapat melakukan proses download program yang telah dikompile dengan menggunakan software CodeVisionAVR.

Untuk pembuatan suatu proyek yang besar akan memakan waktu yang lama serta penulisan programnya akan panjang. Sedangkan bahasa C memiliki keunggulan dibanding bahasa assembler yaitu independent terhadap hardware serta lebih mudah untuk menangani project yang besar. Bahasa C memiliki keuntungan-keuntungan yang dimiliki bahasa assembler (bahasa mesin), hampir semua operasi yang dapat dilakukan oleh bahasa mesin, dapat dilakukan dengan bahasa C dengan penyusunan program yang lebih sederhana dan mudah. Bahasa C terletak diantara bahasa pemrograman tingkat tinggi dan assembly. (Bejo, 2008)

2.6 LCD 16x2

LCD merupakan salah satu perangkat penampil yang sekarang ini banyak digunakan menggantikan fungsi dari penampil CRT (Cathode Ray Tube). LCD memanfaatkan silicon atau gallium dalam bentuk kristal cair sebagai pemendar cahaya. Pada layar LCD, setiap matrik adalah susunan dua dimensi pexel yang dibagi dalam bentuk baris dan kolom.

Gambar 2.9 Bentuk LCD (Liquid Cristal Display)

Keunggulan LCD adalah hanya menarik arus beberapa mikro ampere, sehingga alat atau system menjadi portable karena dapat menggunakan catudaya yang kecil. Keuntungan lainnya adalah tampilan yang diperlihatkan dapat dibaca

dengan mudah dibawah terang sinar matahari. LCD ini menampilkan data dengan 2 baris tampilan pada display. Keuntungan dari LCD ini adalah :

1. Dapat menampilkan karakter ASCII, sehingga dapat memudahkan untuk membuat program tampilan.

2. Mudah dihubungkan dengan port I/O karena hanya menggunakan 8 bit data dan 3 bit control.

3. Ukuran modul yang proporsional.

4. Data yang digunakan relative sangat kecil.

Operasi dasar dari LCD terdiri dari empat, yaitu instruksi mengakses proses internal, instruksi menulis data, instruksi membaca kondisi sibuk dan instruksi membaca data. ROM pembangkit sebanyak 192 tipe karakter, tiap karakter dengan huruf 5x7 dot matrik. Kapasitas pembangkit RAM 8 tipe karakter (membaca program), maksimum pembacaan 80x8 bit tampilan data. Perintah utama LCD adalah Display Clear, Cursor Home, Display ON/OFF, Display Character Blink, Cursor Shift, dan Display Shift.

Tabel 2.1 Konfigurasi pin LCD

PIN BILANGAN BINER KETERANGAN

RS 0 Inisiasi

1 Data

RW 0 Tulis LCD/W(write)

1 Baca LCD/R(Read)

E 0 Pintu data terbuka

1 Pintu data tertutup

Lapisan film yang berisi Kristal cair diletakkan di antara dua lempeng kaca yang telah ditanami elektroda logam transparan. Saat tegangan dicatukan pada beberapa pasang elektroda, molekul-molekul kristal cair akan menyusun diri agar cahaya yang menganainya akan dipantulkan atau diserap. Dari hasil pantulan atau penyerapan cahaya tersebut akan terbentuk pola huruf, angka, atau gambar sesuai bagian yang diaktifkan. (Setiawan, 2011)

BAB 3

RANCANGAN SISTEM

3.1 Diagram Blok Rangkaian

Adapun diagram blok dari sistem yang dirancang adalah seperti yang diperlihatkan pada gambar 3.1. berikut ini:

Mikrokontroler 8535 LCD Potensio Ultrasonik Catu Daya

Fungsi dari sensor ultrasonik tersebut adalah sebagai sensor jarak antara alat dengan media pantul. Kemudian potensiometer sebagai sensor analog yang dibuat untuk mendapatkan nilai sudut pada putaran potensiometer tersebut.

Prinsipnya cukup mudah dimana dengan menggunakan rumus matematika dasar yaitu rumus trigonometri untuk segitiga siku-siku dapat diaplikasikan untuk menentukan ketinggian suatu bangunan. Potensiometer digunakan untuk pengukuran kemiringan sudut untuk mendapatkan nilai sudut pada rumus trigonometri dan sensor ultrasonic untuk menentukan jarak alat dengan bangunan. Laser pointer menunjukkan titik penentuan ketinggian suatu bangunan. Display LCD akan menampilkan jarak yang diukur oleh sensor ultrasonic kemudiaan kemiringan sudut yang diukur oleh potensiometer dan tinggi bangunan. Mikrokontroller ATMEGA8535 berfungsi sebagai otak dari system, yang akan mengendalikan proses kerja alat.

3.2 Rangkaian Mikrokontroler ATMEGA8535

Pada perancangan alat ini akan digunakan mikrokontroller ATMEGA8535 yang berfungsi untuk membaca data jarak dari sensor ultrasonic SR04 dan menampilkannya pada display LCD. Rangkaian ini berfungsi sebagai pusat kendali dari LCD, sensor dan motor. Komponen utama dari rangkaian ini adalah IC mikrokontroler ATMEGA8535. Pada IC inilah semua program diisikan, sehingga rangkaian dapat berjalan sesuai dengan yang dikehendaki. Dalam menjalankan chip IC mikrokontroler ATMEGA8535 memerlukan komponen elektronika pendukung lainnya. Suatu rangkaian yang paling sederhana dan minim komponen pendukungnya disebut sebagai suatu rangkaian sistem minimum. Sistem minimum ini berfungsi untuk membuat rangkaian mikrokontroller dapat bekerja, jika ada komponen yang kurang, maka mikrokontroller tidak akan bekerja. Dalam perancangan alat ini, sistem minimum mikrokontroler ATMEGA8535 terdiri dari:

1. Chip IC mikrokontroler ATMEGA8535 2. Kristal 12 MHz

3. Kapasitor 4. Resistor

Rangkaian mikrokontroler ATMEGA8535 ditunjukkan pada gambar berikut ini:

Gambar 3.2 Rangkaian mikrokontroller ATMEGA8535

Mikrokontroler ini memiliki 32 port I/O, yaitu port A, port B, port C dan port D. Pin 33 sampai 40 adalah Port A yang merupakan port ADC, dimana port ini dapat menerima data analog. Pin 1 sampai 8 adalah port B. Pin 22 sampai 29 adalah port C. Dan Pin 14 sampai 21 adalah port D. Pin 10 dihubungkan ke sumber tegangan 5 volt. Dan pin 11 dihubungkan ke ground. Rangkaian mikrokontroler ini menggunakan komponen kristal sebagai sumber clocknya. Nilai kristal ini akan mempengaruhi kecepatan mikrokontroler dalam mengeksekusi suatu perintah tertentu.

Pada pin 9 dihubungkan dengan sebuah kapasitor dan sebuah resistor yang dihubungkan ke ground. Kedua komponen ini berfungsi agar program pada mikrokontroler dijalankan beberapa saat setelah power aktip. Lamanya waktu antara aktipnya power pada IC mikrokontroler dan aktipnya program adalah sebesar perkalian antara kapasitor dan resistor tersebut.

3.4 Rangkaian LCD (Liquid Crystal Display)

LCD (Liquid Crystal Display) adalah modul penampil yang banyak digunakan karena tampilannya menarik. LCD yang paling banyak digunakan saat ini ialah LCD LMB162ABC karena harganya cukup murah. LCD LMB162ABC merupakan modul LCD dengan tampilan 2x16 (2 baris x 16 kolom) dengan konsumsi daya rendah. Modul tersebut dilengkapi dengan mikrokontroler yang didesain khusus untuk mengendalikan LCD.

Mikrokontroler HD44780 buatan Hitachi yang berfungsi sebagai pengendali LCD memiliki CGROM (Character Generator Read Only Memory), CGRAM (Character Generator Random Access Memory), dan DDRAM (Display Data Random Access Memory).

LCD yang umum, ada yang panjangnya hingga 40 karakter (2x40 dan 4x40), dimana kita menggunakan DDRAM untuk mengatur tempat penyimpanan karakter tersebut.

Tabel 3.1 Peta memori LCD

Gambar 3.3 Rangkaian Skematik dari LCD ke mikrokontroler

Pada gambar rangkaian di atas pin 1 dihubungkan ke Vcc (5V), pin 2 dan 16 dihubungkan ke Gnd (Ground), pin 3 merupakan pengaturan tegangan Contrast dari LCD, pin 4 merupakan Register Select (RS), pin 5 merupakan R/W (Read/Write), pin 6 merupakan Enable, pin 11-14 merupakan data. Reset, Enable, R/W dan data dihubungkan ke mikrokontroler Atmega8535. Fungsi dari potensiometer (R2) adalah untuk mengatur gelap/terangnya karakter yang ditampilkan pada LCD.

3.5 Rangkaian Sensor Jarak SR-04

Sensor jarak yang digunakan adalah sensor SR-04 ultrasonic. Sensor ini dapat mengukur jarak hingga 3 meter, sensor ini menggunakan motode pemancaran dan penerimaan sinyal suara ultrasonic. Gambar sensor jarak SR-04 ditunjukkan pada gambar berikut ini:

Gambar 3.4 Rangkaian Sensor Jarak SR-04

Sensor jarak SR-04 ultrasonic ini didesign untuk mengukur jarak. Namun jarak yang diukur hanya sebatas 3 meter. Sensor ini terdiri dari 3 pin, yaitu satu pin untuk Vcc 5 Volt, satu pin untuk ground dan satu pin untuk sinyal.

3.6 Rangkaian Potensiometer

Rangkaian potensiometer ini digunakan sebagai sensor sudut. Perubahan tahanan potensiometer ini akan mempengaruhi nilai tegangan masukan pada ADC. Jika tegangan input pada ADC kecil maka sudutnya akan semakin kecil juga. Tegangan input dari baterai akan melewati tahanan potensiometer, jika tahanan potensiometer besar maka tegangan input pada ADC akan semakin besar juga, jika tegangan input ADCnya kecil maka sudutnya aka semakin kecil juga.

MIKROKONTROLER 1 3 2 + 5 v GND

3.7 Perancangan Program

Pada perancangan ini digunakan Code Vision AVR sebagai editor dan compiler dari program yang dirancang. Untuk memulai memprogram Code Vision AVR dilakukan langkah sebagai berikut :

1. Buka software CodeVisionAVR (terdapat Shortcut pada Desktop). 2. Pilih menu File  New dan pilih Project kemudian tekan OK.

Gambar 3.6 Pemilihan tipe file

3. Kemudian pilih Yes saat ada pilihan menggunakan CodeWizardAVR, seperti tampak pada gambar berikut.

Gambar 3.7 Dialog konfirmasi tentang penggunaan CodeWizardAVR

4. Pada settingan CodeWizardAVR, atur konfigurasi chip menggunakan ATMega8535 sesuai dengan yang ada pada modul, dengan nilai clock 11,059200 MHz.

Gambar 3.8 Pemilihan Tipe Mikrokontroller dan Kristal

5. Kemudian pada tab Port, PortA, pada Bit 4, 5, 6 dan 7 diatur sebagai output. Port A digunakan untuk mengendalikan palang masuk dan keluar. Tampilannya sebagai berikut.

Gambar 3.9 Setting PORTA

Gambar 3.10 Setting penempatan LCD pada PORTC

7. Setelah itu, pilih menu File  Generate, Sava and Exit, dan simpan file dengan nama sesuai keinginan uji.

Gambar 3.11 Generate, Save dan Exit

8. Akan muncul file.c yang akan digunakan untuk pemrograman. Selanjutnya pada file ini dituliskan program sesuai dengan yang diinginkan.

3.8 Cara Kerja Sistem Keseluruhan

Fungsi dari sensor ultrasonik tersebut adalah sebagai alat penentu jarak. Dimana dengan sensor ultrasonik inilah mengukur jarak antara alat dengan suatu bangunan yang dikontrol oleh mikrokontroler Atmega8535.

A

Objek

Potensiometer

Ultrasonik Laser Point

Gambar 3.12 Rancangan Alat

Prinsipnya cukup mudah dengan menggunakan rumus matematikanya yaitu rumus Trigonometri maka tinggi suatu bangunan dapat ditentukan yang akan ditampilkan pada LCD. Dengan rumus trigonometri dibawah ini.

Sin = ( ) (4)

Cos = ( ) (5)

Tan = ( (6)

Dengan menggunakan sensor ultrasonik sebagai sensor mengukur jarak dan potensiometer sebagai sensor sudut yang dipasang langsung dengan laser pointer untuk menunjukkan titik tertinggi pengukuran atau dalam segitiga siku-siku dengan laser sebagai sisi miring. Maka setelah dapat jarak dan sudut maka tinggi suatu bangunan dapat ditentukan.

C Jarak Tin gg i Mirin g A B

3.9 Diagram Alir Sistem

Gambar 3.14 Diagram Alur Sistem

START

Baca ADC (Potensiometer)

Konversi nilai ADC Ke sudut

END

Baca Ultrasonik (jarak)

Tinggi = Tan sudut x Jarak+2

Tampilkan Sudut

Tampilkan Jarak

Tampilkan Tinggi Tampilkan Tan Sudut

BAB 4

HASIL DAN PEMBAHASAN

4.1 Pengujian Sensor Jarak SR-04

Pengujian sensor jarak SR-04 ini dilakukan dengan media pantul untuk mengukur jauh jarak halangan yang di diterima oleh sensor. Berikut ini data tabel pengukuran jarak sensor jarak SR-04 :

Tabel 4.1 Hasil Pengujian Sensor Jarak SR-04 dengan Media Uji Dinding

Media Pantul Pengukuran Secara Teori (Cm) Hasil Pembacaan Sensor (Cm) % Ralat

DINDING 3 cm 3 cm 0% 15 cm 15 cm 0% 30 cm 30 cm 0% 45 cm 45 cm 0% 60 cm 59 cm 1,6% 75 cm 73 cm 2,6% 90 cm 88 cm 2,2% 105 cm 102 cm 2,8% 120 cm 116 cm 3,3% 135 cm 133 cm 1,4% 150 cm 146 cm 2,6% 165 cm 164 cm 0,6% 180 cm 178 cm 1,1% 195 cm 193 cm 1% 210 cm 207 cm 1,4% 225 cm 223 cm 0,8% % Ralat rata-rata 1,3 % Dari data di atas dapat dihitung persentase ralat dari sensor jarak ultrasonic SR-04 dengan menggunakan rumus sebagai berikut :

% Ralat = X 100%

Maka dapat kita ketahui besar persentase ralatnya ialah :

% Ralat = X 100% = 2,2 %

Dari tabel 4.2 maka kita dapat melihat bahwa dalam pengukuran jarak oleh sensor jarak ultrasonic SR-04 dengan media pantul dinding memiliki besar nilai ralat rata-rata sekitar 1,3 %.

4.2 Pengujian Potensiometer Sebagai Sensor Sudut

Pengujian ini bertujuan untuk mengetahui linearitas perubahan tegangan keluaran potensiometer terhdap sudut yang dihasilkan, hasil pengujian seperti pada tabel 4.2.

Tabel 4.2 Pengujian Tegangan Potensiometer Terhadap Sudut Pengukuran. Tegangan input (V)x Sudut pengukuran (derajat)

3,8 1 19,3 5 38,7 10 58,1 15 77,5 20 96,8 25 116,2 30 135,6 35 155,0 40 174,4 45 193,8 50 213,1 55 232,5 60 251,9 65 271,3 70

290,6 75

310,0 80

329,4 85

348,8 90

Tegangan keluaran pada potensiometer akan mempengaruhi besar kecilnya nilai input ADC, sehingga akan menentukan sudut yang akan dihasilkan pada saat pengukuran. Hasil terlihat pada gambar berikut:

Gambar 4.1 Grafik perbandingan tegangan input terhadap perubahan sudut pengukuran.

Dari hasil pengujian perbandingan tegangan input dengan perubahan sudut pengukuran diperoleh persamaan garis lurusnya y = 4,933x – 9,488, dengan garis regresi R² = 0.999. Maka dapat disimpulkan semakin besar tegangan yang diberikan maka akan semakin besar sudut yang dihasilkan. Inilah perubahan tegangan yang linear dengan sudut yang dihasilkan.

4.3 Pengujian penentuan ketinggian.

Pengujian ini bertujuan untuk mengetahui linearitas perubahan jarak pada sensor ultrasonik dengan perubahan sudut pada sensor potensiometer, Semakin besar jarak maka semakin kecil sudut untuk penentuan tinggi yang merupakan

y = 4.933x - 9.488 R² = 0.999 -10 0 10 20 30 40 50 0 5 10 15 su d u t p e n g u kr a n tegangan input

Grafik pengujian tegangan potensiometer terhadap sudut pengukuran

Sudut pengukuran (derajat)

Linear (Sudut pengukuran (derajat))

dasar dari rumus trigonometri untuk mengetahui tiap sisi pada segitiga siku-siku. hasil pengujian seperti pada tabel berikut:

Tabel 4.3 Pengujian Penentuan Ketinggian.

Jarak (cm) Sudut (derajat) Tangen sudut Tinggi (cm) Tinggi teori (cm)

25,32 16 0,29 9,43 10 62 1,96 50,5 50 78 4,69 101,02 100 83 8,09 205,01 200 84 9,85 251,4 250 50,03 11 0,19 10,11 10 46 1,03 51,24 50 64 2,05 102,12 100 73 3,26 153,30 150 76 4,01 201,12 200 79 5,14 255,05 250 81 6,05 303,32 300

Dari data di atas dapat dihitung persentase ralat dari tabel pengujian dengan menggunakan rumus sebagai berikut :

% Ralat = X 100%

Maka dapat kita ketahui besar persentase ralatnya ialah :

% Ralat = X 100% = 1,1%

Dari tabel 4.3 maka kita dapat melihat bahwa dalam pengukuran ketinggian memiliki keakuratan pengukuran sebesar 98,9%.

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Dari laporan tugas akhir yang berjudul “Perancangan Sistem Penentuan Ketinggian Suatu Bangunan Dengan Laser Pointer Dan Sensor Ultrasonik Berbasis Mikrokontroler Atmega8535” ini dapat diambil kesimpulan sebagai

berikut :

1. Dalam perancangan alat penentuan ketinggian suatu benda ini mampu mengukur dengan keakuratan pengukuran dari jarak 50,03 cm dengan sudut mulai dari 11 sampai 81 derajat sebesar 98,9 %.

2. Dengan menggunakan mikrokontroler sebagai unit prosesor untuk mengontrol sensor dan juga dalam perhitungan maka alat penentuan ketinggian suatu benda ini juga dapat digunakan untuk penentuan ketinggian suatu bangunan yang dilakukan dalamm indor atau dalam ruangan.

3. Sensor ultrasonik dapat digunakan untuk pengukuran jarak dengan nilai ralat 1,3%, dan potensiometer dapat digunakan sebagai sensor sudut dengan nilat ralat 0,24% dalam pengukuran sudut. Sensor ultrasonik dan potensiometer dapat diaplikasikan dalam penentuan ketinggian suatu bennda dengan menggunakan rumus trigonometri untuk menentukan sisi tinggi pada segitiga siku-siku. Potensiometer sebagai sensor sudut dapat diaplikasikan dalam mengukur kemiringan sudut suatu benda.

5.2 Saran

Adapun saran pada alat penentu ketinggian bangunan, dalam penentuan jarak masih pada jarak yang dekat dan penetuan ketinggian pada benda yang tegak lurus maka dari ini sesungguhnya masih memiliki banyak kelemahan baik secara fisik maupun system kerjanya. Oleh karena itu masih perlu dilakukan kajian-kajian dan uji coba lagi agar diperoleh alat yang lebih sempurna.

DAFTAR PUSTAKA

Budhiarto, Widodo.2004. Interfacing Komputer dan Mikrokontroller. Jakarta:Elex Media Komputindo

Budioko, Totok. 2005. Belajar Dengan Mudah dan Cepat Pemrograman Bahasa C. Jakarta : Gava Media

Carlin, Benson. 1960. Ultrasonics. Second Edition. New York: McGRAW-HILL Book Company, INC.

Datasheet Mikrokontroler ATMega 8535

Datasheet Ultrasonic Ranging Module HC-SR04

Endra pitowarno. 2006. Teknik desain robot. Yogyakarta: ANDI

Held G. 2008. Light Emitting Diode Technology and Applications. CRC Press Journal.

Iswanto. 2008. Desaign Dan Implementasi Sistem Embeded Mikrokontroler Atmega 8535. Yogyakarta: Gava Media

James, F Cox 2001. Fundamentals Of Linear Electronics: Integrated And Discrete.

Knoll, F.G. 2010. Radiation Detection And Measurement.

Pitowarno, Endra.2006. Robotika Desain, Kontrol, Dan Kecerdasan Buatan. Yogyakarta: Andi

Setiawan, 2011. 20 Aplikasi Mikrokontroler ATMega 8535 & ATMega 16 Menggunakan Bascom-AVR. Yogyakarta: Andi.

Sumber – Sumber dari internet (www.Atmel.com), 16 Januari 2014, 08.16 Young, Hugh D. 2001. Fisika Universitas. Jakarta: Erlangga

http://elektronika-dasar.web.id/teori-elektronika/lcd-liquid-cristal-display Diakses pada 18 Januari 2014,20.34

Lampiran Program

/***************************************************** This program was produced by the

CodeWizardAVR V1.25.8 Professional

Automatic Program Generator

© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com

Project :

Version :

Date : 6/5/2014

Author : Faisal g sibuea

Company : phisic inside Comments:

Chip type : ATmega8535 Program type : Application

Clock frequency : 11.059200 MHz

Memory model : Small

External SRAM size : 0

Data Stack size : 128

*****************************************************/

#include <mega8535.h>

#include <math.h>

unsigned char tampil[16];

unsigned char sudut,temp;

unsigned int count=0;

float jrk;

float n_tan, tinggi;

// Alphanumeric LCD Module functions

#asm

.equ __lcd_port=0x15 ;PORTC #endasm

#include <lcd.h>

#include <delay.h>

#define ADC_VREF_TYPE 0x60

// Read the 8 most significant bits

// of the AD conversion result

unsigned char read_adc(unsigned char adc_input)

{

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

// Delay needed for the stabilization of the ADC input voltage

// Start the AD conversion

ADCSRA|=0x40;

// Wait for the AD conversion to complete

while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10;

return ADCH; }

// Declare your global variables here

void sensor() { count=0; PORTB.0=1; delay_us(5); PORTB.0=0; while(PINB.1==0){}; while(PINB.1==1) {count++;}; jrk=count*0.015748; }

float konversi(float deg)

{ float rad;

rad=deg/57.325;

}

void main(void)

{

// Declare your local variables here

// Input/Output Ports initialization

// Port A initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTA=0x00; DDRA=0x00;

// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTB=0x02;

DDRB=0x01;

// Port C initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTC=0x00;

// Port D initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTD=0x00; DDRD=0x00;

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: Timer 0 Stopped

// Mode: Normal top=FFh // OC0 output: Disconnected

TCCR0=0x00;

TCNT0=0x00;

OCR0=0x00;

// Timer/Counter 1 initialization

// Clock source: System Clock

// Clock value: Timer 1 Stopped

// Mode: Normal top=FFFFh

// OC1A output: Discon.

// OC1B output: Discon. // Noise Canceler: Off

// Input Capture on Falling Edge

// Input Capture Interrupt: Off

// Compare A Match Interrupt: Off // Compare B Match Interrupt: Off

TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization

// Clock source: System Clock

// Clock value: Timer 2 Stopped // Mode: Normal top=FFh

// OC2 output: Disconnected

ASSR=0x00;

TCCR2=0x00;

TCNT2=0x00;

OCR2=0x00;

// External Interrupt(s) initialization

// INT1: Off

// INT2: Off MCUCR=0x00;

MCUCSR=0x00;

// 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;

// ADC initialization

// ADC Clock frequency: 691.200 kHz

// ADC Voltage Reference: AVCC pin // ADC High Speed Mode: Off

// ADC Auto Trigger Source: None

// Only the 8 most significant bits of

// the AD conversion result are used

ADMUX=ADC_VREF_TYPE & 0xff;

ADCSRA=0x84; SFIOR&=0xEF;

lcd_init(16);

while (1)

{

// Place your code here

sensor(); temp=read_adc(0); sudut=temp-129; n_tan=tan(konversi(sudut)); tinggi=(jrk*n_tan)+2;

lcd_gotoxy(0,0); sprintf(tampil,"Sud:%d", sudut); lcd_puts(tampil); lcd_putchar(0xdf);

lcd_gotoxy(8,0); sprintf(tampil,"Tan:%0.2f", n_tan); lcd_puts(tampil);

Dokumen terkait