Perancangan Waterpass Digital untuk Mengukur Kemiringan Permukaan Menggunakan Sensor MPU6050 Berbasis ATmega8535

(1)

LAMPIRAN A

Pada gambar A. di bawah ini menjelaskan tentang layout atau susunan komponen yang mencakup semuanya alat pengukur Indeks Massa Tubuh selanjutnya dapat di lihat pada gambar sebagai berikut :


(2)

LAMPIRAN A

( Lanjutan )

Pada gambar B di bawah ini merupakan suatu output dari sebuah alat pengukur Indeks Massa Tubuh dapat di lihat pada form di bawah ini sebagai berikut :


(3)

LAMPIRAN A

( Lanjutan )

Pada gambar C di bawah ini merupakan output Database alat pengukur Indeks Massa Tubuh dapat di lihat pada form di bawah ini sebagai berikut :


(4)

LAMPIRAN B

Pada lampiran B ini terdapat 2 program,yaituprogram yang ada di dalam mikrokontroller dengan menggunakan bahasa C sebagai pembaca data dari sensor ultrasonic dan sensor load cell dan program VB yang di gunakan pada PC sebagai output data terakhirselanjutnya dapat di perhatikan proram sebagai berikut :

Program Bahasa C ( Mikrokontroller )

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

CodeWizardAVR V2.05.3 Standard Automatic Program Generator

© Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com

Project : Version :

Date : 1/26/2013 Author : user Company : free Comments:

Chip type : ATmega8535 Program type : Application

AVR Core Clock frequency: 11.059200 MHz Memory model : Small

External RAM size : 0 Data Stack size : 128

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

#include <mega8535.h> #include <delay.h>


(5)

#include <stdio.h>

#define ADC_VREF_TYPE 0x40

// Read the AD conversion result

