ALAT UKUR ACELERASI DENGAN COMPLAMANTARY
FILTER BRBASIS MIKROKONTROLLER ATMEGA8
TUGAS AKHIR
ALPREDO SINAGA
152408067
PROGRAM STUDI D-III FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2018
UNIVERSITAS SUMATERA UTARA
TUGAS AKHIR
ALAT UKUR ACELERASI DENGAN COMPLAMANTARY FILTER BRBASIS MIKROKONTROLLER ATMEGA8
UNIVERSITAS SUMATERA UTARA
Tugas Akhir
ALAT UKUR ACELERASI DENGAN COMPLAMANTARY FILTER BRBASIS MIKROKONTROLLER ATMEGA8
UNIVERSITAS SUMATERA UTARA
i
ALAT UKUR AKSELERASI DENGAN COMPLAMANTARY FILTER
BERBASIS MIKROKONTROLLER ATMEGA8
Abstrak
Telah berasil dirancang alat waterpass digital dengan menggunakan sensor Mpu6050 berbasis
mikrokontrollerATMega8535 yang berfungsi untuk membaca kemiringan sumbu xz dengan
keluaran berupa tegangan analog yang diubah menjadi bentuk digital dengan ADC padami
krokontroler dengan pengukurannya dan hasil kemiringan di representasikan dalam satuan
derajat dengan % error rata-rata 0,049 %. Pengukuranwaterpass digital lebih mudah
dilakukan karena waktu yang dibutuhkan untuk pengukuran relative singkat dan sudut
kemiringan disajikan dalam satuan derajat.
Kata Kunci : Waterpass, Sensor MPU6050, MikrokontrollerAtemega 8
UNIVERSITAS SUMATERA UTARA
ii
ACELERATION MEASURES WITH COMPLAMANTARY
MICROCONTROLLER FILTER BASED ON ATMEGA8
Abstract
It has successfully designed the digital waterpass tool by using Mpu6050 sensor based on
microcontroller ATMega 8535 which serves to read the xz axis tilt with the output of analog
voltage converted to digital form with ADC on microcontroller with its measurement and
slope result in representation in the unit of row t with% error average 0.049%. Digital
waterpass measurement is easier because the time required for relatively short measurement
and tilt angle is presented in degrees.
Keywords: Waterpass, MPU6050 Sensor, Atemega Microcontroller 8
UNIVERSITAS SUMATERA UTARA
iii
PENGHARGAAN
Puji Dan Syukur penulis panjatkan kepada TYM, dengan dilimpahkan berkat-Nya
penyusunan Tugas Akhir ini dapat diselesaikan. UcapanTerima kasih penulis sampaikan
Kepada berbagai pihak yang telah banyak membantu penulis dalam menyelesaikan Tugas
Akhir ini yaituk epada:
1. Bapak Dr. KeristaSebayang,MS, selaku Dekan Fakultas Matematika dan Ilmu
Pengetahuan Alam Universitas Sumatera Utara.
2. Bapak Drs. Takdir Tamba,M.Eng. Scselaku Ketua Program Studi D-III Fisika
Fakultas MIPA Universitas Sumatera Utara.
3. Bapak Awan maghfirah, S.Si.M.Siselaku Pembimbing yang telah membimbing
dan mengarahkan Kepada Penulis dalam menyelesaikan Tugas Akhir.
4. Seluruh Staf Pengajar/Pegawai Program Studi Fakultas Matematika dan Ilmu
Pengetahuan Alam Universitas Sumatera Utara.
5. Ayahanda dan Ibunda tercinta yang telah memberikan bantuan berupa dukungan
moral dan material yang sangat membantu dalam menyelesaikanTugas Akhir.
6. Kakak-kakak sayater cinta yang telah memberikan motivasi dalam menyelesaikan
Tugas Akhir.
7. Senior kami Faturrahman yang telah memberikan bantuan berupa Ilmu dan
Motivasi dalam menyelesaikan Tugas Akhir.
8. Sahabat Saya MartinSihombing, Hendrik zalukhu, Sura Pensika Saragih yang
telah memberikan Dorongan Semangat dan Motivasi dalam menyelesaikan Tugas
Akhir.
9. Rekan-rekan Fisika Instrumentasi D-III yang memberikan bantuan penulisan
untuk menyelesaikan Tugas Akhir.
Akhir kata, semoga Laporan ini dapat bermanfaat bagi rekan-rekan Mahasiswa
dan pembaca sekalian demi menambah pengetahuan tentang Tugas Akhir.
UNIVERSITAS SUMATERA UTARA
iv
DAFTAR ISI
Halaman
ABSTRAK ................................................................................................................ i
KATA PENGANTAR ............................................................................................. iii
DAFTAR ISI .............................................................................................................. iv
DAFTAR GAMBAR ................................................................................................. vii
DAFTAR TABEL ...................................................................................................... viii
BAB I PENDAHULUAN .......................................................................................... 1
1.1.LatarBelakang .......................................................................................... 1
1.2.RumusanMasalah ..................................................................................... 2
1.3.Batasan Masalah....................................................................................... 2
1.4.Tujuan Penulisan ...................................................................................... 2
1.5.Manfaat Penelitian ................................................................................... 2
1.6.SistematikaPenulisan................................................................................ 2
BAB II LANDASAN TEORI .................................................................................... 4
2.1.LCD .......................................................................................................... 4
2.2.ATmega8 .................................................................................................. 6
2.2.1.Konfigurasi pin ATmega8 ............................................................. 7
2.2.2 Status register ................................................................................. 11
2.2.3 Memory AVR ATmega8 ............................................................... 12
2.2.4 Timer/counter 0 .............................................................................. 13
2.2.5 Komunikasi serial pada ATmega8 ............................................. 13
2.2.6 2.2.6 ArsitekturMikrokontroler ATmega8 .................................. 14
2.2.7 Kelebihan (Fitur) Mikrokontroler AVR ATmega8 ................................. 15
2.3.Power Suplly ............................................................................................ 16
2.3.1 Fungsi Power Supply PadaKomputer ..................................................... 16
2.3.2 Fungsi Power Supply berdasarkanbeberapajeniskonektor .................... 17
2.3.3 Fungsi Power Supply Berdasarkan Management Kabelnya .......... 20
2.3.4 Jenis-jenis power suplly ................................................................. 21
2.4. sensor mpu6050. .................................................................................... 21
BAB III PERANCANGAN DAN PEMBUATAN.................................................... 24
3.1.Diagram Blok Sistem ............................................................................... 24
3.1.1.Fungsi-Fungsi Diagram Blog ......................................................... 24
3.2.Rangkaian Power Suplay ......................................................................... 25
UNIVERSITAS SUMATERA UTARA
v
3.3.Rangkaianmikrokontroler atmega8 .......................................................... 26
3.4.Rangkaian LCD ........................................................................................ 26
3.5.Rangkaian MPU6050 ............................................................................... 27
3.6. Flowchart Alat ........................................................................................ 30
BAB IV ANALISA DAN PENGUJIAN ................................................................... 31
4.1.PengujianRangkaian Power Supply ......................................................... 31
4.2. Program pengujianMikrokontroller ATMega8 ....................................... 31
4.3.PengujianRangkaian LCD ........................................................................ 32
4.4.Pengujian MPU6050 Accelerometer ........................................................ 33
4.5PengujianComplamantary Filter ................................................................ 34
BAB V PENUTUP .................................................................................................... 36
5.1.Kesimpulan .............................................................................................. 36
5.2.Saran ......................................................................................................... 36
DAFTAR PUSATAKAN .......................................................................................... 37
LAMPIRAN
UNIVERSITAS SUMATERA UTARA
vi
DAFTAR GAMBAR
Nomor Gambar Halaman
2.1.StrukturMemori LCD........................................................................................... 5
2.2. ATmega8............................................................................................................. 6
2.3.Konfigurasi Pin ATmega8 ................................................................................... 7
2.4.Status Register ATMega8 .................................................................................... 11
2.5.Peta Memory ATmega8 ....................................................................................... 12
2.6. Blok Diagram ATmega8 ..................................................................................... 14
2.7.Power suply .......................................................................................................... 16
2.8.ATX power conector............................................................................................ 17
2.9. Berg connector .................................................................................................... 19
2.10. ATX 12 (intel) 4 pin conn ................................................................................. 19
2.11. pin PCI-E connector .......................................................................................... 20
2.12. power Supply modular ............................................................................................... 21
2.13. sensor MPU6050 ......................................................................................................... 23
3.1. Blok Diagram Sistem .......................................................................................... 24
3.2. Rangkaian Power Supplay Adaptor (PSA) ......................................................... 25
3.3.RangkaianMikrokontrolerAtmega8 ..................................................................... 26
3.4.Rangkaian LCD ................................................................................................... 27
3.5.RangkaianModul MPU6050 ................................................................................ 28
3.5.FlowchatSistem .................................................................................................... 30
UNIVERSITAS SUMATERA UTARA
vii
DAFTAR TABEL
Nonor Tabel Halaman
2.1. FungsiAlternatif Port B ....................................................................................... 8
2.2. FungsiAlternatif Port C ...................................................................................... 9
2.3. FungsiAlternatif Port D....................................................................................... 10
UNIVERSITAS SUMATERA UTARA
BAB 1
PENDAHULUAN
1.1 Latar belakang
Selama ini dalam pekerjaan mendirikan sebuah bangunan digunakan unting-
unting sebagai indikator ketegakan suatu tiang .Unting-unting yang digunakan dalam
proses pekerjaan bangunan gedung umumnya cara manual yaitu dengan mengukur
jarak benang atas ke tiang dan membandingkan jarak benang (atas unting-unting)ke
tembok. Jika ukuran jarak atas dan bawah sudah sama maka tiang sudah benar benar
tegak. Karena alat ini kecil, tentu mudah hilang atau tertimbun benda atau
peralatannya lainnya.
Para pengguna alat perlu menyimpan dengan rapi, agar tidak bersinggunggan
peralatan besi lainnya kolom,dan sejenisnya memilikipengaruh yang besar terhadap
kualitas dan kekuatanbagunan.Salah satu kualitas tersebut adalah berkaitanketegakan
bidang pada elemen tersebut. Untuk mengukur suatu ketegakan satu bangunan
biasanya digunakan bandulpendulum yang biasa disebut unting-unting (plummet).
Unting-unting yang dikenal juga dengan bandul/pendulum merupakan salah
satu perkakas pertukanganyang biasanya dipergunakan untuk mengukur ketegakan
suatu benda atau bidang, ketegakan bekisting, ketegakankayu saat setting kusen
pintu dan jendela. Bentuknyaseperti prisma dengan ujung lainnya dibuatkan
untukpenempatan kait dan benang.
Alat ukur ini menjadi referensi pengukuran dengan membandingkan hasil
pengukuran kemiringan bekesting yang sama seperti terlihat. Alat ini terbuat dari
bahan besi dengan permukaan berwarna besi putih, kuningan atau besi biasa. Ada
juga bentuk lain yang salah satuujungnya tetap dibuat runcing .Accelero adalah
sebuah tranduser yang berfungsi untuk mengukur percepatan, mendeteksi dan
mengukur getaran, atau percepatan akibat gravitasi bumi. Selain itu dapat digunakan
untuk mengukur kemiringan benda. Sehingga penulis membuat judul proyek “ALAT
UKUR ACELERASI DENGAN COMPLAMANTARY FILTER BERBASIS
MIKROKONTROLLER ATMEGA8”
UNIVERSITAS SUMATERA UTARA
1.2 Rumusan Masalah
Rumusan masalah dalam laporan tugas projek yaitu :
1. Bagaimana cara membuaat alat waterpass bagun tersebut dengan
menggunakan sensor mpu6050 berbasis ATMega8
2. Bagaimana merancang program yang ditanamkan alat tersebut sehingga
dapat mengukur menjadi digital
1.3 Batasan Masalah
Mengacu pada hal diatas, penulisan membuat perancangan alat untuk ALAT
UKUR ACELARASI COMPLAMANTARY BERBASIS MIKROKONTROLER
ATMEGA8 dengan batasan penulis hanya sebagai pembuat program yang akan
dimasukkan ke sensor mpu6050 berbasis ATMega8 sebagai alat bantu ukur
bangun menjadi digital
1.4 Tujuan Penulisan
Adapun tujuan dari penelitian ini adalah sebagai berikut:
1. Sebagai salah satu syarat untuk memenuhi projek program studi Diploma
Tiga(D-III) Fisika Instrumentasi FMIPA USU
2. Perancangan rangkaian rancang bangun waterpass digital menggunakan
sensor mpu6050 berbasis ATMega8
1.5 Manfaat Penelitian
Adapun manfaat penulisan ini antara lain agar dengan alat ini nantinya dapat
diaplikasikan untuk memudahkan sipil untuk mengukur sebuah bangunan .
1.6 Sistematika Penulisan
Dalam penyusunan Tugas akhir ini, pembahasan mengenai sistem alat yang
dibuat dibagi menjadi lima bab dengan sistematika sebagai berikut :
BAB I : PENDAHULUAN
Berisi latar belakang permasalahan, rumusan masalah, batasan masalah, tujuan
penulisan, meanfaat penulisan dan sistematika penulisan dari laporan ini.
UNIVERSITAS SUMATERA UTARA
BAB II : TINJAUAN PUSTAKA
Dalam bab ini dijelaskan tentang teori pendukung yang digunakan untuk
pembahasan dan cara kerja dari rangkaian teori pendukung itu antara lain
tentang ATMega8, sensor mpu6050 dan prinsip kerjanya, software pendukung
dan bahasa program yang digunakan.
BAB III : PERANCANGAN SISTEM
Membahas tentang perencanaan dan pembuatan sistem secara keseluruhan.
BAB IV : ANALISIS DAN PENGUJIAN
Membahas tentang uji coba alat yang telah dibuat, pengoperasian dan spesifikasi
alat dan lain-lain.
BAB V: PENUTUP
Berisi kesimpulan yang diperoleh dari pembuatan Project ini dan saran-saran
untuk pengembangannya.
DAFTAR PUSTAKA
Pada bagian ini akan dipaparkan tentang sumber-sumber literatur yang
digunakan dalam pembutan Projects.
UNIVERSITAS SUMATERA UTARA
BAB II
TEORI DASAR
2.1 LCD (Liquid Crystal Display)
Kegunaan LCD banyak sekali dalam perancangan suatu sistem dengan
menggunakan mikrokontroler, LCD (Liquid Crystal Display) dapat berfungsi untuk
menampilkan suatu nilai sensor, menampilkan teks, atau menampilkan menu pada
aplikasi mikrokontroler. M1632 merupakan modul LCD matrix dengan konfigurasi
16 karakter dan 2 baris dengan setiap karakter nya dibentuk oleh baris pixel dan 5
kolom pixel (1 baris pixel terakhir adalah kursor).
Didalam modul M1632 sudah tersedia HD44780 yang dikeluarkan oleh
Hitachi, Hyundai dan modul-modul M1632 lainnya. HD44780 sebetulnya
merupakan mikrokontroler dirancang khusus untuk mengendalikan LCD dan
mempunyai kemampuan untuk mengatur proses scanning pada layar LCD yang
terbentuk oleh 16 COM dan 40 SEG sehingga mikrokontroler /perangkat yang
mengakses modul LCD ini tidak perlu lagi mengatur scanning pada layar LCD.
Mikrokontroler atau perangkat tersebut hanya mengirim data-data yang merupakan
karakter yang akan ditampilkan pada LCD atau perintah yang mengatur proses
tampilan pada LCD saja.
Adapun konfigurasi dan deskripsi dari pin-pin LCD M1632 antara lain:
1. Pin 1 dihubungkan ke Gnd
2. Pin 2 dihubungkan ke Vcc +5V
3. Pin 3 dihubungkan ke bagian tengah potensiometer 10KOhm sebagai
pengatur kontras.
4. Pin 4 untuk memberitahukan LCD bahwa sinyal yang dikirim adalah data,
jika Pin 4 ini diset ke logika 1 (high, +5V), atau memberitahukan bahwa
sinyal yang dikirim adalah perintah jika pin ini di set ke logika 0 (low, 0V). 5
digunakan
UNIVERSITAS SUMATERA UTARA
5. Pin 5 digunakan untuk mengatur fungsi LCD. Jika di set ke logika 1 (high,
+5V) maka LCD berfungsi untuk menerima data (membaca data). Dan fungsi
untuk mengeluarkan data, jika pin ini di set ke logika 0 (low, 0V). Namun
kebanyakan aplikasi hanya digunakan untuk menerima data, sehingga pin 5
ini selalu dihubungkan ke Gnd.
6. Pin 6 adalah terminal enable. Berlogika 1 setiap kali pengiriman atau
pembaca data.
7. Pin 7 – Pin 4 adalah data 8 bit data bus (Aplikasi ini menggunakan 4 bit MSB
saja, sehingga pin data yang digunakan hanya Pin 11 – Pin 14).
8. Pin 15 dan Pin 16 adalah tegangan untuk menyalakan lampu LCD.
Adapun gambar dari LCD 2x16 adalah sebagai berikut:
Gambar 2.1 Struktur Memori LCD
Modul LCD M1632 memiliki beberapa jenis memori yang digunakan untuk
menyimpan atau memproses data-data yang ditampilkan pada layar LCD.
Setiap memori mempunyai fungsi-fungsi tersendiri:
a. DDRAM
DDRAM merupakan memori tempat karakter yang ditampilkan. Contohnya
karakter „A‟ atau 41h yang ditulis pada alamat 00 akan tampil pada baris
pertama dan kolom pertama dari LCD. Apabila karakter tersebut di alamat
40h, karakter tersebut akan tampil pada baris kedua kolom pertama dari
LCD.
b. CGRAM
UNIVERSITAS SUMATERA UTARA
CGRAM merupakan memori untuk menggambarkan pola seluruh karakter
dan bentuk karakter dapat diubah-ubah sesuai keinginan. Akan tetapi isi
memori akan hilang saat power supply tidak aktif sehingga pola karakter akan
hilang.
c. CGROM
CGROM adalah memori untuk menggambarkan pola sebuah karakter dan
pola tersebut ditentukan secara permanen dari HD44780 sehingga pengguna
tidak dapat menubah lagi. Oleh karena ROM bersifat permanen, pola karakter
tersebut akan hilang walaupun power supply tidak aktif.
2.2 ATmega8
AVR merupakan salah satu jenis mikrokontroler yang di dalamnya terdapat
berbagai macam fungsi.Perbedaannya pada mikro yang pada umumnya
digunakan seperti MCS51 adalah pada AVR tidak perlu menggunakan oscillator
eksternal karena di dalamnya sudah terdapat internal oscillator. Selain itu
kelebihan dari AVR adalah memiliki Power-On Reset, yaitu tidak perlu ada
tombol reset dari luar karena cukup hanya dengan mematikan supply, maka
secara otomatis AVR akan melakukan reset. Untuk beberapa jenis AVR terdapat
beberapa fungsi khusus seperti ADC, EEPROM sekitar 128 byte sampai dengan
512 byte.
Gambar 2.2. ATmega8
Dari gambar 2.2 bahwa AVR ATmega8 adalah mikrokontroler CMOS 8-bit
berarsitektur AVR RISC yang memiliki 8K byte in-System Programmable Flash.
Mikrokontroler dengan konsumsi daya rendah ini mampu mengeksekusi instruksi
dengankecepatan maksimum 16MIPS pada frekuensi 16MHz. Jika dibandingkan
UNIVERSITAS SUMATERA UTARA
dengan ATmega8L perbedaannya hanya terletak pada besarnya tegangan yang
diperlukan untuk bekerja. Untuk ATmega8 tipe L, mikrokontroler ini dapat
bekerja dengan tegangan antara 2,7 - 5,5V sedangkan untuk ATmega8 hanya
dapat bekerja pada tegangan antara 4,5–5,5 V.
2.2.1 Konfigurasi Pin ATmega8
Gambar 2.3. Konfigurasi Pin ATmega8
ATmega8 memiliki 28 Pin, yang masing-masing pin nya memiliki fungsi yang
berbeda-beda baik sebagai port maupun fungsi yang lainnya. Berikut akan
dijelaskan fungsi dari masing-masing kaki ATmega8.
a. VCC Merupakan supply tegangan digital.
b. GND Merupakan ground untuk semua komponen yang membutuhkan
grounding.
c. Port B (PB7...PB0) Didalam Port B terdapat XTAL1, XTAL2, TOSC1,
TOSC2. Jumlah Port B adalah 8 buah pin, mulai dari pin B.0 sampai dengan
B.7. Tiap pin dapat digunakan sebagai input maupun output. Port B
merupakan sebuah 8-bit bi- directional I/O dengan internal pull-up resistor.
Sebagai input, pin-pin yang terdapat pada port B yang secara eksternal
diturunkan, maka akan mengeluarkan arus jika pull-up resistor diaktifkan.
Khusus PB6 dapat digunakan sebagai input Kristal (inverting oscillator
amplifier) dan input ke rangkaian clock internal, bergantung pada pengaturan
Fuse bit yang digunakan untuk memilih sumber clock. Sedangkan untuk PB7
dapat digunakan sebagai output Kristal (output oscillator amplifier)
bergantung pada pengaturan Fuse bit yang digunakan untuk memilih sumber
UNIVERSITAS SUMATERA UTARA
clock. Jika sumber clock yang dipilih dari oscillator internal, PB7 dan PB6
dapat digunakan sebagai I/O atau jika menggunakan maka PB6 dan PB7
(TOSC2 dan TOSC1) digunakan untuk saluran input timer.
Tabel 2.1. Fungsi Alternatif Port B
Port Pin Alternate Functions
PB 7 XTAL2 (Chip Clock Oscillator pin 2)
TOSC2 (Timer Oscillator pin 2)
PB 6 XTAL1 (Chip Clock Oscillator pin 1 or External clock input)
TOSC1 (Timer Oscillator pin 1)
PB 5 SCK (SPI Bus Master Clock Input)
PB 4 MISO (SPI Bus Master Input/Slave Input)
PB 3 MOSI (SPI Bus Master Input/Slave Input)
OC2 (Timer/Counter 2 Output Compare Match Output)
PB 2 SS (SPI Bus Master Slave select)
OCIB (Timer/Counter 1 Output Compare Match B Output)
PB 1 OCIA (Timer/Counter 1 Output Compare Match A Output)
PB 0 ICP1 (Timer/Counter1 Input Capture Pin)
d. Port C (PC5…PC0) Port C merupakan sebuah 7-bit bi-directional I/O port
yang di dalam masing-masing pin terdapat pull-up resistor. Jumlah pin nya
hanya 7 buah mulai dari pin C.0 sampai dengan pin C.6. Sebagai
keluaran/output port C memiliki karakteristik yang sama dalam hal menyerap
arus (sink) ataupun mengeluarkan arus (source). ADC 6 channel
(PC0,PC1,PC2,PC3,PC4,PC5) dengan resolusi sebesar 10bit. ADC dapat kita
gunakan untuk mengubah input yang berupa tegangan analog menjadi data
digital. I2C (SDA dan SDL) merupakan salah satu fitur yang terdapat pada
PORTC. I2C digunakan untuk komunikasi dengan sensor atau device lain
yang memiliki komunikasi data tipe I2C seperti sensor kompas,
accelerometer nunchuck, dll.
e. RESET/PC6 Jika RSTDISBL Fuse diprogram, maka PC6 akan berfungsi
sebagai pin I/O. Pin ini memiliki karakteristik yang berbeda dengan pin - pin
UNIVERSITAS SUMATERA UTARA
yang terdapat pada port C lainnya. Namun jika RSTDISBL Fuse tidak
diprogram, maka pin ini akan berfungsi sebagai input reset. Dan jika level
tegangan yang masuk ke pin ini rendah dan pulsa yang ada lebih pendek dari
pulsa minimum, maka akan menghasilkan suatu kondisi reset meskipun
clock-nya tidak bekerja. RESET merupakan salah satu pin penting di
mikrokontroler, RESET dapat digunakan untuk merestart program. Pada
ATMega8 pin RESET digabungkan dengan salah satu pin IO (PC6). Secara
default PC6 ini di disable dan diganti menjadi pin RESET. Kita dapat
melakukan konfigurasi di fusebit untuk melakukan pengaturannya.
Tabel 2.2. Fungsi Alternatif Port C
f. Port D (PD7…PD0) Port D merupakan 8-bit bi-directional I/O dengan
internal pull-up resistor. Fungsi dari port ini sama dengan port-port yang lain.
Hanya saja pada port ini tidak terdapat kegunaan-kegunaan yang lain. Pada
port ini hanya berfungsi sebagai masukan dan keluaran saja atau biasa disebut
dengan I/O.
g. Tabel 2.3. Fungsi Alternatif Port D
Port Pin Alternate Function
PD 7 AIN1 (Analog Comparator Negative Input)
PD 6 AIN0 (Analog Comparator Positive Input)
PD 5 T1 (Timer/Counter 1 External Counter Input)
Port Pin Alternate Function
PC 6 RESET (Reset Pin)
PC 5 ADCS (ADC Input Channel S)
SCL (Two-wire Serial Bus Clock Line)
PC 4 ADC4 (ADC Input Channel 4)
SDA (Two-wire Serial Bus Data Input/Output Line)
PC 3 ADC3 (ADC Input Channel 3)
PC 2 ADC2 (ADC Input Channel 2)
PC 1 ADC1 (ADC Input Channel 1)
PC 0 ADC0 (ADC Input Channel 0)
UNIVERSITAS SUMATERA UTARA
PD 4 XCK (USART External Clock Input/Output)
T0 (Timer/Counter 0 External Counter Input)
PD 3 INT1 (External Interrupt 1 Input)
PD 2 INT0 (External Interrupt 0 Input)
PD 1 TXD (USART Output Pin)
PD 0 RXD (USART Input Pin)
USART (TXD dan RXD) merupakan jalur data komunikasi serial dengan
level sinyal TTL. Pin TXD berfungsi untuk mengirimkan data serial,
sedangkan RXD kebalikannya yaitu sebagai pin yang berfungsiuntuk
menerima data serial. Interrupt (INT0 dan INT1) merupakan pin dengan
fungsi khusus sebagai interupsi hardware. Interupsi biasanya digunakan
sebagai selaan dari program, misalkan pada saat program berjalan kemudian
terjadi interupsi hardware/software maka program utama akan berhenti dan
akan menjalankan program interupsi. XCK dapat difungsikan sebagai sumber
clock external untuk USART, namun kita juga dapat memanfaatkan clock
dari CPU, sehingga tidak perlu membutuhkan external clock. T0 dan T1
berfungsi sebagai masukan counter external untuk timer 1 dantimer 0. AIN0
dan AIN1 keduanya merupakan masukan input untuk analog comparator.
h. Avcc, Pin ini berfungsi sebagai supply tegangan untuk ADC. Untuk pin ini
harus dihubungkan secara terpisah dengan VCC karena pin ini digunakan
untuk analog saja. Bahkan jika ADC pada AVR tidak digunakan tetap saja
disarankan untuk menghubungkannya secara terpisah dengan VCC. Jika
ADC digunakan, maka AVcc harus dihubungkan ke VCC melalui low pass
filter.
i. AREF, Merupakan pin referensi jika menggunakan ADC.
2.2.2 Status Register
Register ini tidak secara otomatis tersimpan ketika memasuki sebuah rutin
interupsi dan juga ketika menjalankan sebuah perintah setelah kembali dari
UNIVERSITAS SUMATERA UTARA
interupsi. Namun hal tersebut harus dilakukan melalui software. Berikut
adalah gambar status register
Gambar 2.4. Status Register ATMega8
Penjelasan :
a. Bit 7(I)
Merupakan bit Global Interrupt Enable. Bit ini harus di-set agar semua
perintah interupsi dapat dijalankan. Untuk perintah interupsi individual akan
di jelaskan pada bagian yang lain. Jika bit ini di-reset, maka semua perintah
interupsi baik yang individual maupun yang secara umum akan di abaikan.
Bit ini akan dibersihkan atau cleared oleh hardware setelah sebuah interupsi
di jalankan dan akan di-set kembali oleh perintah RETI. Bit ini juga dapat di-
set dan di-reset melalui aplikasi dan intruksi SEI dan CLL.
b. Bit 6(T)
Merupakan bit Copy Storage. Instruksi bit Copy Instructions BLD (Bit Load)
and BST (Bit Store) menggunakan bit ini sebagai asal atau tujuan untuk bit
yang telah dioperasikan. Sebuah bit dari sebuah register dalam Register File
dapat disalin ke dalam bit ini dengan menggunakan instruksi BST, dan
sebuah bit di dalam bit ini dapat disalin ke dalam bit di dalam register pada
Register File dengan menggunakan perintah BLD.
c. Bit 5(H)
Merupakan bit Half Carry Flag. Bit ini menandakan sebuah Half Carry dalam
beberapa operasi aritmatika. Bit ini berfungsi dalam aritmatika BCD.
d. Bit 4(S )
Merupakan Sign bit. Bit ini selalu merupakan sebuah ekslusif di antara
Negative Flag (N) dan two‟s Complement Overflow Flag (V).
e. Bit 3(V)
Merupakan bit Two‟s Complement Overflow Flag. Bit ini menyediakan
fungsi aritmatika dua komplemen.
f. Bit 2(N)
UNIVERSITAS SUMATERA UTARA
Merupakan bit Negative Flag. Bit ini mengindikasikan sebuah hasil negative
di dalam sebuah fungsi logika atai aritmatika.
g. Bit 1(Z)
Merupakan bit Zero Flag. Bit ini mengindikasikan sebuah jasil nol “0” dalan
sebuah fungsi aritmatika atau logika.
h. Bit 0(C)
Merupakan bit Carry Flag. Bit ini mengindikasikan sebuah Carry atau sisa
dalam sebuah aritmatika atau logika.
2.2.3 Memori AVR ATmega8
Memori atmega terbagi menjadi tiga yaitu :
1) Memori Flash
Memori flash adalah memori ROM tempat kode-kode program berada.
Kata flash menunjukan jenis ROM yng dapat ditulis dan dihapus secara
elektrik. Memori flash terbagi menjadi dua bagian yaitu bagian aplikasi
dan bagian boot. Bagian aplikasi adalah bagian kode-kode program apikasi
berada.Bagian boot adalah bagian yang digunakan khusus untuk booting
awal yang dapat diprogram untuk menulis bagian aplikasi tanpa melalui
programmer/downloader, misalnya melalui USART.
Gambar 2.5. Peta Memory ATmega8
2) Memori Data
Memori data adalah memori RAM yang digunakan untuk keperluan
program. Memori data terbagi menjadi empat bagian yaitu : 32 GPR
(General Purphose Register) adalah register khusus yang bertugas untuk
membantueksekusi program oleh ALU (Arithmatich Logic Unit), dalam
UNIVERSITAS SUMATERA UTARA
instruksi assembler setiap instruksi harus melibatkan GPR. Dalam bahasa
C biasanya digunakan untuk variabel global atau nilai balik fungsi dan
nilai-nilai yang dapat memperingan kerja ALU. Dalam istilah processo
komputer sahari-hari GPR dikenal sebagai “chace memory”.I/O register
dan Aditional I/O register adalah register yang difungsikan khusus untuk
mengendalikan berbagai pheripheral dalam mikrokontroler seperti pin
port, timer/counter, usart dan lain-lain. Register ini dalam keluarga
mikrokontrol MCS51 dikenal sebagai SFR (Special Function Register).
3) EEPROM
EEPROM adalah memori data yang dapat mengendap ketika chip mati
(off), digunakan untuk keperluan penyimpanan data yang tahan terhadap
gangguan catu daya.
2.2.4 Timer/Counter 0
Timer/counter 0 adalah sebuah timer/counter yang dapat mencacah sumber
pulsa/clock baik dari dalam chip (timer) ataupun dari luar chip (counter)
dengan kapasitas 8-bit atau 256 cacahan. Timer/counter dapat digunakan
untuk :
a. Timer/counter biasa.
b. Clear Timer on Compare Match (selain Atmega 8)
c. Generator frekuensi (selain Atmega 8)
d. Counter pulsa eksternal
2.2.5 Komunikasi Serial Pada ATmega8
Mikrokontroler AVR ATtmega 8 memiliki Port USART pada Pin 2 dan Pin 3
untuk melakukan komunikasi data antara mikrokontroler dengan
mikrokontroler ataupun mikrokontroler dengan komputer. USART dapat
difungsikan sebagai transmisi data sinkron, dan asinkron.Sinkron berar clock
yang digunakan antara transmiter dan receiver satu sumber clock. Sedangkan
asinkron berarti transmiter dan receiver mempunyai sumber clock sendiri-
sendiri. USART terdiri dalm tiga blok yaitu clock generator, transmiter, dan
receiver.
UNIVERSITAS SUMATERA UTARA
2.2.6 Arsitektur Mikrokontroler ATmega8
Gambar 2.6. Blok Diagram ATmega8
2.2.7 Kelebihan (Fitur) Mikrokontroler AVR ATmega8
Mikrokontroler AVR ATmega8 merupakan CMOS dengan konsumsi daya
rendah, mempunyai 8-bit proses data (CPU) berdasarkan arsitektur AVR
RISC.Dengan mengeksekusi instruksi dalam satu (siklus) clock tunggal,
UNIVERSITAS SUMATERA UTARA
ATmega8 memiliki kecepatan data rata-rata (throughputs) mendekati 1 MIPS
per MHz, yang memungkinkan perancang sistem dapat mengoptimalkan
konsumsi daya dan kecepatan pemrosesan. Berikut kelebihan yang dimiliki
ATmega8 :
1. Kinerja Tinggi, Low-power AVR® 8-bit Microcontroller
Seperti yang disebutkan Atmel dalam websitenya "The low-power Atmel
8-bit AVR RISC-based microcontroller... The device supports throughput
of 16 MIPS at 16 MHz and operates between 2.7-5.5 volts". AVR (Alf
(Egil Bogen) and Vegard (Wollan) 's Risc processor) mengeluarkan
ATmega8 dengan fitur yang sangat menarik untuk dicoba. Selain itu
ATmega8 sangat bagus dalam hal kinerja, cocok untuk penelitian,
pembuatan produk, bahkan untuk pembelajaran Robotik. Disamping
kinerjanya yang handal, ATmega8 juga hemat energi (daya rendah),
karena mampu beroperasi pada tegangan 2,7 sampai 5,5 Volt, dan hanya
mengkonsumsi arus sebesar 3,6 mA.
2. Daya Tahan Tinggi dan Segmen Memori non-volatile.
Mikrokontroler AVR memiliki daya tahan data (retensi data) 20 tahun
ketika suhu mencapai 85°C atau 100 tahun ketika suhu mencapai 25°C.
ATmega8 memiliki 8 KB (KiloByte) memori Flash internal yang dapat
dimasukan kode program utama (seperti file .hex) sehingga cukup untuk
diterapkan dalam penelitian skala kecil - menengah. Disamping memori
Flash, ATmega8 juga memiliki 512 Byte EEPROM yang dapat
menampung data meskipun dalam keadaan OFF. Mikrokontroler ini juga
memiliki 1K Byte Internal SRAM sehingga proses data bisa lebih cepat.
Kelebihan lainnya dari ATmega8 adalah :
a. Dapat diisi data (write) dan dihapus (eraser) sampai 10.000 kali
(untuk Flash) dan 100.000 kali untuk EEPROM.
b. Memiliki daya tahan data (retensi data) 20 tahun ketika suhu
mencapai 85°C atau 100 tahun ketika suhu mencapai 25°C.
c. Terdapat pilihan Kode Boot Section dengan Lock Bits independen.
d. Sistem keamanan data dengan mengunci program untuk Software
Security.
UNIVERSITAS SUMATERA UTARA
2.3 power supply
Power Supply adalah perangkat keras yang berfungsi untuk menyuplai
tegangan langsung kekomponen dalam casing yang membutuhkan tegangan,
misalnya motherboard, hardisk, kipas, dll. Input power supply berupa arus bolak-
balik (AC) sehingga power supply harus mengubah tegangan AC menjadi DC
(arus searah), karena hardware komputer hanya dapat beroperasi dengan arus
DC. Power supply berupa kotak yang umumnya diletakan dibagian belakang atas
casing.
Gambar 2.7 Power suplly
2.3.1 Fungsi Power Supply Pada Komputer.
Fungsi Power Supply pada komputer adalah sebagai perangkat keras yang
memberikan atau menyuplai arus listrik yang sebelumnya diubah dari bentuk arus
listrik yang berlawanan atau AC, menjadi arus listrik yang searah atau biasa disebut
sebagai arus DC. Power supply menyuplai arus listrik DC yang dibutuhkan oleh
perangkat keras di dalam komputer beberapa contoh hardware yang membutuhkan
arus listrik DC adalah harddisk, fan, motherboard dan lain-lain. Power supply juga
memiliki kenektor kabel yang masing-masing konektor kabel tersebut memiliki
fungsi yang berbeda-beda yang sangat dibutuhkan oleh komputer pada saat ini.
UNIVERSITAS SUMATERA UTARA
Sehingga dapat disimpulkan bahwa power supply merupakan perangkat keras yang
sangat penting dalam mengoperasikan suatu komputer.
2.3.2 Fungsi Power Supply berdasarkan beberapa jenis konektor
Power supply memiliki banyak konektor. Dan masing-masing dari konektor
memiliki fungsi yang berbeda. Walaupun sebagian kabel memiliki tegangan listrik
yang sama, tetapi setiap konektor sudah dikelompokkan berdasarkan fungsinya.
Untuk pengenalan, disini ada beberapa tipe konektor dan fungsinya pada komputer
yaitu:
a. ATX power connector (20pin + 4pin) :
Gambar 2.8 ATX power conector
ATX 20/24 pin konektor digunakan untuk menghubungkan power supply unit (PSU)
ke motherboard. Versi lama dari ATX motherboard masih menggunakan ATX 20 pin
konektor, jika kita menggunakan motherboard yang terbaru sudah membutuhkan
ATX 24 pin konektor. Konetktor ini terdiri dari 2 bagian. Bagian pertama berjumlah
20 pin dan bagian kedua 4 pin. Jika kita menggunakan motherboard yang baru maka
gabungkan antara 20 + 4 pin konektornya.
UNIVERSITAS SUMATERA UTARA
b. AT power connector (12 pin) :
Gamabar 2.9 AT power connector (12pin)
Konektor ini digunakan untuk motherboard kelas Pentium II kebawah. Konektor
yang memiliki 12 kabel ini dikelompokkan terpisah menjadi 2 bagian. Bagian
pertama disebut Konektor P8 dan bagian kedua disebut P9. Masing-masing konektor
memiliki 6 kabel. Untuk menghindari kesalahan dalam pemasangan, kita cukup
mempertemukan konektor yang memiliki kabel hitam di tengah-tengah.
c. Molex connector :
Konektor ini digunakan sumber tenaga bagi harddisk dan cd drive. Kadang sebagian
produsen juga membuat fan / kipas pendingin, lampu-lampu dan asesoris lainnya
menggunakan konektor ini. Konektor ini memiliki 4 kabel yang berbeda warna, yaitu
Merah, Hitan dan Kuning. Setiap warna memiliki sumber tegangan yang berbeda-
beda pula.
UNIVERSITAS SUMATERA UTARA
d. Berg connector :
Gambar 2.9 Berg connector
Merupakan konektor ukuran mini dari Molek. Konektor ini khusus digunakan untuk
Floppy Drive atau pun external audio card. Warna yang digunakan sama dengan
molek konektor, yaitu Warna Kuning (+12V), Merah (+5V) dan Hitam (0V atau
Ground). Karena penggunaan konektor ini jarang sekali, makanya pada setiap PSU
hanya berjumlah 1 atau 2 paling banyak.
e. ATX 12V (Intel) 4 pin connector :
Gambar 2.10 ATX 12 (intel) 4 pin connector
UNIVERSITAS SUMATERA UTARA
Konektor ini kebanyakan dipakai oleh para pengguna yang menggunakan Processor
buatan Intel. Fungsi dari konektor ini adalah sebagai penyedia tenaga tambahan
sebesar 12 V untuk Pentium 4 CPU. Jadi pada Pentium 4 kebawah, konektor ini tidak
perlu digunakan. Sekarang sebagian AMD motherboard juga sudah menggunakan
konektor ATX 12V ini.
f. pin PCI-E connector :
Gambar 2.11 pin PCI-E connector
Konektor yang satu ini memang jarang ditemukan untuk semua PC. Biasanya orang
yang menggunakan PSU ini adalah orang yang bekerja di bidang Multimedia
khususnya Video. Karena konektor ini hanya digunakan sebagai penambah daya
untuk video card yang menggunakan slot PCI Express. Jika kita menggunakan
Videoa Card jenis ini, tentu saja kita harus memiliki PSU yang mendukung untuk
konektor ini.
2.3.3 Fungsi Power Supply Berdasarkan Management Kabelnya
Power Supply juga dibedakan berdasarkan management pemasangan
kabelnya. yaitu power supply non-modular dan power supply modular. Secara
populasi, power supply non-modular lebih banyak di jual di pasaran karena memang
segmen-nya untuk kalangan kantong pas-pas-an. Yang membedakan adalah
management pemasangan kabelnya. Untuk lebih jelaskan lihat gambar perbedaannya
UNIVERSITAS SUMATERA UTARA
berikut.. Terlihat kabel dijadikan satu bundle dan keluar dari 1 lubang serta tidak bisa
dilepas pasang, jadi jika ada kabel yg tidak digunakan maka kabel itu tetap
menjuntai, dari kerapian agak menganggu dan tentunya juga mempengaruhi sirkulasi
udara di casing.
Gambar 2.12 power Supply modular
Sedangkan 2 gambar diatas adalah contoh power supply modular, tiap kabel bisa
dilepas pasang sesuai kebutuhan. Dengan demikian, managament kabel akan lebih
mudah, otomatis kualitas sirkulasi di casing komputer juga ikut terbantu.
Kekuranganya dari segi harga, pasti lebih mahal ketimbang yang non-modular.
2.3.4 Jenis-jenis power suplly
Jenis-Jenis Power Supply yang terdapat pada kebanyakan komputer sekarang ini
terbagi menjadi dua jenis. Kedua jenis power supply tersebut adalah Power Supply
AT dan Power Supply ATX. Dari kedua jenis power supply tersebut memiliki
beberapa perbedaan dan fungsinya.
UNIVERSITAS SUMATERA UTARA
1.Power Supply AT
merupakan jenis power supply yang tergolong lawas. Pada masa
kejayaannya, power supply jenis ini banyak digunakan oleh komputer Pentium II dan
juga Pentium III. Meskipun kini sangat jarang ditemui, namun Power Supply AT
sesungguhnya memiliki berbagai kelebihan. Power supply jenis ini memiliki kabel
power yang terhubung ke motherboard yang terbagi menjadi dua, yaitu konektor P8
dan P9. Resiko kesalahan pemasangan dengan menggunakan power supply jenis ini
pun sangat sedikit, mengingat untuk pemasangannya dibutuhkan ketelitian tinggi.
Kesalahan yang biasa terjadi saat pemasangan power supply adalah terbalik
mengingat terdapat dua konektor penghubung. Untuk pemasangan yang benar anda
harus memperhatikan kabel power warna hitam pada masing-masing konektor.
Pasangkan tepat pada tengah-tegah sambungan untuk menghindari konsleting. Untuk
mematikan Power Supply AT, anda harus menekan tombol power secara langsung
mengingat power supply jenis ini terhubung secara langsung ke chasing computer.
2. Power Supply ATX.
Power supply jenis ini memiliki tampilan yang lebih simpel dibandingkan power
supply sebelumnya. Untuk jenis power supply satu ini kabel konektor dengan
motherboard sudah menjadi satu dengan jumlah total 20 PIN. Oleh karena itu, Power
Supply ATX sering juga disebut dengan ATX 20 PIN. Untuk pemasangannya
sendiri, power supply jenis ini tergolong sangat mudah. Hal tersebut mengingat jika
terjadi kesalahan dalam pemasangan maka port pada motherboard dengan konektor
tidak akan menyatu. Hindari pemaksaan saat pemasangan karena dapat menebabkan
kerusakan baik pada port maupun pada konektor.
Kelebihan dari Power Supply ATX dibandingkan dengan AT adalah pada tombol
powernya. Untuk ATX 20 PIN sendiri sudah dilengkapi dengan auto shutdown yang
berfungsi mematikan power supply ketika computer dimatikan. Sehingga kita tidak
perlu susah payah untuk menekan tombol power seperti pada Power Supply AT. Dari
UNIVERSITAS SUMATERA UTARA
jenis-jeins power supply diatas, Power Supply ATX menjadi primadona untuk power
supply saat ini. Hal tersebut terbukti dari banyaknya pengguna komputer yang
memilih untuk menggunakan power supply yang satu ini.
2.4 sensor mpu6050
pada kesempatan kali ini kita akan membahas bagaimana cara menggunakan
sensor MPU6050. Sebelumnya kita bahas terlebuh dahulu sensor jenis apa sih
MPU6050 ini? 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.
Gambar 2.13 sensor MPU6050
UNIVERSITAS SUMATERA UTARA
BAB III
PERANCANGAN DAN PEMBUATAN
3.1 Blok Diagram Sistem
Gambar 3.1 Blok Diagram Sistem Alat
3.1.1 Fungsi Blok Sistem Alat
Keterangan dari Blok Diagram Sistem diatas adalah sebagai berikut :
1. Powre supply
Berfungsi untuk perangkat keras yang berfungsi untuk menyuplai tegangan
langsung kekomponen dalam casing yang membutuhkan tegangan
2. ATmega8
Berfungsi sebagai kontrol dan pembaca sinyal yang diberikan oleh sensor
3. LCD
Berfungsi sebagai output untuk menampilkan data
Power supply
MPU6050
Compelem
entary
filter
ATmega8
LCD
UNIVERSITAS SUMATERA UTARA
4. MPU6050
Berfungsi untuk membaca kemiringan sudut berdasarkan data dari sensor
5. Complementary filter
Berfungsi untuk
3.2 Rangkaian Power Suplay
Rangkaian ini berfungsi untuk memberikan supply tegangan ke seluruh
rangkaian yang ada. Rangkaian PSA yang dibuat terdiri dari dua keluaran, yaitu 5
volt dan 12 volt, keluaran 5 volt digunakan untuk mensupplay tegangan ke seluruh
rangkaian, sedangkan keluaran 12 volt digunakan untuk mensuplay tegangan ke
relay. Rangkaian power supplay ditunjukkan pada gambar 3.2 berikut ini :
Gambar 3.2 Rangkaian Power Supplay Adaptor (PSA)
Trafo CT merupakan trafo stepdown yang berfungsi untuk menurunkan
tegangan dari 220 volt AC menjadi 12 volt AC. Kemudian 12 volt AC akan
disearahkan dengan menggunakan dua buah dioda, selanjutnya 12 volt DC akan
diratakan oleh kapasitor 2200 μF. Regulator tegangan 5 volt (LM7805CT) digunakan
agar keluaran yang dihasilkan tetap 5 volt walaupun terjadi perubahan pada tegangan
masukannya. LED hanya sebagai indikator apabila PSA dinyalakan. Transistor PNP
TIP 32 disini berfungsi untuk mensupplay arus apabila terjadi kekurangan arus pada
rangkaian, sehingga regulator tegangan (LM7805CT) tidak akan panas ketika
rangkaian butuh arus yang cukup besar. Tegangan 12 volt DC langsung diambil dari
keluaran 2 buah dioda penyearah.
UNIVERSITAS SUMATERA UTARA
3.3Rangkaian mikrokontroler atmega8
Rangkaian mikrokontroller merupakan pusat pengendalian dari bagian input
dan keluaran serta pengolahan data. Pada sistem ini digunakan mikrokontroller jenis
ATmega8 yang memiliki spesifikasi sebagai berikut:
a. Kristal 8 MHz, yang berfungsi sebagai pembangkit clock.
b. Kapasitor 22 pF pada pin XTAL1 dan XTAL2.
c. Resistor 10 kΩ dan kapasitor 10 nF pada pin reset.
d. Port masukan dan keluaran yang digunakan yaitu :
1. PortC.0 digunakan sebagai Penerima data dari remote (receiver)
2. PortA.1, PortB.1 -PortB.4 digunakan sebagai data input basis transistor pada
driver relay.
Skema rangkaian sistem minimum mikrokontroller dapat dilihat pada gambar berikut
:
Gambar 3.3 Rangkaian Mikrokontroler atmega8
UNIVERSITAS SUMATERA UTARA
X Y
3.4 Rangkaian LCD
Pada alat ini, display yang digunakan adalah LCD (Liquid Crystal Display)
16 x 2. Untuk blok ini tidak ada komponen tambahan karena mikrokontroler
dapat memberi data langsung ke LCD, pada LCD Hitachi - M1632 sudah
terdapat driver untuk mengubah data ASCII output mikrokontroler menjadi
tampilan karakter. Pemasangan potensio sebesar 10 KΩ untuk mengatur
kontras karakter yang tampil. Gambar 3.7 berikut merupakan gambar
rangkaian LCD yang dihubungkan ke mikrokontroler.
Dari gambar 3.6, rangkaian ini terhubung ke PD.5, PD.6, PD.7, PB.0, PB.1 ,
PB.2 , PB.3 yang merupakan pin I/O dua arah dan pin fungsi khusus, yaitu
sebagai Timer/Counter, komperator analog dan SPI mempunyai fungsi
khusus sebagai pengiriman data secara serial. Sehingga nilai yang akan
tampil pada LCD display akan dapat dikendalikan oleh Mikrokontroler
Atmega8.
Gambar 3.4 Rangkaian LCD
3.5 Rangkaian MPU6050
Robot ini menggunakan sensor modul GY-521 dan sensor yang digunakan
adalah MPU6050, berikut rangkaian modul Gy-521.Sensor ini dapat mendeteki 3
axis sudut dan 3 axis kecepatan sudut, untuk 3 axis sudut adalah sudut x, y dan z.
Pada robot ini hanya menggunakan satu axis sudut, yaitu sumbu y. data yang
akan berubah jika sensor digerakkan searah sumbu y, data yang dihasilkan akan
dibagi dengan sensvitas sensor. Dalam perancangan ini hanya menggunakan 8 bit (0
– 255). Hasil pembacaan akan dibagi dengan sensivitas untuk mendapat hasil dalam
UNIVERSITAS SUMATERA UTARA
satuan g (gravitasi), dan nilai maksimumnya adalah 1 g dan minimumnya adalah -1
g, pada sensor ini nilai maksimal didapat pada sudut 900 jika digerakkan ke arah
sudut 180 maka nilainya akan berkurang secara linier sesuai dengan sudut hingga ke
sudut 00 sebaliknya jika digerakkan ke sudut 0
0 maka nilainya akan dimulai dari 0
dan naik secara linier hinggal ke nilai 255 di sudut 00, mengingat karakter
pembacaan sensor untuk range 0 – 255 adalah 00 - 180
0, dan nilai tertinggi dan
terendah pada sudut 90, makan perlu manipulasi program untuk mendapatkan sudut
satu lingkaran utuh (00 – 360), jika output mengarah ke angka yang lebih kecil maka
nilai maksimum (255) dikurangi output accelerometer, begitu juga sebaliknya jika
output mengarah ke angka yang lebih besar maka nilai output accelerometer
dikurangi dengan nilai minimum (0).
Untuk mengetehui output mengarah ke angka besar atau kea arah kecil maka
diperlukan angka refrensi dalam hal ini adalah pembacaan sensor pada sudut 900, jika
nilai output accelerometer lebih kecil dari refrensi maka nilanya mengarah ke angka
besar sebaliknya jika nilai output accelerometer lebih besar dari nilai refrensi maka
nilainya mengarah ke angka yang lebih kecil.
Output gyroscope berpengaruh kepada kesetabilan robot saat robot bergerak dan
saat robot mencapai titik seimbang robot, itu karena output gyroscope akan berbalik
saat terjadi robot berhenti mendadak dan besar kecilnya nilai juga berpengaruh dari
seberapa cepat kecepatan sudutnya.Berikut rangkaian MPU6050.
UNIVERSITAS SUMATERA UTARA
Gambar 3.5 Rangkaian Modul MPU6050
Dari rangkain di atas terlihat hanya 2 (dua) port saja yang dihubungkan ke
mikrokontroller, dan itu berguna untuk menghemat penggunaan port pada
mikrokontroller, tetapi kekurangannya waktu yang dibutuhkan untuk membaca
pastinya lebih lama jika dibandingkan dengan menggunakan PORT ADC, tetapi
selisih delay tidak terlalu mempengaruhi keseimbangan robot, sehingga komunikasi
menggunakan ini dapat digunakan.
UNIVERSITAS SUMATERA UTARA
3.6 Flowchart Alat
Gambar 3.6 flowchart alat
start
Inisialisasi
Read axis
Filter noise
complementary filter
Tampil LCD
selesai
UNIVERSITAS SUMATERA UTARA
BAB IV
ANALISA DAN PENGUJIAN
4.1 Pengujian Rangkaian Power Supply
Pengujian rangkaian power supply ini bertujuan untuk mengetahui tegangan
yang dikeluarkan oleh rangkaian tersebut, dengan mengukur tegangan keluaran dari
power supply menggunakan multimeter digital. Setelah dilakukan pengukuran maka
diperoleh besarnya tegangan keluaran sebesar 5 volt. Dengan begitu dapat dipastikan
apakah terjadi kesalahan terhadap rangkaian atau tidak. Jika diukur, hasil dari
keluaran tegangan tidak murni sebesar +9 Volt dan +12 Volt, tetapi +8.97Volt dan
+12.03 Volt. Hasil tersebut dikarenakan beberapa faktor, diantaranya kualitas dari
tiap-tiap komponen yang digunakan nilainya tidak murni.Selain itu, tegangan jala-
jala listrik yang digunakan tidak stabil.
4.2 Program pengujian Mikrokontroller ATMega8
Pemograman menggunakan mode ISP (In System Programming)
mikrokontroler harus dapat deprogram pada papan rangkaian dan rangkaian
mikrokontroler harus dapat dikenali oleh program downloader. Pada pengujian ini
berhasil dilakukan dengan dikenalinya jenis mikrokontroler oleh program
downloader yaitu Atmega8.
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
UNIVERSITAS SUMATERA UTARA
Atemega8 mengunakan Kristal dengan frekuensi 8 Mhz,apabila Chip
Signature sudah dikenali baik dan dalam waktu singkat, bias dikatakan rangkaian
mikrokontroler bekerja baik dengan mop ISP-nya.
4.3 Pengujian Interfacing LCD
Sensor akan membutuhkan waktu yang relatif untuk menyetabilkan tegangan
dan kondisi sensor. Dapat di simpulkan bahwa cara kerja sensor sensor encoder
ini adalah mendeteksi dan memgetahui hasil dari pengukuran ketebalan, diamter
dalam dan luar, juga kedalaman suatu benda yang akan diukur. Kemudian data
dikirim ke mikrokontroller, pada mikrokontroller dikalibrasi untuk mendapatkan
nilai yang sebenarnya. Setelah dikalibrasi data akan ditampilkan di LCD.
Pengujian sistem secara keseluruhan ini dilakukan dengan menggabungkan
semua peralatan ke dalam sebuah system yang terintegrasi. Tujuannya untuk
mengetahui bahwa rangkaian yang dirancang telah bekerja sesuai yang
diharapkan. Berikut adalah program untuk menampilkan data di LCD :
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 6, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
lcd.print("hello, world!");
}
void loop() {
lcd.setCursor(0, 1);
lcd.print(millis() / 1000);
}
UNIVERSITAS SUMATERA UTARA
4.4 Pengujian MPU6050 Accelerometer.
Unutk mengetahui sensor ini dapat bekerja dengan baik, maka dilakukan
pengujian dengan memprogram mikrokontroller, dengan tujuan untuk memastikan
sensor dapat mendeteksi Accelerometer atau tidak. Program dapat dilihat sebagai
berikut
#include <Wire.h>
#include <MPU6050.h>
MPU6050 mpu;
void setup()
{
Serial.begin(9600);
while(!mpu.begin(MPU6050_SCALE_2000DPS,
MPU6050_RANGE_2G))
{
delay(500);
}
}
void loop()
{
Vector normAccel = mpu.readNormalizeAccel();
Int pitch=-(atan2(normAccel.XAxis, sqrt(normAccel.
YAxis*normAccel.YAxis+normAccel.ZAxis*normAccel.ZAxis))*1
80.0)/M_PI;
Int roll=(atan2(normAccel.YAxis,normAccel.ZAxis)*180.0)
/M_PI;
Serial.print("DATA,");
Serial.print("TIME,");
Serial.print(pitch);
Serial.print(",");
Serial.print(roll);
Serial.println();
delay(100);
}
UNIVERSITAS SUMATERA UTARA
Data dikirim menggunakan komunikasi serial, dan langsung di float ke
Microsoftexcel dengan software PLX-DAQ, yang dirilis oleh parallax. Disini juga
terlihat hasil pembacaan sensor yang telah konversi data hasil pembacaan sensor ke
bentuk drajat Roll dan Pitch. Setelah program diterima sensor di digerakan kedepan
dan kebelakang
4.5 Pengujian Complamantary Filter
Filter ini digunakan untuk mengabungkan pembacaan gyroscope dan
accelerometer, filter ini dapat di jalankan dengan persamaan sebagai berikut:
CF= A * (f_angle + gyro * dt) + (1 - A) * acc;
dimana
dt = 0,010
a = 0,98
Penggabungan dan pengujianrumus didalam program, dapat dilihat seperti
program sebagai berikut:
#include <Wire.h>
#include <MPU6050.h>
MPU6050 mpu;
unsigned long timer = 0;
float timeStep = 0.01;
float roll_gyro = 0;
unsigned long preTime = 0;
float r_angle, f_angle, omega;
void setup()
{
Serial.begin(9600);
while(!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G))
{
delay(500);
UNIVERSITAS SUMATERA UTARA
}
mpu.calibrateGyro();
mpu.setThreshold(3);
}
void loop()
{
timer = millis();
Vector norm = mpu.readNormalizeGyro();
Vector normAccel = mpu.readNormalizeAccel();
int roll_acc = (atan2(normAccel.YAxis, normAccel.ZAxis)*180.0)/M_PI;
roll_gyro = roll_gyro + norm.XAxis * timeStep;
float dt = 0,010;
preTime = now;
float A = 0.8;
f_angle = A * (f_angle + roll_gyro * dt) + (1 - A) * roll_acc;
Serial.print("DATA,");
Serial.print("TIME,");
Serial.print(roll_acc);
Serial.print(",");
Serial.print(roll_gyro);
Serial.print(",");
Serial.println(f_angle);
}
Ketika program dijalankan dan sensor digerakkan ke depan dan ke belakang
maka output sensor gyroscope dan accelerometer akan digabungkan ke
complementary filter untuk mendapatkan sudut yang seharusnya, pembacaan sensor
accelerometer yang tidak stabil saat bergerak akan diredam oleh pembacaan
gyroscope yang peka terhadap sensor yang bergerak tetapi tidak stabil saat sensor
dalam keadaan diam, dengan demikian perlu digunakan compelementary filter untuk
menutupi kekurangan accelerometer dengan pembacaan gyrocope. berikut hasil
pembacaan complementary filter.
UNIVERSITAS SUMATERA UTARA
BAB V
PENUTUP
5.1 KESIMPULAN
Setelah melakukan tahap perancangan dan pembuatan system yang kemudian
dilanjutkan dengan tahap pengujian dan analisa maka dapat diambil kesimpulan
sebagai berikut :
1. Pengukuran waterpass digital lebih mudah dilakukan karena waktu yang
dibutuhkan untuk pengukuran relatif singkat dan sudut kemiringan disajikan
dalam satuan derajat.
2. Penelitian ini memaparkan rancang bangun waterpass digital menggunakan
sensor MPU6050 berbasis ATmega8 yang portable dan ringan.
5.2 SARAN
Dari Tugas laporan alat ini masih terdapat beberapa kekurangan dan
dimungkinkan untuk pengembangan lebih lanjut. Oleh karenanya penulis merasa
perlu untuk member saran sebagai berikut :
1. Sebaiknya kotak penyimpanan komponen elektronika kompak sehingga
pada saat penekanan komponen elektronika goyang hal ini tidak
menggangu.
2. pada saat pembacaan digital kurang stabil hal ini dimungkinkan karena
penguat kurang stabil dan kuat arus baterai kurang stabil
UNIVERSITAS SUMATERA UTARA
DAFTAR PUSTAKA
A. Winoto, Mikrokontroler AVR ATmega8/32/16/8535 dan pemprogramannya dengan
bahasa C pada WinAVR, Bandung, Indonesia: Informatika, 2008.
Bishop Owen, 2004. Dasar-dasar Elektronika. Jakarta : Erlangga
Setiawan, Iwan,2009.Buku Ajar Sensor dan Transduser. Semarang: Fakultas Teknik
Universitas Diponegoro
Available: http://www.imagebali.net/detail-artikel/1174-mengukur-ketegakan-bidang.php.
Avalaible: http://elektro-kontrol.blogspot.com/2011/06/pengukuran-kemiringan
menggunakan.html
Website. http://prasetyoabdi.blogspot.co.id/2014/12/menggunakan-sensor-mpu6050-
pada.html
Website: http://www.insinyoer.com/timer-pada-mikrokontroller-avr/
Website: https://dudirudiawan8.files.wordpress.com/2014/10/162146-front2.jpg
Website. http://khedanta.wordpress.com/2011/08/23/unting-unting/.
Website. http://www.innovativeelectronics.com/innovative_electronics/
[25 September 2011]
Website. https://dudirudiawan8.files.wordpress.com/2014/10/eps4plus4.jpg
Website. https://dudirudiawan8.files.wordpress.com/2014/10/images1.jpeg
Website. https://dudirudiawan8.files.wordpress.com/2014/10/conn_atx_classic2.jpg
Website. http://www.researchgate.net/figure/271646901_fig8_Figure-33-Block-Diagram-of-
ATmega8
Website. : http://giantika.ilearning.me/2014/03/04/atmega8-dan-atmega8535
Website. : http://fahmizaleeits.wordpress.com/2010/04/09/fitur-atmega8535
UNIVERSITAS SUMATERA UTARA
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 6, 5, 4, 3, 2);
#include <Wire.h>
#include <Kalman.h> // Source: https://github.com/TKJElectronics/KalmanFilter
#define RESTRICT_PITCH // Comment out to restrict roll to ±90deg instead - please read:
http://www.freescale.com/files/sensors/doc/app_note/AN3461.pdf
Kalman kalmanX; // Create the Kalman instances
Kalman kalmanY;
/* IMU Data */
double accX, accY, accZ;
double gyroX, gyroY, gyroZ;
int16_t tempRaw;
double gyroXangle, gyroYangle; // Angle calculate using the gyro only
double compAngleX, compAngleY; // Calculated angle using a complementary filter
double kalAngleX, kalAngleY; // Calculated angle using a Kalman filter
uint32_t timer;
uint8_t i2cData[14]; // Buffer for I2C data
// TODO: Make calibration routine
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
Wire.begin();
#if ARDUINO >= 157
Wire.setClock(400000UL); // Set I2C frequency to 400kHz
UNIVERSITAS SUMATERA UTARA
#else
TWBR = ((F_CPU / 400000UL) - 16) / 2; // Set I2C frequency to 400kHz
#endif
i2cData[0] = 7; // Set the sample rate to 1000Hz - 8kHz/(7+1) = 1000Hz
i2cData[1] = 0x00; // Disable FSYNC and set 260 Hz Acc filtering, 256 Hz Gyro filtering, 8 KHz
sampling
i2cData[2] = 0x00; // Set Gyro Full Scale Range to ±250deg/s
i2cData[3] = 0x00; // Set Accelerometer Full Scale Range to ±2g
while (i2cWrite(0x19, i2cData, 4, false)); // Write to all four registers at once
while (i2cWrite(0x6B, 0x01, true)); // PLL with X axis gyroscope reference and disable sleep mode
while (i2cRead(0x75, i2cData, 1));
if (i2cData[0] != 0x68) { // Read "WHO_AM_I" register
Serial.print(F("Error reading sensor"));
while (1);
}
delay(100); // Wait for sensor to stabilize
while (i2cRead(0x3B, i2cData, 6));
accX = (int16_t)((i2cData[0] << 8) | i2cData[1]);
accY = (int16_t)((i2cData[2] << 8) | i2cData[3]);
accZ = (int16_t)((i2cData[4] << 8) | i2cData[5]);
#ifdef RESTRICT_PITCH // Eq. 25 and 26
double roll = atan2(accY, accZ) * RAD_TO_DEG;
double pitch = atan(-accX / sqrt(accY * accY + accZ * accZ)) * RAD_TO_DEG;
#else // Eq. 28 and 29
double roll = atan(accY / sqrt(accX * accX + accZ * accZ)) * RAD_TO_DEG;
double pitch = atan2(-accX, accZ) * RAD_TO_DEG;
#endif
kalmanX.setAngle(roll); // Set starting angle
kalmanY.setAngle(pitch);
UNIVERSITAS SUMATERA UTARA
gyroXangle = roll;
gyroYangle = pitch;
compAngleX = roll;
compAngleY = pitch;
timer = micros();
}
void loop() {
/* Update all the values */
while (i2cRead(0x3B, i2cData, 14));
accX = (int16_t)((i2cData[0] << 8) | i2cData[1]);
accY = (int16_t)((i2cData[2] << 8) | i2cData[3]);
accZ = (int16_t)((i2cData[4] << 8) | i2cData[5]);
tempRaw = (int16_t)((i2cData[6] << 8) | i2cData[7]);
gyroX = (int16_t)((i2cData[8] << 8) | i2cData[9]);
gyroY = (int16_t)((i2cData[10] << 8) | i2cData[11]);
gyroZ = (int16_t)((i2cData[12] << 8) | i2cData[13]);;
double dt = (double)(micros() - timer) / 1000000; // Calculate delta time
timer = micros();
#ifdef RESTRICT_PITCH // Eq. 25 and 26
double roll = atan2(accY, accZ) * RAD_TO_DEG;
double pitch = atan(-accX / sqrt(accY * accY + accZ * accZ)) * RAD_TO_DEG;
#else // Eq. 28 and 29
double roll = atan(accY / sqrt(accX * accX + accZ * accZ)) * RAD_TO_DEG;
double pitch = atan2(-accX, accZ) * RAD_TO_DEG;
#endif
double gyroXrate = gyroX / 131.0; // Convert to deg/s
double gyroYrate = gyroY / 131.0; // Convert to deg/s
UNIVERSITAS SUMATERA UTARA
#ifdef RESTRICT_PITCH
if ((roll < -90 && kalAngleX > 90) || (roll > 90 && kalAngleX < -90)) {
kalmanX.setAngle(roll);
compAngleX = roll;
kalAngleX = roll;
gyroXangle = roll;
} else
kalAngleX = kalmanX.getAngle(roll, gyroXrate, dt); // Calculate the angle using a Kalman filter
if (abs(kalAngleX) > 90)
gyroYrate = -gyroYrate; // Invert rate, so it fits the restriced accelerometer reading
kalAngleY = kalmanY.getAngle(pitch, gyroYrate, dt);
#else
if ((pitch < -90 && kalAngleY > 90) || (pitch > 90 && kalAngleY < -90)) {
kalmanY.setAngle(pitch);
compAngleY = pitch;
kalAngleY = pitch;
gyroYangle = pitch;
} else
kalAngleY = kalmanY.getAngle(pitch, gyroYrate, dt); // Calculate the angle using a Kalman filter
if (abs(kalAngleY) > 90)
gyroXrate = -gyroXrate; // Invert rate, so it fits the restriced accelerometer reading
kalAngleX = kalmanX.getAngle(roll, gyroXrate, dt); // Calculate the angle using a Kalman filter
#endif
gyroXangle += gyroXrate * dt; // Calculate gyro angle without any filter
gyroYangle += gyroYrate * dt;
//gyroXangle += kalmanX.getRate() * dt; // Calculate gyro angle using the unbiased rate
//gyroYangle += kalmanY.getRate() * dt;
UNIVERSITAS SUMATERA UTARA
compAngleX = 0.93 * (compAngleX + gyroXrate * dt) + 0.07 * roll; // Calculate the angle using a
Complimentary filter
compAngleY = 0.93 * (compAngleY + gyroYrate * dt) + 0.07 * pitch;
// Reset the gyro angle when it has drifted too much
if (gyroXangle < -180 || gyroXangle > 180)
gyroXangle = kalAngleX;
if (gyroYangle < -180 || gyroYangle > 180)
gyroYangle = kalAngleY;
/* Print Data */
#if 0 // Set to 1 to activate
Serial.print(accX); Serial.print("\t");
Serial.print(accY); Serial.print("\t");
Serial.print(accZ); Serial.print("\t");
Serial.print(gyroX); Serial.print("\t");
Serial.print(gyroY); Serial.print("\t");
Serial.print(gyroZ); Serial.print("\t");
Serial.print("\t");
#endif
Serial.print(roll); Serial.print("\t");
Serial.print(gyroXangle); Serial.print("\t");
Serial.print(compAngleX); Serial.print("\t");
Serial.print(kalAngleX); Serial.print("\t");
Serial.print("\t");
UNIVERSITAS SUMATERA UTARA
Serial.print(pitch); Serial.print("\t");
Serial.print(gyroYangle); Serial.print("\t");
Serial.print(compAngleY); Serial.print("\t");
Serial.print(kalAngleY); Serial.print("\t");
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Pitch Rol ");
lcd.setCursor(2,1);
lcd.print(kalAngleY,0);
lcd.write(0b11011111);
lcd.setCursor(11,1);
lcd.print(kalAngleX,0);
lcd.write(0b11011111);
#if 0 // Set to 1 to print the temperature
Serial.print("\t");
double temperature = (double)tempRaw / 340.0 + 36.53;
Serial.print(temperature); Serial.print("\t");
#endif
Serial.print("\r\n");
delay(200);
}
UNIVERSITAS SUMATERA UTARA