float read_adc(unsigned char adc_input) {

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

// Delay needed for the stabilization of the ADC input voltage delay_us(10);

// Start the AD conversion ADCSRA|=0x40;

// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10; return ADCW; }

// Declare your global variables here #define SIG_out PORTB.4 #define SIG_in PINB.4 #define SIG_dir DDRB.4

float US,nilai,nil_ber,nilai3; unsigned int i;

void tinggi(void) {

SIG_dir = 1; // set variabel SIG sebagai output SIG_out = 0; //memulai pengiriman pulsa delay_us(20); //

SIG_out = 1; //

SIG_dir = 0; // set SIG pin sebagai input TCNT1=0;


(6)

while (SIG_in); // tunggu pulsa kembali TCCR1B=0x02; //

while ((!SIG_in) && !(TIFR & 0x80)); // TCCR1B=0x00; // hentikan timer

US = TCNT1; // simpan nilai TCNT1 ke variabel US US = US/50; // convert to CM

US = 188-US; }

void berat(void) {

nil_ber=0;

for(i=0;i<=10000;i++) {

nilai=read_adc(0); nil_ber=nil_ber+nilai; }

nil_ber=nil_ber/10000; }

void kirim (void) {

printf("%0.1f \r",nil_ber); //kirim nilai berat secara serial printf("%0.1f \r",US); //kirim nilai tinggi secara serial }

void main(void) {

// Declare your local variables here


(7)

// 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=0x00;

DDRB=0x00;

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

DDRC=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=0xFF // OC0 output: Disconnected TCCR0=0x00;

TCNT0=0x00; OCR0=0x00;


(8)

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off

// Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // 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: Timer2 Stopped // Mode: Normal top=0xFF // OC2 output: Disconnected ASSR=0x00;

TCCR2=0x00; TCNT2=0x00; OCR2=0x00;


(9)

// External Interrupt(s) initialization // INT0: Off

// INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;

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

// USART initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On

// USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00;

UCSRB=0x18; UCSRC=0x86; UBRRH=0x00; UBRRL=0x47;

// Analog Comparator initialization // Analog Comparator: Off

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

SFIOR=0x00; // ADC initialization

// ADC Clock frequency: 86.400 kHz // ADC Voltage Reference: AVCC pin // ADC High Speed Mode: Off

// ADC Auto Trigger Source: Free Running ADMUX=ADC_VREF_TYPE & 0xff;


(10)

ADCSRA=0xA7; SFIOR&=0x0F;

// SPI initialization // SPI disabled SPCR=0x00;

// TWI initialization // TWI disabled TWCR=0x00;

while (1) { tinggi(); berat(); kirim(); } }


(11)

Program Visual Basic (VB 6,0)

Dim data As ListItem Dim pilih As Integer

Private Sub cmd_browse_Click() With cd

.Filter = "All Files (*.*)|*.*|Jpeg Files (*.jpg)|*.jpg|Png Files(*.*)|*.png|Bitmap Files(*.*)|*.bmp"

'Filter buat menyaring gambar .FilterIndex = 2

.ShowOpen

If .FileName <> "" Then

Image1.Picture = LoadPicture(.FileName) 'Mengambil gambar pada Disk D ato C Label7.Caption = cd.FileName

End If End With End Sub

Private Sub cmd_canc_Click() Form_Load

End Sub

Private Sub cmd_operasi_Click(Index As Integer) Dim Weight, High As Double

p = Val(Text2(1).Text) m = (p + 40) / 100 l = Val(Text2(0).Text) n = l / 5

weights = n Heights = m

k = weights / (Heights ^ 2) Text2(3).Text=k

If k < 17 Then Text3 = "Kurus" End If

If k >= 17 Then If k <= 18.4 Then Text3 = "Kurus ringan" End If

End If

If k >= 18.5 Then If k <= 25 Then Text3 = "Normal" End If


(12)

If k >= 25.1 Then If k <= 27 Then

Text3 = "Gemuk ringan" End If

End If

If k > 27 Then

Text3 = "Gemuk berat" End If

Text2(3).Text = k Select Case Index Case 0 'tambah aktif

txt_nim.Enabled = True txt_nim.SetFocus

cmd_simptamb.Enabled = True cmd_operasi(0).Enabled = False cmd_operasi(1).Enabled = False cmd_operasi(2).Enabled = False Case 1 'edit

txt_nim.Enabled = False cmd_simpdit.Enabled = True cmd_operasi(0).Enabled = False cmd_operasi(2).Enabled = False

txt_no.Text = lv.SelectedItem.Text

txt_nama.Text = lv.SelectedItem.SubItems(1) txt_alamat.Text = lv.SelectedItem.SubItems(2)

If lv.SelectedItem.SubItems(3) = opt_kel(0).Caption Then opt_kel(0).Value = True

Else

opt_kel(1).Value = True End If

Text2(0).Text = lv.SelectedItem.SubItems(4) Text2(1).Text = lv.SelectedItem.SubItems(5) Text2(3).Text = lv.SelectedItem.SubItems(6) On Error GoTo ed

Image1.Picture = LoadPicture(lv.SelectedItem.SubItems(7)) Label7.Caption = lv.SelectedItem.SubItems(7)

aktif

Exit Sub ed:

aktif

MsgBox "Direktori/Foto telah diPindah", vbInformation, "Pesan" Case 2 'hapus

If lv.SelectedItem.Selected = False Then

a = MsgBox("Pilih yang akan di Hapus", vbInformation, "Pesan") Else


(13)

pilih = 0

For m = 1 To lv.ListItems.Count

If lv.ListItems(m).Selected = True Then pilih = pilih + 1

End If Next m

For m = 1 To lv.ListItems.Count

If lv.ListItems(m).Selected = True Then

del = "Delete From database where NO ='" &lv.ListItems(m).Text & "'"

MsgBox "Data yang Anda Pilih Terhapus", vbInformation, "Pesan" D_E.Con.Execute del 'lv.ListItems.Clear D_E.rsTab_MHS.Requery End If Next m lv.ListItems.Clear D_E.rsTab_MHS.Requery Call tampil_data End If End Select End Sub

Private Sub cmd_simpdit_Click() If txt_no.Text = "" Then

MsgBox "Isi no ", vbInformation, "Pesan" ElseIf txt_nama.Text = "" Then

MsgBox "Isi Nama anda", vbInformation, "Pesan" ElseIf txt_alamat.Text = "" Then

MsgBox "Isi Alamat anda", vbInformation, "Pesan"

ElseIf opt_kel(0).Value = False And opt_kel(1).Value = False Then MsgBox "Isi Jenis Kelamin anda", vbInformation, "Pesan" ElseIf Text2(0).Text = "" Then

MsgBox "Berat belum terisi", vbInformation, "Pesan" ElseIf Text2(1).Text = "" Then

MsgBox "tinggi belum terisi", vbInformation, "Pesan" ElseIf Image1.Picture = 0 Then

MsgBox "Isi Foto anda", vbInformation, "Pesan" Else

With D_E.rsTab_MHS .MoveFirst

.Find "NO= '" + txt_nim.Text + "'" !NO = txt_no.Text

!Nama = txt_nama.Text !Alamat = txt_alamat.Text

If opt_kel(0).Value = True Then !Jenis_kelamin = opt_kel(0).Caption


(14)

!Jenis_kelamin = opt_kel(1).Caption End If

!Berat = Text2(0).Text !Tinggi = Text2(1).Text !IMT = Text2(3).Text !Foto = Label7.Caption .Update .Requery

MsgBox "Data Berhasil di Edit", vbInformation, "Pesan" hapus

tampil_data End With

End If End Sub

Private Sub cmd_simptamb_Click() If txt_no.Text = "" Then

MsgBox "Isi no", vbInformation, "Pesan" ElseIf txt_nama.Text = "" Then

MsgBox "Isi Nama anda", vbInformation, "Pesan" ElseIf txt_alamat.Text = "" Then

MsgBox "Isi Alamat anda", vbInformation, "Pesan"

ElseIf opt_kel(0).Value = False And opt_kel(1).Value = False Then MsgBox "Isi Jenis Kelamin anda", vbInformation, "Pesan" ElseIf Text2(0).Text = "" Then

MsgBox "Berat belum terisi", vbInformation, "Pesan" ElseIf Text2(1).Text = "" Then

MsgBox "tinggi belum terisi", vbInformation, "Pesan" ElseIf Image1.Picture = 0 Then

MsgBox "Isi Foto anda", vbInformation, "Pesan" Else

With D_E.rsTab_MHS

.Find "NO= '" + txt_no.Text + "'" If .EOF Then

.AddNew !NO = txt_no.Text !Nama = txt_nama.Text !Alamat = txt_alamat.Text

If opt_kel(0).Value = True Then !Jenis_kelamin = opt_kel(0).Caption Else

!Jenis_kelamin = opt_kel(1).Caption End If

!Berat = Text2(0).Text !Tinggi = Text2(1).Text !IMT = Text2(3).Text !Foto = Label7.Caption


(15)

Daftar Pustaka

Bejo, Agus, C&AVR Rahasia Kemudahan Bahasa Cdalam Mikrokontroler ATMega8535. Graha Ilmu,Yogyakarta, 2008.

Charles L. Philips, Royce D. Harbor, Sistem Kontrol, Penerbit PT Prenhallindo, Jakarta,

Interfacing the serial/ RS 232 Port/ http : // www. beyondlogic.org/ serial/

Prentice- hall, inc., Englewood Cliffs Nj, Electronic Instrumentasi & Measurement Tecniques, Penerbit Erlangga, Jakarta, 1999

Retna Prasetia dan Catur Edi Widodo,Teori dan Praktek Interfacing Port Parallel & Port SerialKomputer dengan VB 6.0, Penerbit Andi Yogyakarta

Suhata, ST, VB Sebagai Pusat Kendali Peralatan Elektronik, Penerbit Elex Media Komputindo, Jakarta, 2005.

Wolfgang link, Pengukuran, pengendalian & pengaturan dengan PC, Penerbit Elex Media Komputindo, Jakarta, 1993


(16)

\a Bunyi bel (speaker komputer) \b Mundur satu spasi (backspace) \f Ganti halaman (form feed) \n Ganti baris baru (new line)

\r Ke kolom pertama baris yang sama (carriage return) \t Tab horizontal

\’ Karakter petik tunggal \v Tab vertical

\0 Nilai kosong (NULL) \” Karakter petik ganda

\\ Garis miring terbalik (backslash) \? Karakter tanda Tanya

\DDD Menyatakan sebuah karakter yang nilai ASCII nya sama dengan nilai octal DDD

\xHH Menyatakan sebuah karakter yang nilai ASCII nya sama dengan nilai heksadesimal HH

2.4.7 Liquid Crystal Display (LCD)

LCD (Liquid cristal display) adalah salah satu komponen elektronika yang berfungsi sebagai tampilan suatu data, baik karakter, huruf ataupun grafik. Jenis LCD yang dipakai pada alat ini adalah LCD M1632.LCD terdiri dari dua bagian, yang pertama merupakan panel LCD sebagai media penampil informasi dalam bentuk huruf/angka dua baris, masing–masing baris bisa menampung 16 huruf/angka.LCD (Liquid Crystal Display) adalah modul penampil yang banyak digunakan karena tampilannya menarik. LCD yang umum, ada yang panjangnya hingga 40 karakter (2x40 dan 4x40), dimana

kita menggunakan DDRAM untuk mengatur tempat penyimpanan

tersebut.(Gamayel.Rizal, 2007). Di bawah ini adalah gambar LCD 2x16 karakter.

Gambar 2.6.LCD Karakter 2 x 16

BAB III


(17)

3.1 Analisis Kebutuhan

Berdasarkan identifikasi kebutuhan yang ada, maka diperoleh beberapa analisis kebutuhan terhadap alat yang dibuat sebagai berikut:

1. Downloader Atmega8535 adalah rangkaian yang berfungsi sebagai sarana penginput program assembler yang akan mengendalikan alat. Rangkaian ini akan memasukkan kode – kode assembler ke dalam mikrokontroler sehingga alat dapat dikendalikan oleh mikrokontroler.

2. Rangkaian display merupakan rangkaian penampil hasil dari hasil pengolahan data yang ditampilkan melalui LDC

3. Sensor MPU-6050 bekerja dengar cara mendeteksi penyimpangan gaya magnet bumi lalu diaplikasikan ke kemiringan. Sensor ini mampu mengukur sudut kemiringan antara - 600 sampai +600 dan repeatability sebesar ± 0,1

3.2 Perancangan Blok Diagram Sistim

Diagram merupakan pernyataan hubungan yang berurutan dari suatu atau lebih komponen yang memiliki kesatuan kerja tersendiri, dan setiap blok komponen mempengaruhi komponen yang lainnya. Diagram blok merupakan salah satu cara yang paling sederhana untuk menjelaskan cara kerja dari suatu sistem .Dengan diagram blok kita dapat menganalisa cara kerja rangkaian dan merancang hardware yang akan dibuat secara umum.

Adapun diagram blok dari system yang dirancang,seperti yang diperlihatkan pada gambar 3.1

Gambar 3.1. Diagram Blok Sistim

3.3 Fungsi Tiap Blok

1. Blok Sensor : Sebagai input data BATERAI

SENSOR Mpu6050

ATMEGA


(18)

2. Blok mikrokontroller : Mengolah data dari sensor Ketebalan 3. Blok LCD : Penampil data hasil akhir

3.4 Rangkaian Mikrokontroler ATMega8535

Rangkaian sistem minimum mikrokontroler ATMEGA 8535 dapat dilihat pada

Gambar 3.2 Rangkaian sistem minimum mikrokontroler ATMEGA 8535

Dari gambar 3.2, Rangkaian tersebut berfungsi sebagai pusat kendali dari seluruh sistem yang ada.Komponen utama dari rangkaian ini adalah IC Mikrokontroler ATMega8535.Semua program diisikan pada memori dari IC ini sehingga rangkaian dapat berjalan sesuai dengan yang dikehendaki.

Pin 12 dan 13 dihubungkan ke XTAL 11,0592 MHz dan dua buah kapasitor 30 pF. XTAL ini akan mempengaruhi kecepatan mikrokontroler ATMega8535 dalam mengeksekusi setiap perintah dalam program. Pin 9 merupakan masukan reset (aktif rendah). Pulsa transisi dari tinggi ke rendah akan me-reset mikrokontroler ini.

3.5 Diagram Alir Program


(19)

Gambar 3.3 Flowchart Cara Kerja Sistem

Keterangan :

-Inisialisasi merupakan proses awal yang dilakukan untuk menyimpan indeks penunjuk stack.

-Konversi adalah suatu perubahan dari sistem yang satu dengan sistem yang lain. -Pengukuran adalah kegiatan menggunakan alat-alat ukur dengan tujuan mengetahui

nilai suatu besaran.

BAB IV

PENGUJIAN ALAT DAN ANALISA RANGKAIAN

Inisialisasi

Sistem

Baca data dari Sensor

Konversikan ke kemiringan

Tampilkan nilai

pengukuran


(20)

4.1 Pengujian Rangkaian Mikrokontroler ATMega8535

Pengujian pada rangkaian mikrokontroler ATMega8535 ini dapat dilakukan dengan menghubungkan rangkaian ini dengan rangkaian power supply sebagai sumber tegangan. Kaki 40 dihubungkan dengan sumber tegangan 5 volt, sedangkan kaki 20 dihubungkan dengan ground. Kemudian tegangan pada kaki 40 diukur dengan menggunakan Voltmeter. Dari hasil pengujian didapatkan tegangan pada kaki 40 sebesar 4,9 volt. Langkah selanjutnya adalah memberikan program sederhana pada mikrokontroler ATMega 8535, program yang diberikan adalah sebagai berikut:

#include <mega8535.h> #include <delay.h> #include <stdio.h> while (1)

{

// Place your code here PORTC=0x00;

Delay_ms(1000); PORTC=0xFF; Delay_ms(1000);

}

4.2 Pengujian dan Analisa Rangkaian 4.2.1 Pengujian Mpu6050 Sensor

Pengujian ini dilakukan untuk melihat respon sensor terhadapperubahankemiringanyangterjadi.

Tabel 4.1 Hasil Pengujian Sensor

No Pengujian Sebenarnya

Pengujian Sensor

% Error

1 17 18,32 0,077

2 30 31,61 0,053

3 65 66,27 0,019

Pada data ini terdapat perbedaan antara data yang didapat dari nilai yang tertera dengan data yang dihasilkan oleh alat, dimana data yang dihasilkan oleh alat memiliki % deviasi = hal ini dapat dilihat dari hasil analisis yang diperoleh


(21)

... % kesalahan = ∣ ���� −���� ���� ������� −���� ����������

�������������� 100%

• Untuk nilai IMT 20,4

% kesalahan =�18,32−17

17 � x 100 % = 0,077 %

• Untuk nilai IMT 26,4

% kesalahan =�31,36−30

30 � x 100 % = 0,053 %

• Untuk nilai IMT 22,2

% kesalahan =�66,27−65

65 � x 100 % = 0,019 %

Rata-rata kesalahan = persen total keseluruhan

����� ��������� x 100 % =

0,007+0,053+0,019

3 = 0,049%

Cara kerja sensor Mpu6050 :

Sensor kemiringan yang digunakan adalah sensor Mpu6050 yang bekerja dengar cara mendeteksi penyimpangan gaya magnet bumi lalu diaplikasikan ke kemiringan. Sensor ini mampu mengukur sudut kemiringan antara - 600 sampai +600 dan repeatability sebesar ± 0,1

4.2.2 Pengujian LCD 16x2

Pengujian LCDdilakukanuntukmengetahuiapakah LCD 16x2 yang digunakan dalam keadaan baik. Dalam percobaan adalah proses penampilan menu pada alat ini.


(22)

BAB V

KESIMPULAN

5.1 Kesimpulan

Berdasarkan pengamatan dan pembahasan pada pembuatan tugas akhir ini, makapenulis dapat memberikan kesimpulan sebagai berikut:

1. Sistem secara keseuruhan telah dapat bekerja dengan baik. Telah dilakukan pengujian dengan tingkat persen ralat rata-rata sebesar 0,049%.

2. Alat belum bisa mengukur kerataan sumbu,y dan z hanya dapat mengukur kerataan sumbu x.

2. Adanya perbedaan hasil kemiringan antara tampilan pada LCD dengan hasil pengukuran secara manual. Pada pengujian pertama % error sebesar 0,077 % pengujian kedua sebesar 0,053 % dan pada pengujian ketiga sebesar 0,019 %.


(23)

BAB II

LANDASAN TEORI

2.1.Sensor Mpu6050

cahaya atau sinar, magnetis, dan kimia menjadi tegangan serta arus listrik. berfungsi sebagai alat untuk mendeteksi dan juga untuk mengetahui magnitude. Transduser sendiri memiliki arti mengubah, resapan dari bahasa latin traducere Bentuk perubahan yang dimaksud adalah kemampuan merubah suatu energi kedalam bentuk energi lain

Sensor Mpu6050 adalah sensor mampu membaca kemiringan sudut berdasarkan data dari sensor accelerometer dan sensor gyroscope.Sensor ini juga dilengkapi oleh sensor suhu yang dapat digunakan untuk mengukur suhu dikeadaan sekitar.Jalur data yang digunakan pada sensor ini adalah jalur data I2C.

Sensor MPU-6050 berisi sebuah MEMS Accelerometer dan sebuah MEMS Gyro yang saling terintegrasi. Sensor ini sangat akurat dengan fasilitas hardware internal 16 bit ADC untuk setiap kanalnya. Sensor ini akan menangkap nilai kanal axis X, Y dan Z bersamaan dalam satu waktu.

Adapun spesifikasi dari sensor Mpu6050 yaitu :

- Sensitifitas Accelerometer yang dapat dipilih mulai 2/4/8 samapai 16 g - Sensitifitas Gyrocope yang dapat dipilih mulai 250/500/1000 sampai 2000

degrees/s

- Range 16 bit untuk kedua sensor

- Data rate output hingga 1000Hz, dilengkapi digital low pass filter dan memiliki frekuensi sudut maksimum 256Hz.

- Acceleration range: ± 2 ± 4 ± 8 ± 16 g


(24)

2.2 Regulator

Regulator adalah rangkaian regulasi atau pengatur tegangan keluaran dari sebuahcatu daya agar efek darinaik atau turunnya tegangan jala-jala tidak mempengaruhitegangan catu daya sehingga menjadi stabil.

2.3 Mikrokontroler ATMega 8535

Mikrokontroler merupakan sebuah single chip yang didalamya telah dilengkapi dengan CPU (Central Prosessing Unit); RAM ( RandomAcces Memory); ROM ( Readonly Memory), Input, dan Output, Timer\ Counter, Serial com port secara spesifik digunakan untuk aplikasi –aplikasi control dan buka aplikasi serbaguna.Mikrokontroler umumnya bekerja pada frekuensi 4MHZ-40MHZ. perangkat ini sering digunakan untuk kebutuhan kontrol tertentu seperti pada sebuah penggera motor.

Read only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dengan keperluannya, sesuai dengan susunan MCS-51. Memorypenyimpanan program dinamakan sebagai memory program.Random Acces Memory (RAM) isinya akan begitu sirna IC kehilangan catu daya dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakaiuntuk menyimpan data ini disebut sebagai memori data.

Mikrokontroler biasanya dilengkapi dengan UART (Universal

AsychoronousReceiver Transmitter) yaiut port serial komunikasi serial asinkron, USART (Universal Asychoronous\Asy choronous Receiver Transmitter) yaitu port yangdigunakan untuk komunikasi serial asinkron dan asinkron yang kecepatannya 16 kalilebih cepat dari Uart, SPI ( Serial Port Interface), SCI ( Serial CommunicationInterface ), Bus RC ( Intergrated circuit Bus ) merupakan 2 jalur yang terdapat 8 bit,CAN ( Control Area Network ) merupakan standard pengkabelan SAE (Society ofAutomatic Enggineers).

Pada sistem komputer perbandingan RAM dan ROM-nya besar, artinyaprogram-program pengguna disimpan dalam ruang RAM yang relatif besar,sedangkanrutin-rutin antar muka pernagkat keras disimpan dalm ruang ROM yang kecil.Mikrokontroler saat ini sudah dikenal dan digunakan secar luas pada duniaindustri.Banyak sekali penelitian atau proyek mahasiswa yang menggunakan berbagai versi mikrokontroler yang dapat dibeli dengan harga yang relative murah. Hal inidikarenakan produksi missal yang dilakukan oleh para produse chip seperti


(25)

Atmel,Maxim, dan Microchip. Mikrokontroler saat ini merupakan chip utama pada hampirsetiap peralatan elektronika canggih. Alat-alat canggih pun sekarang ini sangatbergantung pada kemampuan mikrokontroler tersebut.Mikrikontroler AVR memilkiarsitektur RISC 8 bit, dimana semua instruksi dikemas dalam kode 16-bit (16-bitword) dan sebagian besar instruksi dieksekusi dalam satu siklus clock, berbeda denganinstruksi MCS51 yang membutuhkan siklus 12 clock.Tentu saja itu terjadi karenakedua jenis mikrokontroler tersebut memiliki arsitektur yang berbeda. AVRberteknologi RISC (Reduce Instruction Set Computing), sedangkan seri MCS51berteknologi CISC (Complex Instruction Set Computing). Secara umum, AVR dapatdikelompokkan menjadi 4 kelas, yaitu keluarga AT90Sxx, keluarga ATmega, danAT86RFxx. Pada dasarnya, yang membedakan masing-masing kelas adalah memori,peripheral, dan fungsinya. Dari segi arsiektur dan instruksi yang digunakan, merekabias dikatakan hampir sama.

2.3.1. Fitur ATMega 8535

Kapabilitas detail dari ATMega8535 adalah sebagai berikut :

1. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16MHz.

2. Kapabilitas memori flash 8 KB, SRAM sebesar 512 byte , dan EEPROM ( Electrically Erasable Programmable Read Only Memory) sebesar 512 byte. 3. ADC internal dengan fidelitas 10 bit sebanyak 8 channel.

4. Portal komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps. 5. Enam pilihan mode sleep menghemat penggunaan daya listrik.

2.3.2. Konfigurasi ATMega 8535

Konfigurasi pin ATMega 8535 bisa dilihat pada gambar 2.3. di bawah ini. Dari gambar tersebut dapat dijelaskan secara fungsional konfigurasi pin ATMega 8535 sebagai berikut:

1. VCC merupakan pin yang berfungsi sebagai pin masukan catu daya. 2. GND merupakan pin ground.

3. Port A (PA0..PA7) merupakan pin I/O dua arah dan pin masukan ADC.

4. Port B (PB0..PB7) merupakan pin I/O dua arah dan pin fungsi khusus , yaitu Timer/Counter, komparator analog, dan SPI.

5. Port C (PC0..PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI, komparator analog, dan Timer Oscilat.


(26)

6. Port D (PD0.. PD7 merupakan pin I/O dua arah dan fungsi khusus, yaitu komparator analog, interupsi eksternal, komunikasi serial.

7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler. 8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal.

9. AVCC merupakan pin masukan tegangan untuk ADC. 10.AREF merupakan pin masukan tegangan referensi ADC.

Gambar 2.2. Pin ATMega 8535

Berikut adalah penjelasan fungsi tiap kaki. 1. PORT A

Merupakan 8-bit directional port I/O. 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 A/D coverter.


(27)

2. PORT B

Merupakan 8 bit directional port I/O. setiap pinnya dapat menyediakan internal pull-up resistor ( dapat diatur per bit). Output buffer Port B dapat memberi 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 terlihat pada table berikut.

Tabel 2.1. Konfigurasi Pin Port B ATMega 8535

PORT PIN FUNGSI KHUSUS

PB0 T0 = timer/ counter 0 external counterinput PB1 T1 = timer/counter 0 external counter input PB2 AINO = analog comparator positive input PB3 AINI =analog comparator negative input PB4 SS = SPI slave select input

PB5 MOSI = SPI bus master output/slave input PB6 MISO = SPI bus master input/slave output PB7 SCK = SPI bus serial clock

3. PORT C

Merupakan 8-bit directional port I/O. 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 oscilator untuk timer/counter 2.

4. PORT D

Merupakan 8-bit directional port I/O. 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


(28)

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.

Tabel 2.2.Konfigurasi Pin Port D ATmega8535

Port Pin Fungsi Khusus

PD0 RDX (UART input line) PD1 TDX (UART output line)

PD2 INT0 ( external interrupt 0 input ) PD3 INT1 ( external interrupt 1 input )

PD4 OC1B (Timer/Counter1 output compareB match output) PD5 OC1A (Timer/Counter1 output compareA match output) PD6 ICP (Timer/Counter1 input capture pin)

PD7 OC2 (Timer/Counter2 output compare match output)

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.

6. XTAL1

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

7. XTAL2

XTAL2 adalah output dari inverting oscilator amplifier. 8. Avcc

Avcc adalah kaki masukan tegangan bagi A/D Converter. Kaki ini harus secara eksternal terhubung ke Vcc melalui lowpass filter.

9. AREF

AREF adalah kaki masukan referensi bagi A/D Converter. Untuk operasional ADC, suatu level tegangan antara AGND dan Avcc harus diberikan ka kaki ini.

10.AGND

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


(29)

2.2.3. Peta Memori

AVR ATMega8535 memilii ruang pengalamatan memori data dan memori program yang terpisah. Memori data terbagi menjadi 3 bagian, yaitu 32 buah register umum, 64 buah register I/O, dan 512 byte SRAM Interanal.

Register keperluan umum menempati space data pada alamt terbawah, yaitu $00 sampai $1F. Sementara itu, register khusus untuk menangani I/O dan control terhadapmikrokontroler menempati 64 alamat berikutnya, yaitu mulai dari $20 hingga $5F. Register tersebut merupakan register yang khusus digunakan mengatur fungsi terhadap berbagai peripheral mikrokontroller, seperti contoh register, timer/counter, fungsi-fungsi I/O, dan sebagainya. Register khusus alamat memori secara lengkap dapat dilihat tabel ini. Alamat memori berikutnya digunakan untuk SRAM 512 byte, yaitu pada lokasi $60 sampai dengan $25F.

Konfigurasi memori data ditunjukkan pada gambar dibawah ini:

Gambar 2.3. Konfigurasi Memori Data AVR ATMega 8535

Memori program yang terletak dalam flash PEROM tersususn dalam word atau 2 byte karena setiap instruksi memiliki lebar 16-bit atau 32-bit, AVR ATMega8535 memiliki KByte 12-bit program Counter (PC) sehingga mampu mengalamati isi flash. Selain itu AVR ATMega8535 juga memiliki memori data berupa EEPROM 8-bit sebanyak 512 byte. Alamat EEPROM dimulai dari $000 sampai $1FF. Dibawah ini adalah gambar memori program AVR ATMega8535.


(30)

2.2.4. 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.4 Status Register ATMega 8535

1. Bit 7-I: Global Interrupt Enable

Bit harus diset untuk meng-enable interupsi. Setelah itu, dapat kita aktifkan interupsi mana yang akan digunakan dengan cara meng-enable bit control register yang bersangkutan secara individu. Bit akan di-clear apabila terjadi suatu interupsi yang dipicu oleh hardware, dan bit tidak akan mengizinkan terjadinya interupsi, serta akan diset kembali oleh instruksi RETI.

2. Bit 6-T:Bit Copy Storage

Instruksi BLD dan BST menggunakan bit-T sebagai sumber atau tujuan dalam operasi bit. Suatu bit dalam sebuah register GPR dapat disalin ke bit T menggunakan instruksi BST, dan sebaliknya bit-T dapat disalin kembali ke suatu bit dalam register GPR menggunakan instruksi BLD.

3. Bit 5-H: Half Carry Flag 4. Bit 4-S: Sign Bit

Bit-S merupakan hasil operasi EOR antara flag-N (negative) dan flag V (komplemen dua overflow).

5. Bit 3-V: Two’s Complement Overflow Flag Bit berguna untuk mendukung operasi aritmatika. 6. Bit 2-N: Negative Flag

Apabila suatu operasi menghasilkan bilangan negatif, maka flag-N akan diset. 7. Bit 1-Z: Zero Flag

Bit akan diset bila hasil operasi yang diperoleh adalah nol. 8. Bit 0-C: Carry Flag


(31)

Port I/O pada mikrokontroller ATmega8535 dapat difungsikan sebagai input dan juga sebagai output dengan keluaran high atau low.Untuk mengatur fungsi port I/O sebagai input ataupun output, perlu dilakukan setting pada DDR dan port. Logika port I/O dapat diubah-ubah dalam program secara byte atau hanya bit tertentu. Mengubah sebuah keluaran bit I/O dapat dilakukan menggunakan perintah cbi (clear bit I/O)untuk menghasilkan output low atau perintah sbi (set bit I/O) untuk menghasilkan output high. Pengubahan secara byte dilakukan dengan perintah in atau out yang menggunakan register bantu.

I/O merupakan bagian yang paling menarik dan penting untuk diamati karena I/O merupakan bagian yang bersangkutan dengan komunikasi mikrokontroller dengan dunia luar. Selain port I/O, bagian ini juga menyediakan informasi mengenai berbagai peripheral mikrokontroller yang lain, seperti ADC, EEPROM, UART, dan Timer. Komponen yang tercakup dalam workspace I/O meliputi berbagai register berikut :

1. AD_CONVERTER; register: ADMUX, ADCSR, ADCH, ADCL 2. ANALOG_COMPARATOR; register: ACSR

3. CPU; register: SREG, SPH, SPL, MCUCR, MCUCSR, OSCCAL, SFIOR, SPMCR

4. EEPROM; register: EEARH, EEARL, EEDR, EECR

5. External_Interrupt; register: GICR, GIFR, MCUCR, MCUCSR 6. PORTA; register: PORTA, DDRA, dan PINA

7. PORTB; register: PORTB, DDRB, dan PINB 8. PORTC; register: PORTC, DDRC, dan PINC 9. PORTD; register: PORTD,DDRD, dan PIND 10.SPI; register: SPDR, SPSR, SPCR

11.TIMER_COUNTER_0; register: TCCR0, TCNT0, OCR0, TIMSK, TIFR, SFIOR

12.TIMER _COUNTER_1; register: TIMSK, TIFR, TCCR1A, TCCR1B,

TCNT1H, TCNT1L, OCR1AH, OCR1AL, OCR1BL, ICR1H, 1CR1L

13.TIMER_COUNTER_2; register: TIMSK, TIFR, TCRR2, TCNT2, OCR2, ASSR, SFIOR

14.TWI; register: TWBR, TWCR, TWSR, TWDR, TWAR

15.USART; register: UDR, UCSRA, UCSRB, UCSRC, UBRRH, UBRRL 16.WATCDOG; register: WDTCR


(32)

2.3 IC(Integrated Circuit)

IC (Integrated Circuit) dapat dibedakan menjadi IC Linear, IC Digital dan juga gabungan dari keduanya.

IC Linear

IC Linear atau disebut juga dengan IC Analog adalah IC yang pada umumnya berfungsi sebagai :

 Penguat Daya (Power Amplifier)  Penguat Sinyal (Signal Amplifier)

 Penguat Operasional (Operational Amplifier / Op Amp)  Penguat Sinyal Mikro (Microwave Amplifier)

 Penguat RF dan IF (RF and IF Amplifier)  Voltage Comparator

 Multiplier

 Penerima Frekuensi Radio (Radio Receiver)

IC Digital

IC Digital pada dasarnya adalah rangkaian switching yang tegangan Input dan Outputnya hanya memiliki 2 (dua) level yaitu “Tinggi” dan “Rendah” atau dalam kode binary dilambangkan dengan “1” dan “0”.

IC Digital pada umumnya berfungsi sebagai :  Flip-flop

 Gerbang Logika (Logic Gates)  Timer

 Counter  Multiplexer  Calculator  Memory  Clock

 Microcontroller

Data yang dipakai dalam mikrokontroller ATmega8535 dipresentasikan dalam sistem bilangan biner, desimal, dan bilangan heksadesimal. Data yang terdapat di mikrokontroller dapat diolah dengan berbagai operasi aritmatik (penjumlahan, pengurangan, dan perkalian)maupun operasi nalar (AND, OR, dan EOR /eksklusif OR).


(33)

AVR ATmega8535 memiliki tiga buah timer, yaitu: 1. Timer/counter 0 (8 bit)

2. Timer/ counter 1 (16 bit) 3. Timer/counter 2 (8 bit)

Karena ATmega8535 memiliki 8 saluran ADC maka untuk keperluan konversi sinyal analog menjadi data digital yang berasal dari sensor dapat langsung dilakukan prosesor utama. Beberapa karakteristik ADC internal ATmega8535 adalah

1. Mudah dalam pengoperasian. 2. Resolusi 10 bit.

3. Memiliki 8 masukan analog. 4. Konversi pada saat CPU sleep. 5. Interrupt waktu konversi selesai.

2.4 Bahasa Menggunakan Pemrogram Bahasa C

Bahasa C adalah bahasa pemrograman yang dapat dikatakan berada di antara bahasa beraras rendah dan beraras tinggi.Bahasa beraras rendah artinya bahasa yang berorientasi pada mesin dan beraras tinggi berorientasi pada manusia.Bahasa beraras rendah, misalnya bahasa assembler, bahasa ini ditulis dengan sandi yang dimengerti oleh mesin saja, oleh karena itu hanya digunakan bagi yang memprogram mikroprosesor.Bahasa beraras rendah merupakan bahasa yang membutuhkan kecermatan yang teliti bagi pemrogram karena perintahnya harus rinci, ditambah lagi masing-masing pabrik mempunyai sandi perintah sendiri.Bahasa tinggi relatif mudah digunakan, karena ditulis dengan bahasa manusia sehingga mudah dimengerti dan tidak tergantung mesinnya.Bahasa beraras tinggi biasanya digunakan pada komputer. Kelebihan Bahasa C:

- Bahasa C tersedia hampir di semua jenis computer.

- Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis computer. - Bahasa C hanya menyediakan sedikit kata-kata kunci. hanya terdapat 32 kata

kunci.

- Proses executable program bahasa C lebih cepat - Dukungan pustaka yang banyak.

- C adalah bahasa yang terstruktur


(34)

Penempatan ini hanya menegaskan bahwa c bukan bahasa pemrograman yang berorientasi pada mesin.yang merupakan ciri bahasa tingkat rendah, melainkan berorientasi pada obyek tetapi dapat dinterprestasikan oleh mesin dengan cepat, secepat bahasa mesin. Inilah salah satu kelebihan c yaitu memiliki kemudahan dalam menyusun programnya semudah bahasa tingkat tinggi namun dalam mengesekusi program secepat bahasa tingkat rendah.

Kekurangan Bahasa C:

- Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai.

- Bagi pemula pada umumnya akan kesulitan menggunakan pointer.

2.4.1. Mengkopilasi Program

Suatu source program C baru dapat dijalankan setelah melalui tahap kompilasi dan penggabungan. Tahap kompilasi dimaksudkan untuk memeriksa source-program sesuai dengan kaidah-kaidah yang berlaku di dalam bahasa pemrograman C. Tahap kompilasi akan menghasilkan relocatable object file. File-file objek tersebut kemudian digabung dengan perpustakaan-fungsi yang sesuai. untuk menghasilkan suatu executable-program.Shortcut yang digunakan untuk mengkompile:

• ALT + F9 → dipakai untuk melakukan pengecekan jika ada error pada program yang telah kita buat.

• CTRL + F9 → dipakai untuk menjalankan program yang telah kita buat atau bisa juga dengan mengklik tombol debug pada tool bar.

Gambar 2.5.Kompilasi Program

2.4.2. Struktur Bahasa Pemrograman C

1. Header Fileadalah berkas yang berisi prototype fungsi. definisi konstanta. dan definisi variable. Fungsi adalah kumpulan code C yang diberi nama dan ketika nama tersebut dipanggil maka kumpulan kode tersebut dijalankan.


(35)

Contoh : stdio.h math.h conio.h

2. Preprosesor Directive (#include)

Preprosesor directive adalah bagian yang berisi pengikutsertaan file atau berkas-berkas fungsi maupun pendefinisian konstanta.

Contoh:

#include <stdio.h> #include phi 3.14 3. Void

artinya fungsi yang mengikutinya tidak memiliki nilai kembalian (return). 4. Main ( )

Fungsi main ( ) adalah fungsi yang pertama kali dijalankan ketika program dieksekusi.tanpa fungsi main suatu program tidak dapat dieksekusi namun dapat dikompilasi.

5. Statement

Statement adalah instruksi atau perintah kepada suatu program ketika program itu dieksekusi untuk menjalankan suatu aksi.Setiap statement diakhiri dengan titik-koma (;).

2.4.3. Kata Kunci (Keyword)

Kata kunci-kata kunci yang terdapat di C, sebagai berikut:

Tabel 2.3Kata Kunci

Auto Break Case Char

Const Continue Default Do

Double Else Enum Extern

Float For Goto If

Int Long Register Return

Short Signed Sizeof Static

Struct Switch Typedef Union


(36)

2.4.4. Identifier

Identifier atau nama pengenal adalah nama yang ditentukan sendiri oleh pemrogram yang digunakan untuk menyimpan nilai, misalnya nama variable, nama konstanta, nama suatu elemen (misalnya: nama fungsi, nama tipe data, dll). Identifier punya ketentuan sebagai berikut :

1. Maksimum 32 karakter (bila lebih dari 32 karakter maka yang diperhatikan hanya 32 karakter pertama saja).

2. Case sensitive: membedakan huruf besar dan huruf kecilnya.

3. Karakter pertama harus karakter atau underscore ( _ ) . selebihnya boleh angka. 4. Tidak boleh mengandung spasi atau blank.

5. Tidak boleh menggunakan kata yang sama dengan kata kunci dan fungsi.

2.4.4.1 Variabel

Variabel adalah identifier yang nilainya dapat berubah atau diubah selama programberjalan (dieksekusi). Pengubahnya adalah user atau proses.

• Deklarasi variabel (tipe_data nama_variabel;)

Variabel yang akan digunakan dalam program haruslah dideklarasikan terlebihdahulu. Pengertian deklarasi di sini berarti memesan memori dan menentukan jenisdata yang bisa disimpan di dalamnya.

Contoh :

• Inisialisasi variabel (tipe_data nama_variabel = nilai;)

2.4.4.2 Konstanta

Konstanta adalah identifier yang nilainya tetap selama program berjalan/dieksekusi.Cara untuk mengubahnya hanya melalui source codenya saja seperti halnya variabel, konstanta juga memiliki tipe.Penulisan konstanta mempunyai aturantersendiri, sesuai dengan tipe masing-masing.

1. Konstanta karakter misalnya ditulis dengan diawali dan diakhiri dengan tanda petik tunggal, contohnya : ‘A’ dan ‘@’.


(37)

2. Konstanta integer ditulis dengan tanda mengandung pemisah ribuan dan tidak mengandung bagian pecahan, contohnya : –1 dan 32767.

3. Konstanta real (float dan double) bisa mengandung pecahan (dengan tanda berupa titik) dan nilainya bisa ditulis dalam bentuk eksponensial (menggunakan tanda e), contohnya : 27.5f (untuk tipe float) atau 27.5 (untuk tipe double) dan 2.1e+5 (maksudnya 2,1 x 105 ).

4. Konstanta string merupakan deretan karakter yang diawali dan diakhiri dengan tanda petik-ganda (“), contohnya :“Pemrograman Dasar C”.

Contoh :

2.4.5 Tipe Data Dasar

Data merupakan suatu nilai yang bisa dinyatakan dalam bentuk konstanta atau variabel.Konstanta menyatakan nilai yang tetap, sedangkan variabel menyatakan nilai yang dapat diubah-ubah selama eksekusi berlangsung.

Tabel 2.4Ukuran Memori untuk Tipe Data

Untuk mengetahui ukuran memory bisa dipakai fungsi sizeof (<tipe_data>). Catatan:

Ukuran dan kawasan dari masing-masing tipe data adalah bergantung pada jenis mesin yang digunakan (misalnya mesin 16 bit bisa jadi memberikan hasil berbeda dengan mesin 32 bit).

Untuk menampilkan hasil output dibutuhkan kode format, berikut adalah daftar kode format:

Tipe Data Ukuran Memori Kawasan

unsigned char 8 bits 0 s/d 255

Char 8 bits -128 s/d 127

short int 16 bits -32.768 s/d 32.767 unsigned int 32 bits 0 s/d 4.294.967.295

Int 32 bits -2.147.483.648 s/d 2.147.483.647 unsigned long 32 bits 0 s/d 4.294.967.295

Enum 16 bits -2147483.648 to 2.147.483.648 Long 32 bits -2.147.483.648 s/d 2.147.483.647 Float 32 bits 3,4 x 10-38 s/d 3,4 x 10+38 Double 64 bits 1.7 x 10-308 to 1.7 x 10+308 long double 80 bits 3.4 x 10-4932 to 3.4 x 10+4932 near (pointer) 32 bits not applicable


(38)

Tabel 2.5 Daftar Kode Format

Kode format Kegunaan

%c Menampilkan sebuah karakter %s Menampilkan nilai string

%d Menampilkan nilai decimal integer %i Menampilkan nilai decimal integer

%u Menampilkan nilai decimal integer tidak bertanda (unsigned integer) %ld Menampilkan nilai decimal long integer

%lu Menampilkan nilai decimal long integer tak bertanda %li Menampilkan nilai decimal long integer

%hu Menampilkan nilai decimal short integer tak bertanda %hi Menampilkan nilai decimal short integer

%x Menampilkan nilai heksa decimal integer %o Menampilkan nilai okta integer

%f Menampilkan nilai pecahan / float %e Menampilkan nilai float scientific

%g Sebagai pengganti %f atau %e tergantung yang terpendek %lf Menampilkan nilai pecahan double

%le Menampilkan nilai pecahan double %lg Menampilkan nilai pecahan double

%p Menampilkan suatu alamat memory untuk pointer Contoh:

2.4.6 Karakter Escape

Karakter escape adalah karakter yang diawali dengan tanda backslash (/), yang masing-masing memiliki makna tertentu. Berikut adalah daftar karakter:

Tabel 2.6 Daftar Karakter KARAKTER

ESCAPE


(39)

BAB I

PENDAHULUAN

1.1.LATAR BELAKANG

Penggunaan alat waterpass pada umumnya digunakan pada saat membuat peralatan meubel, pertukangan dan bangunan, sejak abad 17 alat waterpass ini memakai tabung kaca yang berisi alkohol atau cairan sejenis dan dibungkus oleh bingkai panjang untuk menentukan apakah permukaan tersebut tegak lurus atau tidaknya terhadap tanah.

Pada laporan proyek akhir ini akan di realisasikan suatu alat yaitu waterpass yang dapat berguna untuk mengukur besarnya sudut kemiringan dan juga dapat mampu mengukur besarnya selisih sudut diantara dua sudut kemiringan. Disamping digunakan sebagai alat bantu untuk mendirikan bangunan (pondasi), alat tersebut juga dapat digunakan untuk membuat tingkatan kedataran dari anak tangga. Sebelum membangun pondasi rumah atau gedung, kemiringan dari pondasi tersebut harus diperhatikan. Karena dengan pondasi yang tidak teratur akan membuat bangunan cenderung miring, sehingga dibutuhkan ketelitian dalam pengamatannya. Dengan mengacu pada alat ukur yang masih analog, ,maka akan didapatkan beberapa kekurangan yang dihasilkan. Maka pada laporan proyek akhir ini akan direalisasikan alat yang mampu untuk meminimalkan kekurangan dai waterpass analog tersebut. Alat yang akan direalisasikan dapat langsung menampilkan hasil pembacaan secara digital sehingga mudah digunakan. Dengan berkembangnya teknologi mikrokontroler, fungsi waterpass ini dapat diaplikasikan secara digital dengan menggunakan sensor Mpu6050 yang berbasis pada ATMega 8535.Sensor MPU6050 adalah sensor mampu membaca kemiringan sudut berdasarkan data dari sensor accelerometer dan sensor gyroscope.Sensor ini juga dilengkapi oleh sensor suhu yang dapat digunakan untuk mengukur suhu dikeadaan sekitar.Jalur data yang digunakan pada sensor ini adalah jalur data I2C.

Sensor MPU-6050 berisi sebuah MEMS Accelerometer dan sebuah MEMS Gyro yang saling terintegrasi. Sensor ini sangat akurat dengan fasilitas hardware internal 16 bit ADC untuk setiap kanalnya. Sensor ini akan menangkap nilai kanal axis X, Y dan Z bersamaan dalam satu waktu.


(40)

1.2.RUMUSAN MASALAH

Laporan proyek ini membahas tentang pengukuran tingkat kemiringan yang terdiri dari sensor Mpu6050, Mikrokontroler ATMega8535 sebagai pusat kendalinya beserta software pemrogramannya, LCD sebagai tampilannya, Relay, Trafo, PSA, Resistor, Baterai 9 Volt.

1.3.BATASAN MASALAH

Mengacu pada hal diatas Penulis merancang Alat Ukur Kemiringanmemakaisensor Mpu6050 berbasis Mikrokontroler ATMega 8535, dengan batasan-batasan sebagaiberikut :

1. Pembahasan mikrokontroler Atmega 8535.

2. Sensor yang digunakan adalah Mpu6050 sebagai sensor kemiringan.

3. Pembahasan hanya meliputi rangkaian Mikrokontroler ATMega 8535,Sensor Mpu6050 beserta programnya.

4. Pembahasan hanya sebatas pemrograman mikrokontroler dan interfacinguntuk pemrograman dari komputer ke mikrokontroler tidak dibahas.

1.4.TUJUAN PENELITIAN

Adapun tujuan penulisan laporan proyek ini adalah untuk:

1. Merancang suatu alat pengukuran kemiringan untuk kemudian ditampilkan pada LCD dengan menggunakan Mikrokontroler ATMega 8535.

2. Mengetahui cara kerja sensorsensor Mpu6050 berbasis Mikrokontroler ATMega 8535.

1.5.MANFAAT

Adapun Manfaat pembahasan ini adalah mempermudah pekerjaan dalam bidang pengukuran khususnya mengukur tingkat kemiringandan meningkatkan efisiensi waktu secara tepat dan hasilnya akurat.

1.6.SISTEMATIKA PENULISAN

Untuk mempermudah pembahasan dan pemahaman, penulis membuat sistematika penulisan bagaimana sebenarnya prinsip kerja dari pengukuran Ketebalan memakai


(41)

sensor Mpu6050 berbasis Mikrokontroler ATMega 8535, maka penulis menulis tugas akhir ini dengan urutan sebagai berikut:

BAB 1 PENDAHULUAN

Dalam hal ini berisikan mengenai latar belakang,rumusan masalah, tujuan penulisan, batasan masalah, serta sistematika penulisan.

BAB 2 LANDASAN TEORI

Dalam bab ini dijelaskan tentang teori pendukung yang digunakan untuk pembahasan dan cara kerja dari rangkaian teori pendukung itu antara lain tentang Mikrokontroler Atmega 8535, Sensor Mpu6050, bahasa program yang dipergunakan, serta cara kerja dari mikrokontroler Atmega 8535 dan komponen pendukung.

BAB 3 RANCANGAN SISTEM

Pada bab ini akan dibahas perancangan dari alat , yaitu blok dari rangkaian, skematik dari masing-masing rangkaian dan diagram alir dari program yang diisikan ke Mikrokontroler ATMega 8535.

BAB 4 PENGUJIAN RANGKAIAN

Pada bab ini akan dibahas pengujian rangkaian dan hasil pengujian dari masing-masing rangkaian serta program yang diisikan ke Mikrokontroler ATMega 8535.

BAB 5 KESIMPULAN DAN SARAN

Bab ini merupakan penutup yang meliputi tentang kesimpulan dari pembahasan yang dilakukan dari tugas akhir ini serta saran apakah rangkaian ini dapat dibuat lebih efisien dan dikembangkan perakitannya pada suatu metode lain yang mempunyai sistem kerja


(42)

Abstrak

Telah berhasil dirancang alat waterpass digital dengan menggunakan sensor Mpu6050 berbasis mikrokontroller ATMega 8535 yang berfungsi untuk membaca kemiringan sumbu xz dengan keluaran berupa tegangan analog yang diubah menjadi bentuk digital dengan ADC pada mikrokontroler dengan pengukurannya dan hasil kemiringan di representasi kan dalam satuan deraja t dengan % error rata-rata 0,049 %. Pengukuran waterpass digital lebih mudah dilakukan karena waktu yang dibutuh kan untuk pengukuran relatif singkat dan sudut kemiringan disajikan dalam satuan derajat.


(43)

PERANCANGAN WATERPASS DIGITAL UNTUK MENGUKUR

KEMIRINGAN PERMUKAAN MENGGUNAKAN SENSOR

MPU6050 BERBASIS ATMEGA 8535

TUGAS AKHIR

Diajukan Sebagai Syarat Memenuhi Tugas Akhir dan Menyelesaikan Pendidikan Program Studi D3 Metrologi dan Instrumentasi Fakultas Matematika dan Ilmu

Pengetahuan Alam

Oleh :

AHMAD QADAR GINTING 132411051

DEPARTEMEN FISIKA

PROGRAM STUDI D3 METROLOGI DAN INSTRUMENTASI

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN


(44)

PERSETUJUAN

Judul :PerancanganWaterpass Digital untuk MengukurKemiringan

Permukaan MenggunakanSensor MPU6050 Berbasis ATmega8535

Kategori : Projek Akhir II

Nama : Ahmad Qadar Ginting

NIM : 132411051

Program Studi : Diploma Tiga (D3) Metrologi dan Instrumentasi Departemen : Fisika

Fakultas : Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara

Disetujui di Medan, Juli 2016

Disetujui oleh D3 Metrologi dan

Instrumentasi FMIPA USU

Ketua, Pembimbing,

(Dr. Diana Alemin Barus, M.Sc) (Prof.Dr..NasruddinM.Noor,M,Eng.Sc)


(45)

PERNYATAAN

PERANCANGAN WATERPASS DIGITAL UNTUK MENGUKUR KEMIRINGAN PERMUKAAN MENGGUNAKAN SENSOR MPU6050

BERBASIS ATMEGA 8535

TUGAS AKHIR

Saya mengakui bahwa laporan projek akhir II ini adalah hasil kerja saya sendiri. Kecuali beberapa kutipan dan ringkasan yang masing- masing disebutkan sumbernya.

Medan,Juli 2016

AHMAD QADAR GINTING 132411051


(46)

PENGHARGAAN

Alhamdulillah puji dan syukur penulis ucapkan kepada Allah Subhanahuwata’ala, atas segala karuniaNya yang telah diberikan kepada penulis sehingga dapat menyelesaikan Proyek Akhir ini dengan baik. Shalawat dan Salam kepada Nabi Muhammad SAW semoga kita mendapatkan safa’atnya di kemudian hari. Amin

Dalam kesempatan ini penulis menyampaikan rasa hormat dan ucapan terima kasih yang sebesar- besarnya kepada keluarga serta orang- orang yang mendukung sehingga penulis dapat menyelesaikan Proyek Akhir ini. Pada kesempatan ini penulis mengucapkan terima kasih banyak kepada :

1. Yth.Bapak Dekan krista sebayangbeserta jajarannya di lingkungan FMIPA USU 2. Ibu Dr. Diana Alemin Barus, M.Scselaku Ketua Program Studi D3 Metrologi dan

Instrumentasi Fakultas Matematika Dan Ilmu Pengetahuan Alam.

3. BapakDrs. Nasruddin M.Noor,M,Eng.Sc selaku dosan pembimbing saya yang telah membantu menyelesaikan laporan projek akhir ini. Penulissangat berterima kasih untuk setiap bimbingan,masukan,saran bahkan waktu yang senantiasa diberikan kepada penulis sampai pada akhir penyelesaian skripsi ini.

4. Seluruh Dosen dan Karyawan Program Studi D3 Metrologi dan Instrumentasi Departemen Fisika FMIPA USU

5. Terkhusus penulis berterima kasih kepadaAyahanda Beres Ginting dan IbundaSiti Zubaidah Tarigan, terima kasih atas kasih sayang dan kepercayaan yang telah kalian berikan kepada anak kalian ini, serta abangku Barqah dan adikku Taufiq Ginting buat dukungannya, doa dan motivasi yang diberikan dari awal mulai perkuliahan sampai penulisan proyek akhir ini serta buat seluruh keluarga dan teman yang telah membantu, mendukung dan memberikan kelonggaran serta support terhadap pendidikan saya hingga bisa berkembang seperti sekarang.

6. Teman–teman seperjuangan yang telah banyak membantu dalam proses pengerjaan pyoyek akhir ini(Naim, Mida, Eko,)

7. Teman–teman Metrologi Angkatan 2013 yang telah sama-sama berjuang menyelesaikan perkuliahan ini.

8. Dan kepada semua pihak yang telah berkontribusi dalam kehidupan penulis yang tidak mampu saya tuliskan satu persatu.


(47)

Penulis menyadari sepenuhnya bahwa dalam pembuatan laporan proyek akhir ini masih jauh dari kesempurnaan, untuk itu penulis mengharapkan kritik dan saran dari pembaca yang bersifat membangun dalam penyempurnaan tugas akhir ini.

Semoga laporan tugas akhir ini menjadi ibadah yang baik bagi penulis dan menjadi ilmu yang bermanfaat bagi pembaca.

Amin Yaa Rabbal’alamin

Medan, 21 Juni 2016 Penulis,


(48)

DAFTAR ISI

PERSETUJUAN ... i

PERNYATAAN ... ii

PENGHARGAAN ... iii

ABSTRAK ... v

DAFTAR ISI ... vii

BAB I PENDAHULUAN ... 1

1.1. LATAR BELAKANG ... 1

1.2. RUMUSAN MASALAH ... 2

1.3. BATASAN MASALAH ... 2

1.4. TUJUAN PENELITIAN ... 2

1.5. MANFAAT ... 3

BAB II LANDASAN TEORI ... 4

2.1. Sensor Ump6050 ... 4

2.2. Mikrokontroler Atmega8535 ... 5

2.2.1 Fitur Atmega8535 ... 6

2.2.2Konfigurasi Atmega 8535 ... 6

2.2.3Peta Memori ... 10

2.2.4 Status Register ... 11

2.3 Bahasa Menggunakan Pemprograman Bahasa C ... 14

2.3.1 Mengkopilasi Program ... 15

2.3.2 Struktur Bahasa Pemprograman ... 15

2.3.3 Kata Kunci ( Keyword) ... 16

2.3.4 Identifier ... 17

2.3.4.1 Variable ... 17

2.3.4.2 Konstanta ... 17

2.3.5 Tipe Data Dasar ... 18

2.3.6 Karakter Escape ... 19

2.4 Liquid Crystal Display ( LCD) ... 20

BAB II PERANCANGAN ALAT DAN PEMBUATAN SISTEM ... 20


(49)

3.2 Perancangan Blok Diagram Sistim ... 21

3.3 Fungsi Tiap Blok ... 21

3.4 Rangkaian Mikrokontroler ATMega8535 ... 22

3.5 Diagram Alir Program ... 23

BAB IV PENGUJIAN ALAT DAN ANALISA RANGKAIAN ... 24

4.1 Pengujian Rangkaian Mikrokontroler ATMega8535 ... 24

4.2 Pengujian dan Analisa Rangkaian Sensor Mpu6050 dan LCD ... 24

4.2.1 Pengujian Sensor Mpu6050 ... 24

4.2.2 PengujianLiquid Crystal Display ( LCD ... 25

BAB V KESIMPULAN DAN SARAN ... 26

5.1 Kesimpulan ... 26

5.2 Saran ... 26

Daftar Pustaka ... 27

LAMPIRAN A ... 28


(50)

DAFTAR GAMBAR

Gambar Halaman

Gambar 2.1 Sensor Mpu6050 ... 4

Gambar 2.2 Pin ATMega8535 ... 7

Gambar 2.3Konfigurasi Memori data AVR ATMega8535 ... 10

Gambar 2.4Status Register ATMega8535 ... 11

Gambar 2.5Komplasi Program ... 15

Gambar 2.6Liquid Crystal Display ( LCD) ... 20

Gambar 3.1.Diagram Blok Sistim ... 21

Gambar 3.2 Rangkaian sistem minimum mikrokontroler ATMEGA 8535 ... 22


(51)

DAFTAR TABEL

Tabel Halaman

Tabel 2.1Konfigurasi Pin Port B ATMega8535 ... 8

Tabel 2.2 Konfigurasi Pin Port D ATMega8535 ... 9

Tabel 2.3 Tabel Kata Kunci ... 16

Tabel 2.4Ukuran Memori untuk Tipe Data ... 18

Tabel 2.5 Daftar Kode Format ... 18

Tabel 2.6 Daftar Karakter ... 19


(1)

PENGHARGAAN

Alhamdulillah puji dan syukur penulis ucapkan kepada Allah Subhanahuwata’ala, atas segala karuniaNya yang telah diberikan kepada penulis sehingga dapat menyelesaikan Proyek Akhir ini dengan baik. Shalawat dan Salam kepada Nabi Muhammad SAW semoga kita mendapatkan safa’atnya di kemudian hari. Amin

Dalam kesempatan ini penulis menyampaikan rasa hormat dan ucapan terima kasih yang sebesar- besarnya kepada keluarga serta orang- orang yang mendukung sehingga penulis dapat menyelesaikan Proyek Akhir ini. Pada kesempatan ini penulis mengucapkan terima kasih banyak kepada :

1. Yth.Bapak Dekan krista sebayangbeserta jajarannya di lingkungan FMIPA USU

2. Ibu Dr. Diana Alemin Barus, M.Scselaku Ketua Program Studi D3 Metrologi dan

Instrumentasi Fakultas Matematika Dan Ilmu Pengetahuan Alam.

3. BapakDrs. Nasruddin M.Noor,M,Eng.Sc selaku dosan pembimbing saya yang

telah membantu menyelesaikan laporan projek akhir ini. Penulissangat berterima kasih untuk setiap bimbingan,masukan,saran bahkan waktu yang senantiasa diberikan kepada penulis sampai pada akhir penyelesaian skripsi ini.

4. Seluruh Dosen dan Karyawan Program Studi D3 Metrologi dan Instrumentasi

Departemen Fisika FMIPA USU

5. Terkhusus penulis berterima kasih kepadaAyahanda Beres Ginting dan IbundaSiti Zubaidah Tarigan, terima kasih atas kasih sayang dan kepercayaan yang telah kalian berikan kepada anak kalian ini, serta abangku Barqah dan adikku Taufiq Ginting buat dukungannya, doa dan motivasi yang diberikan dari awal mulai perkuliahan sampai penulisan proyek akhir ini serta buat seluruh keluarga dan teman yang telah membantu, mendukung dan memberikan kelonggaran serta support terhadap pendidikan saya hingga bisa berkembang seperti sekarang.

6. Teman–teman seperjuangan yang telah banyak membantu dalam proses

pengerjaan pyoyek akhir ini(Naim, Mida, Eko,)

7. Teman–teman Metrologi Angkatan 2013 yang telah sama-sama berjuang

menyelesaikan perkuliahan ini.

8. Dan kepada semua pihak yang telah berkontribusi dalam kehidupan penulis yang tidak mampu saya tuliskan satu persatu.


(2)

Penulis menyadari sepenuhnya bahwa dalam pembuatan laporan proyek akhir ini masih jauh dari kesempurnaan, untuk itu penulis mengharapkan kritik dan saran dari pembaca yang bersifat membangun dalam penyempurnaan tugas akhir ini.

Semoga laporan tugas akhir ini menjadi ibadah yang baik bagi penulis dan menjadi ilmu yang bermanfaat bagi pembaca.

Amin Yaa Rabbal’alamin

Medan, 21 Juni 2016 Penulis,


(3)

DAFTAR ISI

PERSETUJUAN ... i

PERNYATAAN ... ii

PENGHARGAAN ... iii

ABSTRAK ... v

DAFTAR ISI ... vii

BAB I PENDAHULUAN ... 1

1.1. LATAR BELAKANG ... 1

1.2. RUMUSAN MASALAH ... 2

1.3. BATASAN MASALAH ... 2

1.4. TUJUAN PENELITIAN ... 2

1.5. MANFAAT ... 3

BAB II LANDASAN TEORI ... 4

2.1. Sensor Ump6050 ... 4

2.2. Mikrokontroler Atmega8535 ... 5

2.2.1 Fitur Atmega8535 ... 6

2.2.2Konfigurasi Atmega 8535 ... 6

2.2.3Peta Memori ... 10

2.2.4 Status Register ... 11

2.3 Bahasa Menggunakan Pemprograman Bahasa C ... 14

2.3.1 Mengkopilasi Program ... 15

2.3.2 Struktur Bahasa Pemprograman ... 15

2.3.3 Kata Kunci ( Keyword) ... 16

2.3.4 Identifier ... 17

2.3.4.1 Variable ... 17

2.3.4.2 Konstanta ... 17

2.3.5 Tipe Data Dasar ... 18

2.3.6 Karakter Escape ... 19

2.4 Liquid Crystal Display ( LCD) ... 20

BAB II PERANCANGAN ALAT DAN PEMBUATAN SISTEM ... 20

3.1 Analisis Kebutuhan ... 21


(4)

3.2 Perancangan Blok Diagram Sistim ... 21

3.3 Fungsi Tiap Blok ... 21

3.4 Rangkaian Mikrokontroler ATMega8535 ... 22

3.5 Diagram Alir Program ... 23

BAB IV PENGUJIAN ALAT DAN ANALISA RANGKAIAN ... 24

4.1 Pengujian Rangkaian Mikrokontroler ATMega8535 ... 24

4.2 Pengujian dan Analisa Rangkaian Sensor Mpu6050 dan LCD ... 24

4.2.1 Pengujian Sensor Mpu6050 ... 24

4.2.2 PengujianLiquid Crystal Display ( LCD ... 25

BAB V KESIMPULAN DAN SARAN ... 26

5.1 Kesimpulan ... 26

5.2 Saran ... 26

Daftar Pustaka ... 27

LAMPIRAN A ... 28


(5)

DAFTAR GAMBAR

Gambar Halaman

Gambar 2.1 Sensor Mpu6050 ... 4

Gambar 2.2 Pin ATMega8535 ... 7

Gambar 2.3Konfigurasi Memori data AVR ATMega8535 ... 10

Gambar 2.4Status Register ATMega8535 ... 11

Gambar 2.5Komplasi Program ... 15

Gambar 2.6Liquid Crystal Display ( LCD) ... 20

Gambar 3.1.Diagram Blok Sistim ... 21

Gambar 3.2 Rangkaian sistem minimum mikrokontroler ATMEGA 8535 ... 22

Gambar 3.3.Flowchart Cara Kerja Sistem ... 23


(6)

DAFTAR TABEL

Tabel Halaman

Tabel 2.1Konfigurasi Pin Port B ATMega8535 ... 8

Tabel 2.2 Konfigurasi Pin Port D ATMega8535 ... 9

Tabel 2.3 Tabel Kata Kunci ... 16

Tabel 2.4Ukuran Memori untuk Tipe Data ... 18

Tabel 2.5 Daftar Kode Format ... 18

Tabel 2.6 Daftar Karakter ... 19