dht11 PDF

Anda mungkin juga menyukai

Anda di halaman 1dari 71

Universitas Sumatera Utara

Repositori Institusi USU http://repositori.usu.ac.id


Departemen Fisika Skripsi Sarjana

2017

Rancang Bangun Sistem Pengukuran


Data Suhu, Kelembaban dan Tekanan
Udara Berbasis Mikrokontroler Atmega 328P

Ritonga, Yetti Febriyani

http://repositori.usu.ac.id/handle/123456789/3174
Downloaded from Repositori Institusi USU, Univsersitas Sumatera Utara
RANCANG BANGUN SISTEM PENGUKURAN DATA SUHU,
KELEMBABAN DAN TEKANAN UDARABERBASIS MIKROKONTROLER
ATMEGA 328P

SKRIPSI

YETTI FEBRIYANI RITONGA


150821035

DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2017

UNIVERSITAS SUMATERA UTARA


RANCANG BANGUN SISTEM PENGUKURAN DATA SUHU,
KELEMBABAN DAN TEKANAN UDARABERBASIS MIKROKONTROLER
ATMEGA 328P

SKRIPSI
Diajukan untuk melengkapi dan memenuhi syarat mencapai gelar sarjana sains

YETTI FEBRIYANI RITONGA


150821035

DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2017

UNIVERSITAS SUMATERA UTARA


PERSETUJUAN

Judul : RANCANG BANGUN SISTEM PENGUKURAN DATA


SUHU, KELEMBABAN DAN TEKANAN UDARA
BERBASIS MIKROKONTROLER ATMEGA 328P
Kategori : Skripsi
Nama : Yetti Febriyani Ritonga
NIM : 150821035
Program Studi : Strata I ( S1) Fisika
Departemen : Fisika
Fakultas : Matematika dan Ilmu Pengetahuan Alam (MIPA) Universitas
Sumatera Utara

Diluluskan di
Medan, Agustus 2017

Komisi Pembimbing :

Diketahui/Disetujui oleh
KetuaDepartemen Fisika FMIPA USU, Pembimbing,

(Dr. Perdinan Sinuhaji, MS) Prof. Dr. Marhaposan Situmorang


NIP .195903101987031002 NIP. 195510301980031003

UNIVERSITAS SUMATERA UTARA


PERNYATAAN

RANCANG BANGUN SISTEM PENGUKURAN DATA SUHU,


KELEMBABAN DAN TEKANAN UDARA BERBASIS
MIKROKONTROLER ATMEGA 328P

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri kecuali beberapa
kutipan dan ringkasan yang masing- masing di sebutkan sumbernya.

Medan, Agustus 2017

Yetti Febriyani Ritonga


NIM. 150821035

UNIVERSITAS SUMATERA UTARA


PENGHARGAAN

Alhamdulillah puji dan syukur penulis ucapkan kepada Allah


Subhanahuwata’ala, atas segala karuniaNya yang telah diberikan kepada penulis
sehingga dapat menyelesaikan penyusunan skripsi ini dengan baik. Shalawat dan
Salam kepada Nabi Muhammad SAW semoga kita mendapatkan safa’atnya di
kemudian hari. Amin
Penulisan skripsi ini diajukan untuk memenuhi salah satu syarat kelulusan
dalam jenjang perkuliahan Strata I Universitas Sumatera Utara dengan Judul yang
penulisajukan Rancang Bangun Sistem Pengukuran Data Suhu, Kelembaban dan
Tekanan Udara Berbasis Mikrokontroler ATMega 328P.
Dalam kesempatan ini penulis menyampaikan rasa hormat dan ucapan terima
kasih yang sebesar- besarnya kepada Bapak Prof. Dr. Marhaposan Situmorang selaku
Pembimbing yang telah meluangkan waktunya selama penyusunan skripsi ini.
Terima kasih kepada Bapak Dr. Perdinan Sinuhaji, MS dan Awan Maghfirah, S.Si,
M.Si selaku Ketua Departemen dan Sekretaris Departemen Fisika FMIPA-USU
Medan, Dekan dan Pembantu Dekan FMIPA USU, seluruh Staf dan Dosen Fisika
FMIPA USU, pegawai FMIPA USU dan rekan-rekan kuliah Arif Kurniawan, Roby
Yetsun Jaya, Nurul Huda Fauzi, Suci Meilfa Antas dan Anie Afrilla. Tidak
terlupakan kepada Ayahanda Juneit Ritonga, SH dan Ibunda Dra. Siti Aminah
Siregar, terima kasih atas kasih sayang dan kepercayaan yang telah kalian berikan
kepada anak kalian ini, serta abang dan adikku tercinta Yopi Rinaldi Ritonga dan
Yolani Ulfa Ritonga, terimakasih buat dukungannya, doa, dorongan dan motivasi
yang diberikan dari awal mulai perkuliahan sampai penulisan skripsi ini. Semoga
Allah Yang Maha Esa akan membalasnya, amin.

Medan, Agustus 2017

Yetti Febriyani Ritonga

UNIVERSITAS SUMATERA UTARA


ABSTRAK

Sistempengukuran suhu, kelembaban dan tekanan udara yang dapat


dimonitoring melalui LCD 16x2 dalam mengetahui parameter cuaca. Pada Skripsi
ini, penulis merancang sistem pengukuran data suhu dan kelembaban menggunakan
sensor DHT11 sebagai pengindera suhu dan kelembaban udara dan sensor BMP085
sebagai pengindera tekanan udara. Mikrokontroler Atmega 328P digunakan sebagai
pembaca data sensor yang kemudian diolah dan dikirimkan untuk ditampilkan di
LCD. Diharapkan sistem ini dapat bekerja mewakili instrument-instrumen stasiun
cuaca, namun dengan biaya yang lebih kecil, konsumsi daya lebih rendah, jarak
pengukuruan lebih jauh namun tetap akurat dan presisi dengan sensor-sensor yang
telah dikalibrasi.

Kata Kunci : Suhu, Kelembaban, Tekanan Udara, DHT11, BMP085, Mikrokontroller

UNIVERSITAS SUMATERA UTARA


ABSTRAC

The measurement system of temperature, humidity and air pressurecanbe


monitored via 16x2 LCD in knowing weather parameters. In this thesis, the authors
designed the measurement system of temperature and humidity data using DHT11 as
sensing temperature and humidity and BMP085 as air pressure sensing.
Microcontroller Atmega 328P is used as a sensor data reader which is then processed
and delivered to display on the LCD. It is expected that this system can work on
behalf of weather station instruments, but at a lower cost, lower power consumption,
further remote range but still accurate and precision with calibrated sensors.

Keywords: Temperature, Humidity, Air Pressure, DHT11, BMP085, Microcontroller

UNIVERSITAS SUMATERA UTARA


DAFTAR ISI

PERSETUJUAN i
PERNYATAAN ii
PENGHARGAAN iii
ABSTRAK
iiv
ABSTRAC v
DAFTAR ISI vi
DAFTAR GAMBAR ix
DAFTAR TABEL x

BAB 1 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
1.6. SISTEMATIKA PENULISAN 3

BAB 2 LANDASAN TEORI 5


2.1. Umum 5
2.2. Sensor Kelembaban dan Suhu (DHT11) 6
2.3. Sensor Tekanan Udara (BMP085) 7
2.4. Mikrokontroler ATMega 328 10
2.4.1.Fitur ATMega 328 11
2.4.2 Konfigurasi ATMega 328 13
2.5. Arduino Nano 16
2.5.1 Open Source Hardware 17
2.5.2 Pemrograman 17
2.5.3 Memori 19
2.5.4 Input dan Output (I/O) 19
2.5.5 Komunikasi 20

UNIVERSITAS SUMATERA UTARA


2.5.6 Reset Otomatis Software 20
2.5.7 Pilihan Terbaik untuk Mikrokontroler yang Mungil 21
2.6. Bahasa Menggunakan Pemrograman Bahasa C 21
2.6.1 Mengkopilasi Program 22
2.6.2 Struktur Bahasa Pemrograman C 23
2.6.3 Kata Kunci (Keyword) 24
2.6.4 Identifier 24
2.6.4.1 VARIABEL 25
2.6.4.2 KONSTANTA 25
2.6.5 Tipe Data Dasar 26
2.6.6 Karakter Escape 28
2.7. Liquid Crystal Display (LCD) 28

BAB 3 PERANCANGAN ALAT DAN PEMBUATAN SISTEM 32


3.1 Perancangan Blok Diagram Sistim 32
3.2 Fungsi Tiap Blok 32
3.3 Rangkaian Mikrokontroler ATMega 328 33
3.4 Rangkaian Power Supply 34
3.5 Rangkaian LCD (Liquid Crystal Display) 34
3.6 Rangkaian Sensor DHT11 35
3.7 Rangkaian Sensor BMP085 36
3.8 Diagram Alir 36

BAB 4 PENGUJIAN ALAT DAN ANALISA RANGKAIAN 38


4.1 Pengujian Rangkaian Mikrokontroler 328 38
4.2 Pengujian Terhubung Serial 39
4.3 Pengujian Power Supply 40
4.4 Pengujian Program LCD 41
4.5 Pengujian dan Analisa Sensor DHT11 42
4.6 Pengujian dan Analisa sensor BMP085 45

UNIVERSITAS SUMATERA UTARA


BAB 5 KESIMPULAN DAN SARAN 48
5.1 Kesimpulan 48
5.2 Saran 48

DAFTAR PUSTAKA 49
LAMPIRAN A 50
LAMPIRAN B 51
LAMPIRAN C 57

UNIVERSITAS SUMATERA UTARA


DAFTAR GAMBAR
Gambar Halaman

Foto Alat dengan Standart ...................................................................................... 57

UNIVERSITAS SUMATERA UTARA


DAFTAR TABEL

Tabel Halaman

No table of contents entries found.

UNIVERSITAS SUMATERA UTARA


BAB 1 PENDAHULUAN

1.1. LATAR BELAKANG


Didorong oleh makin pesatnya kemajuan teknologi pada perkembangan zaman
ini, pengumpulan informasi yang akurat dan cepat sangat dibutuhkan. Salah satunya
adalah dalam bidang klimatologi. Pengumpulan informasi parameter-parameter
cuaca seperti suhu, kelembaban, dan tekanan udara dalam tempat dan waktu tertentu
perlu diketahui secara cepat dan tepat untuk mendukung bidang kerja yang lain.
Badan Meteorologi, Kilamotologi dan Geofisika (BMKG) adalah lembaga
pemerintah yang bertugas mengawasi perkembangan iklim, cuaca dan potensi gempa
bumi di seluruh wilayah nusantara. Saat ini BMKG mempunyai 173 stasiun cuaca
yang tersebar di tiap daerah dari Medan, Sumatera Utara sampai dengan Wamena,
Papua. Stasiun cuaca ini terdiri dari instrument-instrumen pengukur variabel cuaca
seperti temperatur, kelembaban, dan tekanan udara. Saat ini, BMKG memberikan
layanan informasi secara makro mengenai data cuaca, prakiraan cuaca dan iklim
yang ada di Indonesia yang dapat diakses di website resmi BMKG.
Oleh karena itu dirancanglah sistem pengukuran suhu, kelembaban dan tekanan
udara yang dapat dimonitoring melalui LCD 16x2 dalam mengetahui parameter
cuaca.Pada Skripsi ini, penulis merancang sistem pengukuran data suhu dan
kelembaban menggunakan sensor DHT11 sebagai pengindera suhu dan kelembaban
udara dan sensor BMP085 sebagai pengindera tekanan udara. Mikrokontroler
Atmega 328P digunakan sebagai pembaca data sensor yang kemudian diolah dan
dikirimkan untuk ditampilkan di LCD. Diharapkan sistem ini dapat bekerja mewakili
instrument-instrumen stasiun cuaca, namun dengan biaya yang lebih kecil, konsumsi
daya lebih rendah, jarak pengukuruan lebih jauh namun tetap akurat dan presisi
dengan sensor-sensor yang telah dikalibrasi.

UNIVERSITAS SUMATERA UTARA


1.2. RUMUSAN MASALAH

Berbagai uraian yang telah ada maka penelitian ini diarahkan pada permasalahan
berikut:
1. Bagaimana rancang bangun alat ukur suhu, kelembaban dan tekanan udara
berbasis mikrokontroler Atmega 328P.
2. Bagaimana sistem kerja DHT11 dan BMP085 yang digunakan untuk
mengindetifikasi data suhu, kelembaban dan tekanan udara.

1.3. BATASAN MASALAH

Mengingat keterbatasan waktu dan untuk menghindari topik yang tidak perlu
maka penulis membatasi pembahasan pembuatan alat ini. Adapun permasalahan ini
adalah:
1. Perancangan dan pembuatan alat ini berbasis mikrokontroller Atmega 328P
2. Mengetahui bagaimana prinsif kerja dari rangkaian alat suhu, kelembaban dan
tekanan udara.
3. Mengetahui bagaimana fungsi dari masing- masing komponen utama yaitu sensor
DHT11, sensor BMP085, mikrokontroller Atmega 328P,serta komponen
pendukung lainnya
4. Mengetahui keakuratan alat hasil dengan alat standart
5. Hasil pengolahan data akan ditampilkan pada LCD (Liquid Crystal Display)

1.4. TUJUAN PENELITIAN


Adapun maksud dan tujuan penulis melakukan penelitian ini adalah :
1. Membangun sistem pengukuran suhu, kelembaban dan tekanan udara berbasis
mikrokontroller ATmega328P yang ditampilkan pada LCD
2. Mengetahui cara kerja setiap sensor terhadap ATMega 328P
3. Mengetahui hal yang mempengaruhi hasil alat dan apakah nilai hasilnya stabil

UNIVERSITAS SUMATERA UTARA


1.5. MANFAAT
Adapun Manfaat pembahasan ini adalah :
1. Mempermudah pekerjaan dalam bidang pengukuran khususnya mengukur suhu,
kelembaban, dan tekanan udara secara akurat
2. 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 Suhu,
Kelembaban dan Tekanan Udara berbasis Mikrokontroler ATMega 328P , 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 328P, Sensor DHT11,
Sensor BMP085, bahasa program yang dipergunakan, serta cara kerja
dari mikrokontroler Atmega 328P 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 328P.

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 328P.

UNIVERSITAS SUMATERA UTARA


BAB 5 KESIMPULAN DAN SARAN
Bab ini merupakan penutup yang meliputi tentang kesimpulan dari
pembahasan yang dilakukan dari skripsi ini serta saran apakah
rangkaian ini dapat dibuat lebih efisien dan dikembangkan
perakitannya pada suatu metode lain yang mempunyai sistem kerja

DAFTAR PUSTAKA

UNIVERSITAS SUMATERA UTARA


BAB 2 LANDASAN TEORI

2.1. Umum

Suhu menunjukkan derajat panas benda.Mudahnya, semakin tinggi suhu suatu


benda, semakin panas benda tersebut.Secara mikroskopis, suhu
menunjukkan energi yang dimiliki oleh suatu benda.Setiap atom dalam suatu benda
masing-masing bergerak, baik itu dalam bentuk perpindahan maupun gerakan di
tempat getaran.Makin tingginya energi atom-atom penyusun benda, makin tinggi
suhu benda tersebut.

Suhu juga disebut temperatur yang diukur dengan alat termometer. Empat
macam termometer yang paling dikenal adalah Celsius, Reaumur, Fahrenheit dan
Kelvin. Perbandingan antara satu jenis termometer dengan termometer lainnya
mengikuti:

C:R:(F-32) = 5:4:9
K = C + 273.(derajat)

Karena dari Kelvin ke derajat Celsius, Kelvin dimulai dari 273 derajat, bukan
dari -273 derajat.Dan derajat Celsius dimulai dari 0 derajat. Suhu Kelvin sama
perbandingan nya dengan derajat Celsius yaitu 5:5, maka dari itu, untuk mengubah
suhu tersebut ke suhu yang lain, sebaiknya menggunakan atau mengubahnya ke
derajat Celsius terlebih dahulu, karena jika kita menggunakan Kelvin akan lebih
rumit untuk mengubahnya ke suhu yang lain

Kelembapan (atau kelembaban adalah konsentrasi uap air di udara. Angka


konsentasi ini dapat diekspresikan dalam kelembaban absolut, kelembaban spesifik
atau kelembaban relatif. Alat untuk mengukur kelembaban disebut higrometer.
Sebuah humidistat digunakan untuk mengatur tingkat kelembaban udara dalam
sebuah bangunan dengan sebuah pengawalembab (dehumidifier). Dapat dianalogikan
dengan sebuah termometer dan termostat untuk suhu udara. Perubahan tekanan
sebagian uap air di udara berhubungan dengan perubahan suhu. Konsentrasi air di

UNIVERSITAS SUMATERA UTARA


udara pada tingkat permukaan laut dapat mencapai 3% pada 30 °C (86 °F), dan tidak
melebihi 0,5% pada 0 °C (32 °F).

Tekanan udara adalah yang bekerja yang bekerja untuk menggerakkan massa
udara dalam setiap satuan luas tertentu.Tekanan udara dibatasi oleh ruang dan waktu,
yang berarti tempat dan waktu yang berbeda, memiliki besar tekanan udara yang
berbeda pula.ada 2 jenis tekanan udara yaitu tekanan udara vertikal dan tekanan
udara horizontal.

2.2. Sensor Kelembaban dan Suhu (DHT11)

DHT11 adalah salah satu sensor yang dapat mengukur dua parameter lingkungan
sekaligus, yakni suhu dan kelembaban udara (humidity). Dalam sensor ini terdapat
sebuah thermistor tipe NTC (Negaive Temperature Coefficient) utuk mengukur suhu,
sebsuah sensor kelembaban tipe resistif dan sebuah mikrokontroller 8-bit yang
mengolah kedua sensor tersebut dan mengirim sinyal hasilnya ke pin output dengan
format single-wire bi-directional (kabel tunggal dua arah). Jadi walaupun
kelihatannya kecil, DHT11 ini ternyata melakukan fungsi yang cukup kompleks
Spesifikasi :
• Resolusi pengukuran : 16 bit
• Repeability : 1% RF
• Akurasi pengukuran : 250C dan 5%
• Interchangeability : fullyinterchangeable
• Waktu respon : 250C 6 detik
• Supply : 5V
• Konsumsi arus : 0.3mA
• Periaode Sampling : lebih dari 2 detik

Gambar 1. Bentuk Fisik Sensor DHT11

UNIVERSITAS SUMATERA UTARA


Dengan menggunakan teknik digital-signal eksklusif dan suhu &
teknologipenginderaan kelembaban, memastikan keandalan yang tinggi dan stabilitas
jangka panjang yang sangat baik.Sensor ini termasuk resistif-jenis komponen
pengukuran kelembaban dan komponen pengukuran suhu NTC, dan terhubung ke
kinerja tinggi 8-bit mikrokontroler, menawarkan kualitas yang sangat baik, respon
cepat, kemampuan anti-gangguan, dan efektivitas biaya.
Setiap elemen DHT11 ketat dikalibrasi di laboratorium yang sangat akurat pada
kelembaban kalibrasi. Koefisien kalibrasi disimpan sebagai program dalam memori
OTP, yang digunakan oleh proses mendeteksi sinyal internal sensor. Antarmuka
serial tunggal kawat membuat integrasi sistem cepat dan mudah.Ukurannya yang
kecil, konsumsi daya yang rendah dan up-to-20 transmisi sinyal meter yang
menjadikannya pilihan terbaik untuk berbagai aplikasi, termasuk yang paling
menuntut. Komponen adalah 4-pin baris tunggal pin paket. Mudah untuk
menghubungkan dan paket khusus yang dapat diberikan sesuai dengan permintaaan.
Setiap sensor DHT11 memiliki fitur kalibrasi sangat akurat dari kelembaban
ruang kalibrasi. Koefisien kalibrasi yang disimpan dalam memori program OTP,
sensor internal mendeteksi sinyal dalam proses, kita harus menyebutnya koefisien
kalibrasi. Sistem antarmuka tunggal-kabel serial terintegrasi untuk menjadi cepat dan
mudah.Kecil ukuran, daya rendah, sinyal transmisi jarak hingga 20 meter, sehingga
berbagai aplikasi dan bahkan aplikasi yang paling menuntut. Produk ini 4-pin pin
baris paket tunggal. Koneksi nyaman, paket khusus dapat diberikan sesuai dengan
kebutuhan pengguna.

2.3. Sensor Tekanan Udara BMP085

Sensor barometer BMP085 adalah salah satu sensor barometer yang sering
digunakan dalam pembuatan multirotor. Sensor barometer berukuran 5 mm x 5mm x
1,2 mm ini memiliki tingkat akurasi hingga 2,5 hPa. Dalam aplikasinya, konsumsi
daya barometer BMP085 sangat rendah, yaitu dibawah 3 µA. Gambar 2.2 merupakan
gambar bentuk fisik barometer BMP085. Sedangkan konfigurasi dan deskripsi kaki-
kakinya dapat dilihat pada gambar 2.3 dan tabel 1.

UNIVERSITAS SUMATERA UTARA


Gambar 2. Barometer BMP085

Gambar 3. Konfigurasi pin barometer BMP085

Tabel 1. Deskripsi pin barometer BMP085


Pin Nama Keterangan
1 GND Ground
2 EOC End of Conversion
3 VDD A Power Supply
4 VDD D Power Supply Digital
5 NC No Internal Connection
6 SCL Serial Bus Clock Input (I2C)
7 SDA Serial Bus Data Input (I2C)
8 XCLR Master Clear Input (Low Active)

Dalam aplikasinya, hubungan komunikasi antara barometer BMP085 dengan


piranti mikrokontroler adalah dilakukan dengan hubungan antarmuka I2C.Gambar 3

UNIVERSITAS SUMATERA UTARA


adalah gambar konfigurasi pengabelan atau hubungan antarmuka barometer BMP085
dengan mikrokontroler.Sedangkan gambar 4 adalah contoh modul barometer
BMP085.

Gambar 4. Pengabelan barometer BMP085 dengan mikrokntroler

Gambar 5. Modul barometer BMP085

UNIVERSITAS SUMATERA UTARA


2.4. Mikrokontroler ATMega 328

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. Sedangkan
pada mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya program
control disimpan dalam ROM yang ukurannya relative lebih besar,sedangkan RAM
digunakan sebagai tempat penyimpanan sedrhana sementara, termasuk register-
register yang digunakan pada Microctroller yang bersangkutan.

UNIVERSITAS SUMATERA UTARA


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
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.4.1. Fitur ATMega 328

ATMega328 adalah mikrokontroler keluaran dari atmel yang mempunyai arsitektur


RISC (Reduce Instruction Set Computer) yang mana setiap proses eksekusi data
lebih cepat dari pada arsitektur CISC (Completed Instruction Set Computer).
Mikrokontroler ini memiliki beberapa fitur antara lain:
1. Memiliki EEPROM (Electrically Erasable Programmable Read Only Memory)
sebesar 1KB sebagai tempat penyimpanan data semi permanen karena EEPROM
tetap dapat menyimpan data meskipun catu daya dimatikan.
2. Memiliki SRAM (Static Random Access Memory) sebesar 2KB.
3. Memiliki pin I/O digital sebanyak 14 pin 6 diantaranya PWM (Pulse Width
Modulation) output.
4. 32 x 8-bit register serba guna.
5. Dengan clock 16 MHz kecepatan mencapai 16 MIPS.

UNIVERSITAS SUMATERA UTARA


6. 32 KB Flash memory dan pada arduino memiliki bootloader yang menggunakan
2 KB dari flash memori sebagai bootloader.
7. 130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus clock

Mikrokontroller ATmega 328 memiliki arsitektur Harvard, yaitu memisahkan


memori untuk kode program dan memori untuk data sehingga dapat memaksimalkan
kerja dan parallelism.
Instruksi – instruksi dalam memori program dieksekusi dalam satu alur tunggal,
dimana pada saat satu instruksi dikerjakan instruksi berikutnya sudah diambil dari
memori program.Konsep inilah yang memungkinkan instruksi – instruksi dapat
dieksekusi dalam setiap satu siklus clock. 32 x 8-bit register serba guna digunakan
untuk mendukung operasi pada ALU ( Arithmatic Logic unit ) yang dapat dilakukan
dalam satu siklus. 6 dari register serbaguna ini dapat digunakan sebagai 3 buah
register pointer 16-bit pada mode pengalamatan tidak langsung untuk mengambil
data pada ruang memori data.
Ketiga register pointer 16-bit ini disebut dengan register X ( gabungan R26 dan
R27 ), register Y ( gabungan R28 dan R29 ), dan register Z ( gabungan R30 dan R31
). Hampir semua instruksi AVR memiliki format 16-bit.Setiap alamat memori
program terdiri dari instruksi 16-bit atau 32-bit. Selain register serba guna di atas,
terdapat register lain yang terpetakan dengan teknik memory mapped I/O selebar 64
byte. Beberapa register ini digunakan untuk fungsi khusus antara lain sebagai register
control Timer/ Counter, Interupsi, ADC, USART, SPI, EEPROM, dan fungsi I/O
lainnya. Register – register ini menempati memori pada alamat 0x20h – 0x5Fh.
Berikut ini adalah tampilan architecture ATMega 328:

UNIVERSITAS SUMATERA UTARA


Gambar 6. Architecture ATMega 328

2.4.2. Konfigurasi ATMega 328

ATMega328 merupakan mikrokontroler keluarga AVR 8 bit. Beberapa tipe


mikrokontroler yang sama dengan ATMega8 ini antara lain ATMega8535,
ATMega16, ATMega32, ATmega328, yang membedakan antara mikrokontroler
antara lain adalah, ukuran memori, banyaknya GPIO (pin input/output), peripherial
(USART, timer, counter, dll). Dari segi ukuran fisik, ATMega328 memiliki ukuran
fisik lebih kecil dibandingkan dengan beberapa mikrokontroler diatas. Namun untuk
segi memori dan periperial lainnya ATMega328 tidak kalah dengan yang lainnya
karena ukuran memori dan periperialnya relatif sama dengan ATMega8535,

UNIVERSITAS SUMATERA UTARA


ATMega32, hanya saja jumlah GPIO lebih sedikit dibandingkan mikrokontroler
diatas.

Gambar 7. Pin Mikrokontroler Atmega328

ATMega328 memiliki 3 buah PORT utama yaitu PORTB, PORTC, dan PORTD
dengan total pin input/output sebanyak 23 pin. PORT tersebut dapat difungsikan
sebagai input/output digital atau difungsikan sebagai periperal lainnya.

Berikut adalah penjelasan fungsi tiap kaki:


1. PORTB
Port B merupakan jalur data 8 bit yang dapat difungsikan sebagai input/output.
Selain itu PORTB juga dapat memiliki fungsi alternatif seperti di bawah ini.
a. ICP1 (PB0), berfungsi sebagai Timer Counter 1 input capture pin.
b. OC1A (PB1), OC1B (PB2) dan OC2 (PB3) dapat difungsikan sebagai
keluaran PWM (Pulse Width Modulation).
c. MOSI (PB3), MISO (PB4), SCK (PB5), SS (PB2) merupakan jalur
komunikasi SPI.
d. Selain itu pin ini juga berfungsi sebagai jalur pemograman serial (ISP).

UNIVERSITAS SUMATERA UTARA


e. TOSC1 (PB6) dan TOSC2 (PB7) dapat difungsikan sebagai sumber clock
external untuk timer.
f. XTAL1 (PB6) dan XTAL2 (PB7) merupakan sumber clock utama
mikrokontroler.

2. PORTC
Port C merupakan jalur data 7 bit yang dapat difungsikan sebagai input/output
digital. Fungsi alternatif PORTC antara lain sebagai berikut.
a. ADC6 channel (PC0,PC1,PC2,PC3,PC4,PC5) dengan resolusi sebesar 10 bit.
ADC dapat kita gunakan untuk mengubah input yang berupa tegangan analog
menjadi data digital
b. I2C (SDA dan SDL) merupakan salah satu fitur yang terdapat pada PORTC.
I2C digunakan untuk komunikasi dengan sensor atau devicelain yang memiliki
komunikasi data tipe I2C seperti sensor kompas, accelerometer nunchuck.

3. PORT D
Port D merupakan jalur data 8 bit yang masing-masing pin-nya juga dapat
difungsikan sebagai input/output. Sama seperti Port B dan Port C, Port D juga
memiliki fungsi alternatif dibawah ini.
a. 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 berfungsi untuk
menerima data serial.
b. 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.
c. XCK dapat difungsikan sebagai sumber clock external untuk USART, namun
kita juga dapat memanfaatkan clock dari CPU, sehingga tidak perlu
membutuhkan externalclock.

UNIVERSITAS SUMATERA UTARA


d. T0 dan T1 berfungsi sebagai masukan counter external untuk timer 1 dan
timer 0.
e. AIN0 dan AIN1 keduanya merupakan masukan input untuk analog
comparator.

2.5. Arduino Nano

Arduino Nano adalah papan pengembangan (development board) mikrokontroler


yang berbasis chip ATmega328P dengan bentuk yang sangat mungil. Secara fungsi
tidak ada bedanya dengan Arduino Uno. Perbedaan utama terletak pada ketiadaan
jack power DC dan penggunaan konektor Mini-B USB.
Disebut sebagai papan pengembangan karena board ini memang berfungsi
sebagai arena prototyping sirkuit mikrokontroller. Dengan menggunakan papan
pengembangan, anda akan lebih mudah merangkai rangkaian elektronika
mikrokontroller dibanding jika anda memulai merakit ATMega328 dari awal di
breadboard.

Gambar 8. Papan Pengembangan

Tabel 2. Spesifikasi
Chip mikrokontroller ATmega328P
Tegangan operasi 5V
Tegangan input (yang 7V - 12V
direkomendasikan)
Digital I/O pin 14 buah, 6 diantaranya menyediakan
PWM
Analog Input pin 6 buah

UNIVERSITAS SUMATERA UTARA


Arus DC per pin I/O 40 Ma
Memori Flash 32 KB, 0.5 KB telah digunakan untuk
bootloader
SRAM 2 KB
EEPROM 1 KB
Clock speed 16 Mhz
Dimensi 45 mm x 18 mm
Berat 5g

2.5.1. Open Source Hardware

Arduino Nano adalah hardware open source (OSH - Open Source


Hardware).Dengan demikian anda dan siapapun diberi kebebasan untuk dapat
membuat sendiri Arduino Nano.

2.5.2. Pemrograman

Pemrograman board Arduino Nano dilakukan dengan menggunakan Arduino


Software (IDE). Chip ATmega328 yang terdapat pada Arduino Nano telah diisi
program awal yang sering disebut bootloader. Bootloader tersebut yang bertugas
untuk memudahkan anda melakukan pemrograman lebih sederhana menggunakan
Arduino Software, tanpa harus menggunakan tambahan hardware lain. Cukup
hubungkan Arduino dengan kabel USB ke PC, Mac, atau Linux anda, jalankan
software Arduino Software (IDE), dan anda sudah bisa mulai memrogram chip
ATmega328. Lebih mudah lagi, di dalam Arduino Software sudah diberikan banyak
contoh program yang memanjakan anda dalam belajar mikrokontroller

UNIVERSITAS SUMATERA UTARA


Gambar 9. Pemrograman

Untuk pengguna mikrokontroller yang sudah lebih mahir, anda dapat tidak
menggunakan bootloader dan melakukan pemrograman langsung via header ICSP
(In Circuit Serial Programming) dengan menggunakan Arduino ISP
Development Board Arduino Nano dapat diberi tenaga dengan power yang
diperoleh dari koneksi kabel Mini-B USB, atau via power supply eksternal. External
power supply dapat dihubungkan langsung ke pin 30 atau Vin(unregulated 6V -
20V), atau ke pin 27 (regulated 5V). Sumber tenaga akan otomatis dipilih mana yang
lebih tinggi tegangan
Beberapa pin power pada Arduino Uno :
• GND. Ini adalah ground atau negatif.
• Vin. Ini adalah pin yang digunakan jika anda ingin memberikan power
langsung ke board Arduino dengan rentang tegangan yang disarankan 7V -
12V
• Pin 5V. Ini adalah pin output dimana pada pin tersebut mengalir tegangan 5V
yang telah melalui regulator
• 3V3. Ini adalah pin output dimana pada pin tersebut disediakan tegangan
3.3V yang telah melalui regulator

UNIVERSITAS SUMATERA UTARA


2.5.3. Memori

Chip ATmega328 pada Arduino Uno R3 memiliki memori 32 KB, dengan 0.5
KB dari memori tersebut telah digunakan untuk bootloader. Jumlah SRAM 2 KB,
dan EEPROM 1 KB, yang dapat di baca-tulis dengan menggunakan EEPROM
library saat melakukan pemrograman.

2.5.4. Input dan Output (I/O)

Seperti yang telah disebutkan sebelumnya, Arduino Nano memiliki 14 buah


digital pin yang dapat digunakan sebagai input atau output, sengan menggunakan
fungsi pinMode(), digitalWrite(), dan digital(Read). Pin-pin tersebut ekerja pada
tegangan 5V, dan setiap pin dapat menyediakan atau menerima arus 20mA, dan
memiliki tahanan pull-up sekitar 20-50k ohm (secara default dalam posisi
discconnect). Nilai maximum adalah 40mA, yang sebisa mungkin dihindari untuk
menghindari kerusakan chip mikrokontroller
Beberapa pin memiliki fungsi khusus :
• Serial, terdiri dari 2 pin : pin 0 (RX) dan pin 1 (TX) yang digunakan untuk
menerima (RX) dan mengirim (TX) data serial.
• External Interrups, yaitu pin 2 dan pin 3. Kedua pin tersebut dapat
digunakan untuk mengaktifkan interrups. Gunakan fungsi attachInterrupt()
• PWM: Pin 3, 5, 6, 9, 10, dan 11 menyediakan output PWM 8-bit dengan
menggunakan fungsi analogWrite()
• SPI : Pin 10 (SS), 11 (MOSI), 12 (MISO), dan 13 (SCK) mendukung
komunikasi SPI dengan menggunakan SPI Library
• LED : Pin 13. Pada pin 13 terhubung built-in led yang dikendalikan oleh
digital pin no 13.
Arduino Nano memiliki 8 buah input analog, yang diberi tanda dengan A0
hingga A7. Masing-masing pin analog tersebut memiliki resolusi 1024 bits (jadi bisa
memiliki 1024 nilai). Secara default, pin-pin tersebut diukur dari ground ke 5V,
namun bisa juga menggunakan pin REF dengan menggunakan fungsi
analogReference().

UNIVERSITAS SUMATERA UTARA


Pin Analog A6 dan A7 tidak bisa dijadikan sebagai pin digital, hanya sebagai
analog. Beberapa pin lainnya pada board ini adalah :
• I2C : Pin A4 (SDA) dan A5 (SCL). Pin ini mendukung komunikasi I2C
(TWI) dengan menggunakan Wire Library.
• AREF. Sebagai referensi tegangan untuk input analog.
• Reset. Hubungkan ke LOW untuk melakukan reset terhadap mikrokontroller.
Biasanya digunakan untuk dihubungkan dengan switch yang dijadikan
tombol reset.

2.5.5. Komunikasi

Arduino Nano 3.0 memiliki beberapa fasilitas untuk berkomunikasi dengan


komputer, berkomunikasi dengan Arduino lainnya, atau dengan mikrokontroller lain
nya. Chip Atmega328 menyediakan komunikasi serial UART TTL (5V) yang
tersedia di pin 0 (RX) dan pin 1 (TX). Sebuah chip FTDI yang terdapat pada board
berfungsi menterjemahkan bentuk komunikasi ini melalui USB dan akan tampil
sebagai Virtual Port di komputer.
Pada Arduino Software (IDE) terdapat monitor serial yang memudahkan data
textual untuk dikirim menuju Arduino atau keluar dari Arduino. Lampu led TX dan
RX akan menyala berkedip-kedip ketika ada data yang ditransmisikan melalui chip
FTDI USB to Serial via kabel USB ke komputer. Untuk menggunakan komunikasi
serial dari digital pin, gunakan SoftwareSerial library
Chip ATmega328 juga mendukung komunikasi I2C (TWI) dan SPI. Di dalam
Arduino Software (IDE) sudah termasuk Wire Library untuk memudahkan anda
menggunakan bus I2C. Untuk menggunakan komunikasi SPI, gunakan SPI library.

2.5.6. Reset Otomatis Software

Biasanya, ketika anda melakukan pemrograman mikrokontroller, anda harus


menekan tombol reset sesaat sebelum melakukan upload program. Pada Arduino
Uno, hal ini tidak lagi merepotkan anda. Arduino Uno telah dilengkapi dengan auto
reset yang dikendalikan oleh software pada komputer yang terkoneksi. Salah satu

UNIVERSITAS SUMATERA UTARA


jalur flow control (DTR) dari ATmega16U pada Arduino Uno R3 terhubung dengan
jalur reset pada ATmega328 melalui sebuah kapasitor 100nF. Ketika jalur tersebut
diberi nilai LOW, mikrokontroller akan di reset. Dengan demikian proses upload
akan jauh lebih mudah dan anda tidak harus menekan tombol reset pada saat yang
tepat seperti biasanya.

2.5.7. Pilihan Terbaik untuk Mikrokontroller yang Mungil

Dengan banyak nya fasilitas yang di tawarkan, proteksi, feature dan kemudahan
dari Arduino Nano V3, menjadikan board ini menjadi pilihan terbaik untuk
membantu anda yang menginginkan untuk belajar mikrokontroller namun juga
membutuhkan board yang tidak banyak memakan tempat.

2.6. 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

UNIVERSITAS SUMATERA UTARA


- Dukungan pustaka yang banyak.
- C adalah bahasa yang terstruktur
- Bahasa C termasuk bahasa tingkat menengah
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.6.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.

UNIVERSITAS SUMATERA UTARA


Gambar 10. Kompilasi Program

2.6.2. Struktur Bahasa Pemrograman C

1. Header File
adalah 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.
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.

UNIVERSITAS SUMATERA UTARA


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.6.3. Kata Kunci (Keyword)

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

Tabel 3. Kata 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
Unsigned Void Volatile While

2.6.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.

UNIVERSITAS SUMATERA UTARA


2.6.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.6.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
tandapetik tunggal, contohnya : ‘A’ dan ‘@’.
2. Konstanta integer ditulis dengan tanda mengandung pemisah ribuan dan
tidakmengandung bagian pecahan, contohnya : –1 dan 32767.
3. Konstanta real (float dan double) bisa mengandung pecahan (dengan
tandaberupa titik) dan nilainya bisa ditulis dalam bentuk eksponensial
(menggunakan tanda e), contohnya :27.5f (untuk tipe float) atau 27.5 (untuk
tipe double) dan2.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”.

UNIVERSITAS SUMATERA UTARA


Contoh :

2.6.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 4. Ukuran Memori untuk Tipe Data

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
far (pointer) 32 bits not applicable

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:

UNIVERSITAS SUMATERA UTARA


Tabel 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:

UNIVERSITAS SUMATERA UTARA


2.6.6 Karakter Escape

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

Tabel 6. Daftar Karakter

KARAKTER ARTI
ESCAPE
\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.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

UNIVERSITAS SUMATERA UTARA


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 11. LCD Karakter 2 x 16

Bagian kedua merupakan sebuah sistem yang dibentuk dengan mikrokontroler yang
ditempel dibalik pada panel LCD, berfungsi mengatur tampilan LCD. Dengan
demikian pemakaian LCD M1632 menjadi sederhana, sistem lain cukup
mengirimkan kode – kode ASCII dari informasi yang ditampilkan.
Spesifikasi LCD M1632:
1. Tampilan 16 karakter 2 baris dengan matrik 5 x 7 + kursor.
2. ROM pembangkit karakter 192 jenis.
3. RAM pembangkit karakter 8 jenis ( diprogram pemakai ).
4. RAM data tampilan 80 x 8 bit ( 8 karakter ).
5. Duty ratio 1/16.
6. RAM data tampilan dan RAM pembangkit karakter dapat dibaca dari unit
mikroprosesor.
7. Beberapa fungsi perintah antara lain adalah penghapusan tampilan (display
clear), posisi kursor awal ( crusor home ), tampilan karakter kedip (display
character blink), penggeseran kursor ( crusor shift ) dan penggeseran tampilan
(display shift).
8. Rangkaian pembangkit detak.
9. Rangkaian otomatis reset saat daya dinyalakan.
10. Catu daya tunggal +5 volt.

UNIVERSITAS SUMATERA UTARA


LCD adalah lapisan dari campuran organik antara lapisan kaca bening dengan
elektroda transparan indium oksida dalam bentuk tampilan seven-segment dan
lapisan elektroda pada kaca belakang. Ketika elektroda diaktifkan dengan medan
listrik (tegangan), molekul organik yang panjang dan silindris menyesuaikan diri
dengan elektroda dari segmen. Lapisan sandwich memiliki polarizer cahaya vertikal
depan dan polarizer cahaya horisontal belakang yang diikuti dengan lapisan reflektor.
Cahaya yang dipantulkan tidak dapat melewati molekul-molekul yang telah
menyesuaikan diri dan segmen yang diaktifkan terlihat menjadi gelap dan
membentuk karakter data yang ingin ditampilkan.
Dalam modul LCD (Liquid Cristal Display) terdapat microcontroller yang
berfungsi sebagai pengendali tampilan karakter LCD (Liquid Cristal Display).
Microntroller pada suatu LCD (Liquid Cristal Display) dilengkapi dengan memori
dan register. Memori yang digunakan microcontroler internal LCD adalah :

• DDRAM (Display Data Random Access Memory) merupakan memori tempat


karakter yang akan ditampilkan berada.
• CGRAM (Character Generator Random Access Memory) merupakan
memori untuk menggambarkan pola sebuah karakter dimana bentuk dari
karakter dapat diubah-ubah sesuai dengan keinginan.
• CGROM (Character Generator Read Only Memory) merupakan memori
untuk menggambarkan pola sebuah karakter dimana pola tersebut merupakan
karakter dasar yang sudah ditentukan secara permanen oleh pabrikan pembuat
LCD (Liquid Cristal Display) tersebut sehingga pengguna tinggal
mangambilnya sesuai alamat memorinya dan tidak dapat merubah karakter
dasar yang ada dalam CGROM.

Register control yang terdapat dalam suatu LCD diantaranya adalah.


• Register perintah yaitu register yang berisi perintah-perintah dari
mikrokontroler ke panel LCD (Liquid Cristal Display) pada saat proses
penulisan data atau tempat status dari panel LCD (Liquid Cristal Display)
dapat dibaca pada saat pembacaan data.

UNIVERSITAS SUMATERA UTARA


• Register data yaitu register untuk menuliskan atau membaca data dari atau
keDDRAM. Penulisan data pada register akan menempatkan data tersebut
keDDRAM sesuai dengan alamat yang telah diatur sebelumnya.

Pin, kaki atau jalur input dan kontrol dalam suatu LCD (Liquid Cristal Display)
diantaranya adalah :
• Pin data adalah jalur untuk memberikan data karakter yang ingin ditampilkan
menggunakan LCD (Liquid Cristal Display) dapat dihubungkan dengan bus
data dari rangkaian lain seperti mikrokontroler dengan lebar data 8 bit.
• Pin RS (Register Select) berfungsi sebagai indikator atau yang menentukan
jenis data yang masuk, apakah data atau perintah. Logika low menunjukan
yang masuk adalah perintah, sedangkan logika high menunjukan data.
• Pin R/W (Read Write) berfungsi sebagai instruksi pada modul jika low tulis
data, sedangkan high baca data.
• Pin E (Enable) digunakan untuk memegang data baik masuk atau keluar.
• Pin VLCD berfungsi mengatur kecerahan tampilan (kontras) dimana pin ini
dihubungkan dengan trimpot 5 Kohm, jika tidak digunakan dihubungkan ke
ground, sedangkan tegangan catu daya ke LCD sebesar 5 Volt

UNIVERSITAS SUMATERA UTARA


BAB 3 PERANCANGAN ALAT DAN PEMBUATAN SISTEM

3.1 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 blokdari
system yang dirancang,seperti yang diperlihatkan pada gambar 12

Gambar 12. Diagram Blok Sistem

3.2 Fungsi Tiap Blok


1. Blok PSA 5 V : sebagai sumber tegangan DC pada rangkaian
2. Blok DHT11 : sebagai sensor suhu dan kelembaban’
3. Blok BMP085 : sebagain sensor tekanan udara dan ketinggian
4. Blok ATMega328P : sebagai pengolah data dari sensor, memberi
keluran ke LCD
5. Blok LCD : sebagai penampil hasil ketinggian, suhu,
kelembaban dan tekanan udara

UNIVERSITAS SUMATERA UTARA


3.3 RangkaianMikrokontrolerATMega328
Dari gambar 13, Rangkaian tersebut berfungsi sebagai pusat kendali dari seluruh
sistem yang ada. Komponen utama dari rangkaian ini adalah IC Mikrokontroler
ATMega328P dengan compiler Arduino. Semua program diisikan pada memori dari
IC ini sehingga rangkaian dapat berjalan sesuai dengan yang dikehendaki.
Untuk men-download file heksadesimal kemikrokontroler Atmega 328P
digunakanlah pin Tx, Rx pada kaki mikrokontroler dihubungkan ke USB via
programmer. Apabila terjadi keterbalikan pemasangan jalur ke ISP Programmer atau
terjadi error sehingga port nya tidak terhubung, maka pemrograman mikrokontroler
tidak dapat dilakukan karena mikrokontroler tidak akan bisa merespon

Gambar 13. Rangkaian Mikrokontroler ATMega 328P

UNIVERSITAS SUMATERA UTARA


3.4 Rangkaian Power Supply

Rangkaian power supplay pada alat ini berfungsi sebagai sumber daya untuk
menghidupkaan sistem.

Gambar 14. Rangkaian PSA

Dalam rangkaian ini peneliti memakai IC regulator 7805 digunakan untuk


menurunkaan tegangan 12 volt menjadi 5 volt. Dimana masukan rangkaian ini adalah
dari baterai sebesar 12 volt dan keluaran rangkaian ini sebesar 5 volt dan akan di
pergunakan untuk menghidupkan sistem dalam penelitian ini.

3.5 Rangkaian LCD (Liquid Crystal Display)


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 5 KΩ untuk mengatur kontras karakter yang
tampil.Gambar 3.4 berikut merupakan gambar rangkaian LCD yang dihubungkan ke
mikrokontroler.

Gambar 15. Rangkaian LCD

UNIVERSITAS SUMATERA UTARA


Dari gambar 15, rangkaian ini terhubung ke PC.0... PC.5, yang merupakan pin
I/O dua arah dan SPI mempunyai fungsi khusus sebagai pengiriman data secara
serial. Sehingga nilai yang akan tampil pada LCD display akan dapat dikendalikan
oleh Mikrokontroller ATMega328.

3.6 Rangkaian Sensor DHT11

DHT11 adalah sensor digital yang dapat mengukur suhu dan kelembaban udara
di sekitarnya. Sensor ini sangat mudah digunakan bersama dengan Arduino.
Memiliki tingkat stabilitas yang sangat baik serta fitur kalibrasi yang sangat akurat.
Koefisien kalibrasi disimpan dalam OTP program memory, sehingga ketika internal
sensor mendeteksi sesuatu, maka module ini menyertakan koefisien tersebut dalam
kalkulasinya.

Sensor DHT11 ini terdapat sebuah thermistor tipe NTC (Negaive Temperature
Coefficient) utuk mengukur suhu, sebuah sensor kelembaban tipe resistif dan sebuah
mikrokontroller 8-bit yang mengolah kedua sensor tersebut dan mengirim sinyal
hasilnya ke pin output dengan format single-wire bi-directional (kabel tunggal dua
arah) ke mikrokontroller ATMega 328P untuk dibaca pembacaan suhu dan
kelmbabannya.

Gambar16.Rangkaian Sensor DHT11 yang terhubung ke ATMega 328p

UNIVERSITAS SUMATERA UTARA


3.7 Rangkaian Sensor BMP085

Rangkaian Tekanan Udara menggunakan beberapa komponen diantaranya;


mikrokontroller Arduino NANO, kabel data USB, kabel jumper dan sensor BMP085
Barometric Pressure. Sensor ini mempunyai rentang ukur tekanan udara dari 30000 –
110000 Pa, sensor ini juga dapat mengukur suhu dalam rentang 0o C – 65o C.

Sensor BMP085 melihat perubahan tekanan udara dan ketinggian sekitar


berdasarkan medan magnet yang terbaca, output merupakan nilai data bit yang di
konversikan.

Gambar 17. Rangkaian sensor BMP085 yg terhubung ke ATMega328p

3.8 Diagram Alir Program

Pada gambar 18, flowchart cara kerja alat ini terdiri dari rangkaian
mikrokontroller, sensor DHT11 untuk mendeteksi suhu dan kelembaban, Sensor
BMP085 untuk mendeteksi tekanan udara.
Sensor DHT11 ini terdapat sebuah thermistor tipe NTC (Negaive
Temperature Coefficient) utuk mengukur suhu, sebuah sensor kelembaban tipe
resistif dan sebuah mikrokontroller 8-bit yang mengolahkedua sensor tersebut dan
mengirim sinyal hasilnya ke pin output dengan format single-wire bi-directional
(kabel tunggal dua arah) ke mikrokontroller ATMega 328P untuk dibaca pembacaan
suhu dan kelembabannya.

UNIVERSITAS SUMATERA UTARA


Sensor BMP085 melihat perubahan tekanan udara dan ketinggian sekitar
berdasarkan medan magnet yang terbaca, output merupakan nilai data bit yang di
konversikan ke ATMega 328 dalam satuan Pascal (Pa) dan ditampilkan ke LCD.

Mulai

Inisialisasi Sistem

Inisialisasi Insialisasi Sensor


DHT11 Tekanan Udara

Baca Suhu dan Baca tekanan


TIDAK Kembaban Udara TIDAK

Terbaca Terbaca

YA ATMEga 328P YA

Tampilkan ke
LCD

Akhir

Gambar 18. Flowchart Cara Kerja Sistem

UNIVERSITAS SUMATERA UTARA


BAB 4 PENGUJIAN ALAT DAN ANALISA RANGKAIAN

4.1 Pengujian Rangkaian Mikrokontroler ATMega 328

Pengujian pada rangkaian mikrokontroler ATMega328P ini dapat dilakukan


dengan menghubungkan rangkaian ini dengan rangkaian power supply sebagai
sumber tegangan. Kaki 13apabila diberi logika High akan mengeluarkan tegangan
4,25 volt. Langkah selanjutnya adalah memberikan program sederhana pada
mikrokontroler ATMega328P untuk menguji port port yang terdapat pada
ATMega328P, program yang diberikan adalah sebagai berikut:

//PROGRAM PENGUJIAN PORT


void setup()
{ pinMode(13, OUTPUT);
}

void loop()
{digitalWrite(13, HIGH);
delay(1000);
}

Gambar 19. Pengujian ATMega 328

UNIVERSITAS SUMATERA UTARA


4.2 Pengujian Terhubung Serial

Pengujian dapat dilakukan dengan bantuan program sebelumnya yaitu membaca


data sensor dan mengirimnya melalui port serial dengan catatan port serial
dihubungkan dengan modul RS485 dan keluaran modul dihubungkan dengan kabel
penghantar dengan panjang 15 meter.Ujung modul dihubungkan dengan modul
RS485 lainnya.
Langkah pengujiannya adalah sebagai berikut:
1. Hubungkan rangkaian dengan adaptor.
2. Buka Arduino yang telah diinstal pada PC
3. Pilih menu tools => port serial => pilih serial port yang tersidia pada PC
4. Pilih COM 5 (yang tersedia pada PC)
5. Pilih menu tools => serial monitor
Setelah dijalankan maka data sensor pada mikrokontroler dapat dikirim ke
PC.Berikut adalah gambar modul percobaan atau pengujian yang dilakukan.

Gambar 20. Pengujian Terhubung Serial

Setelah dijalankan maka rangkaian akan bekerja mendeteksi berat, kemudian


mengirim data tersebut pada computer melalui jaringan serial port. Seperti

UNIVERSITAS SUMATERA UTARA


sebelumnya data akan ditampilkan pada input program hypeterminal, akan tetapi
pengujian kali ini menggunakan program serial monitor yang ada pada program
arduino. Data akan terlihat berupa berat yang dikirim tiap detik.

Gambar 21. Pengujian Modul Interface Arduino

4.3 Pengujian Power Supply

Power supply berfungsi untuk menyuplai tegangan ke alat tersebut. Tegangan


yang dibutuhkan alat adalah 5 volt. Pengujian power supply dilakukan untuk
mengetahui apakah tegangan yang masuk ke alat tersebut bernilai 5 volt

Tabel 7. Pengujian Vin danVout


Vin (V) Vout (V)
12,24 5,37

Gambar 22. Pengujian Power Supply

UNIVERSITAS SUMATERA UTARA


4.4 Pengujian Program LCD

Rangkaian LCD dihubungkan ke PB.0 .... PB.7, 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 Mikrokontroller
ATMega328. Pada bagian ini, mikrokontroler dapat memberi data langsung ke LCD.
Pada LCD Hitachi - M1632 sudah terdapat driver untuk mengubah data ASCII
output mikrokontroler menjadi tampilan karakter. Pengujian rangkaian LCD
dilakukan dengan memberikan program pada mikrokontroller untuk menampilkan
karakter pada display LCD. Programnya adalah sebagai berikut :

/* The circuit:
* LCD RS pin to digital pin 2
* LCD Enable pin to digital pin 3
* LCD D4 pin to digital pin 4
* LCD D5 pin to digital pin 5
* LCD D6 pin to digital pin 6
* LCD D7 pin to digital pin 7
* LCD R/W pin to ground
* LCD VSS pin to ground
* LCD VCC pin to 5V
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)
*/

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface


pins
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

void setup()
{ lcd.begin(16, 2);
}

void loop()
{
lcd.setCursor(0, 0);
lcd.print("Yetti Febri");
lcd.setCursor(0, 1);
lcd.print("150821035");
}

UNIVERSITAS SUMATERA UTARA


Gambar 23. Pengujian LCD

4.5 Pengujian dan Analisa Sensor DHT11

DHT11 adalah sensor digital yang dapat mengukur suhu dan kelembaban udara
di sekitarnya. Koefisien kalibrasi disimpan dalam OTP program memory, sehingga
ketika internal sensor mendeteksi sesuatu, maka module ini menyertakan koefisien
tersebut dalam kalkulasinya.
Dari pengujian tegangan input 12V berasal dari daya adaptor. Output dari
regulator 7805 mengeluarkan daya sebesar 5V dimana komponen elektronik seperti
sensor DHT 11 dan Lcd dapat bekerja dengan daya 3V sampai 5V, output tegangan
yang dikeluarkan Adaptor dikonversi oleh IC regulator untuk menyesuaikan
tegangan yang dibutuhkan oleh komponen elektronik.
Pengujian sensor DHT 11 dilakukan dengan cara memberikan tegangan 5V dan
0 V ke Arduino NANO yang ada pada model pengatur suhu dan kelembaban dan
menghubungkan pin 2, GND, dan VCC pada sensor DHT 11. Setelah itu output
tegangan dicek pada pin DHT 11 yang dihubungkan dengan phobe positif dan pin
GND yang dihubungkan dengan negatif multimeter. VCC dan pin GND yang
dihubugkan dengan phobe positive negative multimeter.
Berikut adalah analisa alat DHT11 dengan alat standart sebelum dikalibrasi:

UNIVERSITAS SUMATERA UTARA


Tabel 8. Analisa Sebelum di Kalibrasi dengan Alat Standart
No. Tanggal/ Humidity Humidity Temperature Temperature
Waktu Alat (%) Standart (%) (oC) Standart (oC)
1 26/07/17 25 20 26 21
8.00
2 26/07/17 24 20 25 21
9.00
3 26/07/17 23 20 26 21
9.30
4 26/07/17 24 20 26 21
10.00
5 26/07/17 49 45 28 23
12.00
6 26/07/17 49 45 29 23
13.00
7 26/07/17 48 45 30 23
13.30
8 26/07/17 49 45 28 23
14.00
9 26/07/17 49 45 28 23
15.30
10 26/07/17 50 45 29 23
16.00
11 26/07/17 51 45 30 23
16.30
12 26/07/17 50 45 28 23
17.00

50
45 y = -0,019x2 + 2,376x - 26,02
40 R² = 0,996
35
STANDART

30
25
20 Humidity
15 Poly. (Humidity)
10
5
0
0 10 20 30 40 50 60
ALAT

Gambar 24. Grafik dan Hasil Persamaan Kelembab

UNIVERSITAS SUMATERA UTARA


24
y = -0,129x2 + 7,645x - 90,16
23,5 R² = 0,889

23

22,5
STANDART

22 Temperature

21,5 Linear (Temperature)


Poly. (Temperature)
21

20,5

20
24 25 26 27 28 29 30 31
ALAT

Gambar 25. Grafik dan Hasil Persamaan Suhu

Setelah dilakukannya analisa terhadap alat, didapatlah persamaan diatas untuk


diketahui persamaannya yang kemudian dimasukkan di program untuk dikalibrasi.
Adapun hasil dibandingkan dengan alat standart beserta persentasi kesalahan yang
didapat setelah dikalibrasi, seperti berikut:

Tabel 9. Hasil setelah di Kalibrasi dengan Alat Standart


No Tanggal/ Humidity Humidity % Tempera Temperatu %
. Waktu Alat (%) Standart Error ture (oC) re Standart Error
(%) (oC)
1 19/08/17 21 20 0,05 20 21 0,05
8.00
2 19/08/17 18 20 0,1 19 21 0,09
9.00
3 19/08/17 19 20 0,05 20 21 0,05
9.30
4 19/08/17 20 20 0 21 21 0
10.00
5 19/08/17 43 45 0,04 21 23 0,08
12.00
6 19/08/17 44 45 0,05 22 23 0.04
13.00

UNIVERSITAS SUMATERA UTARA


7 19/08/17 44 45 0,05 21 23 0,08
13.30
8 19/08/17 44 45 0,05 21 23 0,08
14.00
9 19/08/17 45 45 0 23 23 0
15.30
10 19/08/17 43 45 0,04 22 23 0,04
16.00
11 19/08/17 43 45 0,04 22 23 0,04
16.30
12 19/08/17 43 45 0,04 22 23 0,04
17.00

Data hasil pengukuran dan grafik pada data ini terdapat perbedaan antara data
yang didapat dari nilai standart dengan data yang dihasilkan oleh alat, dimana data
yang dihasilkan oleh alat memiliki % deviasi = hal ini dapat dilihat dari hasil analisis
yang diperoleh
𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 −𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡 − 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠
% kesalahan = ∣ 100%
𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠

% kesalahan Humidity :

|𝟑𝟑𝟑𝟑, 𝟓𝟓𝟓𝟓𝟓𝟓 − 𝟑𝟑𝟑𝟑, 𝟔𝟔𝟔𝟔|


× 𝟏𝟏𝟏𝟏𝟏𝟏 % = 𝟎𝟎, 𝟎𝟎𝟎𝟎𝟎𝟎 %
𝟑𝟑𝟑𝟑, 𝟔𝟔𝟔𝟔

% kesalahan Suhu :

|𝟐𝟐𝟏𝟏, 𝟏𝟏𝟏𝟏𝟏𝟏 − 𝟐𝟐𝟐𝟐, 𝟑𝟑𝟑𝟑|


× 𝟏𝟏𝟏𝟏𝟏𝟏 % = 𝟎𝟎, 𝟎𝟎𝟎𝟎𝟎𝟎 %
𝟐𝟐𝟐𝟐, 𝟑𝟑𝟑𝟑

4.6 Pengujian dan Analisa Sensor BMP085

Sensor tekanan udara BMP085 juga menghasilkan nilai keluaran tegangan yang
kemudian dibaca oleh bagian ADC daripada ATMega 328P, sebelum dibaca maka di
kuatkan dulu oleh pengkondisi sinyal.Mikrokontroler Atmega 328P memproses
pembacaan daripada sensor-sensor tersebut dan hasil pembacaanya ditampilkan
kebagian LCD. Berikut adalah analisa alat BMP085 dengan alat standart sebelum
dikalibrasi:

UNIVERSITAS SUMATERA UTARA


Tabel 10. Analisa Sebelum di Kalibrasi dengan Alat Standart
No. Tanggal/ Waktu Pressure Alat Pressure Standart
(Pa) (Pa)
1 26/07/17 90600 90720
8.00
2 26/07/17 90602 90710
9.00
3 26/07/17 90600 90710
9.30
4 26/07/17 90501 90690
10.00
5 26/07/17 90490 90670
12.00
6 26/07/17 90590 90700
13.00
7 26/07/17 90585 90700
13.30
8 26/07/17 90468 90600
14.00
9 26/07/17 90610 90710
15.30
10 26/07/17 90597 90700
16.00
11 26/07/17 90580 90700
16.30
12 26/07/17 90578 90700
17.00

90740 y = -0,008x2 + 1527,x - 7E+07


90720 R² = 0,823

90700
90680
STANDART

90660 Pressure
90640 Linear (Pressure)
90620 Poly. (Pressure)
90600
90580
90450 90500 90550 90600 90650
ALAT

Gambar 26. Grafik dan Hasil Persamaan Tekanan Udara

UNIVERSITAS SUMATERA UTARA


Adapun hasil dibandingkan dengan alat standart beserta persentasi kesalahan
yang didapat setelah dimasukkan persamaan dan dikalibrasi, seperti berikut:

Tabel 11. Hasil setelah di Kalibrasi dengan Alat Standart


No. Tanggal/ Pressure Pressure % Height (m)
Waktu Alat (Pa) Standart (Pa) Error
1 19/08/17 90694 90720 0,00028 924,81
8.00
2 19/08/17 90698 90710 0,00013 925,09
9.00
3 19/08/17 90692 90710 0,00019 924,72
9.30
4 19/08/17 90694 90690 0,00004 925,27
10.00
5 19/08/17 90699 90670 0,00031 924,91
12.00
6 19/08/17 90690 90700 0,00011 924,91
13.00
7 19/08/17 90695 90700 0,00005 925,10
13.30
8 19/08/17 90608 90600 0,00008 924,90
14.00
9 19/08/17 90692 90710 0,00019 925,25
15.30
10 19/08/17 90694 90700 0,00006 925,20
16.00
11 19/08/17 90697 90700 0,00003 924,90
16.30
12 19/08/17 90696 90700 0,00004 924,96
17.00

Data hasil pengukuran dan grafik Pada data ini terdapat perbedaan antara data
yang didapat dari nilai standart dengan data yang dihasilkan oleh alat, dimana data
yang dihasilkan oleh alat memiliki % deviasi, yaitu:

𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 −𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡 − 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠


% kesalahan = ∣ 100%
𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠

|𝟗𝟗𝟗𝟗𝟗𝟗𝟗𝟗𝟗𝟗, 𝟒𝟒𝟒𝟒 − 𝟗𝟗𝟗𝟗𝟗𝟗𝟗𝟗𝟗𝟗, 𝟓𝟓|


× 𝟏𝟏𝟏𝟏𝟏𝟏 % = 𝟎𝟎, 𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎 %
𝟗𝟗𝟗𝟗𝟗𝟗𝟗𝟗𝟗𝟗, 𝟓𝟓

UNIVERSITAS SUMATERA UTARA


BAB 5 KESIMPULAN DAN SARAN

5.1 Kesimpulan
Setelah dilakukan serangkainkegiatan perencanaan, perancangan, pembuatan
serta pengujian alat pengukur suhu, kelembaban dan tekanan udara berbasis
Mikrokontroler ATMega 328, dapat diambil kesimpulan sebagai berikut:
1. Sensor DHT11 membaca perubahan suhu dan kelembaban, sehingga output dari
sensor berupa sinyal data bit. Perubahan tersebut selanjutnya diubah menjadi
data pengukuransuhu dalam oC dan kelembaban dalam %.
2. Sensor BMP085 melihat perubahan tekanan udara dan ketinggian sekitar
berdasarkan medan magnet yang terbaca, output merupakan nilai data bit yang di
konversikan ke ATMega 328 dalam satuan Pascal (Pa).
3. Ketinggian diukur berdasarkan medan magnetik yang terbaca. Umumnya
semakin tinggi ketinggian maka semakin rendah tekanan udara, namun ada
beberapa faktor yang mempengaruhi seperti kelembaban udara, wilayah
permukaan, dsb.

5.2 Saran
1. Untuk melakukan pengukuran dengan karakter yang beragam jenisnya perlu
diperhatikan masalah kalibrasi pada program mikrokontroller.
2. Dengan beberapa pengembangan dan penyempurnaan sistem dari alat ini akan
dapat lebih baik lagi hasilnya.
3. Diharapakan pembaca dapat memberi saran dan kritik terhadap penulis dalam
perancangan alat ini, dan penulis berharap alat ini dapat dikembangkan baik
aplikasi maupun rancangannya agar lebih baik lagi.

UNIVERSITAS SUMATERA UTARA


DAFTAR PUSTAKA

Widodo, Thomas S. 2002. Elektronika Dasar. Jakarta: Salemba Teknik.


Afgianto, Eko Putra. 2002. Teknik Antar Muka Komputer : Konsep & Aplikasi.
Yogyakarta: Graha Ilmu
Chandra, Frangky., dan Arifianto, Deni. 2007. Jago Elektronika Rangkaian Sistem
Otomatis. Jakarta: Kawan Pustaka
Kadir, Abdul. 2015. Arduino. Jakarta: Penerbit Andi
Sutrisno. 1987. Elektronika Teori Dasar dan Penerapannya. Bandung: Penerbit ITB
Shrader, Robert L. 1991. Komunikasi Elektronika. Jakarta: Penerbit Erlangga
https://id.wikipedia.org/wiki/SuhuPenjelasan Suhu
diakses 28 Juli 2017 pukul 14.00 WIB
https://id.wikipedia.org/wiki/KelembapanPenjelasan Kelembaban
diakses 28 Juli 2017 pukul 15.00 WIB
http://www.pelajaran.co.id/2017/26/pengertian-tekanan-udara-rumus-satuan-faktor-
yang-mempengaruhi-tekanan-udara-dan-contoh-soal.html
diakses 28 Juli 2017 pukul 16.00 WIB
www.datsheet4u.com

UNIVERSITAS SUMATERA UTARA


LAMPIRAN A

Rangkaian Keseluruhan

LCD1
U? LM016L
R? 3
SCK
2 > 80.0
DATA
27.0
10k
%RH °C

DHT11

VDD
VSS

VEE

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
E
SIM?

1
2
3

4
5
6

7
8
9
10
11
12
13
14
BMP180 MODULE
6
5 D13 D12
4 3V3 D11

3 REF D10

ATMEGA328P
A0 D9
2

ATMEL
A1 D8
1 A2 D7

A3 D6

CONN-SIL6 A4 D5

A5 D4

A6 D3

12V U2 A7
5V
D2
GND

7805 RST RST

J2 GND < RX D0

VIN > TX D1
3 1 3
VI VO www.arduino.cc
2 blogembarcado.blogspot.com
GND

1 SIMULINO NANO
C3 C4
CONN-SIL3 1nF 1nF
2

UNIVERSITAS SUMATERA UTARA


LAMPIRAN B

Pada lampiran ini terdapat program, yaitu program yang ada di dalam
mikrokontroller dengan menggunakan bahasa C sebagai pembaca data dari sensor
ketebalan yang di gunakan pada PC sebagai output data terakhir selanjutnya dapat di
perhatikan program sebagai berikut :
Program Bahasa C ( Mikrokontroller )
/*******************************************************
/*untuk mendapatkan nilai temperatur dan kelembapan, data hasil pembacaan
DHT11 perlu dikonversi terlebih dahulu sebelum ditampilkan di LCD yaitu dengan
rumus:
RH=(DataRead* x 0.0405) � (DataRead* x DataRead* x 0.0000028)-4;
Temp=(DataRead* � 4000)/100;
*/

#define DHT11_PIN 0 // define analog port 0


byte read_dht11_dat()
{
byte i = 0;
byte result=0;
for(i=0; i< 8; i++)
{
while(!(PINC & _BV(DHT11_PIN)))
{}; // wait forever until anlog input port 0 is '1' (NOTICE: PINC reads all the
analog input ports
//and _BV(X) is the macro operation which pull up positon 'X'to '1' and the rest
positions to '0'. it is equivalent to 1<
delayMicroseconds(30);
if(PINC & _BV(DHT11_PIN)) //if analog input port 0 is still '1' after 30 us
result |=(1<<(7-i)); this="" position="" is="" 1="" p="">
while((PINC & _BV(DHT11_PIN))); // wait '1' finish
}
return result;
}

//bagian BMP085
int read_int_register(unsigned char r)
{
unsigned char msb, lsb;
Wire.beginTransmission(I2C_ADDRESS);
Wire.send(r); // register to read
Wire.endTransmission();

UNIVERSITAS SUMATERA UTARA


Wire.requestFrom(I2C_ADDRESS, 2); // read a byte
while(!Wire.available()) {
// waiting
}
msb = Wire.receive();
while(!Wire.available()) {
// waiting
}
lsb = Wire.receive();
return (((int)msb<<8) | ((int)lsb));
}
char read_register(unsigned char r)
{
unsigned char v;
Wire.beginTransmission(I2C_ADDRESS);
Wire.send(r); // register to read
Wire.endTransmission();

Wire.requestFrom(I2C_ADDRESS, 1); // read a byte


while(!Wire.available()) {
// waiting
}
v = Wire.receive();
return v;
}
//just taken from the BMP085 datasheet
int ac1;
int ac2;
int ac3;
unsigned int ac4;
unsigned int ac5;
unsigned int ac6;
int b1;
int b2;
int mb;
int mc;
int md;

void bmp085_get_cal_data() {
Serial.println("Reading Calibration Data");
ac1 = read_int_register(0xAA);
Serial.print("AC1: ");
Serial.println(ac1,DEC);
ac2 = read_int_register(0xAC);
Serial.print("AC2: ");
Serial.println(ac2,DEC);

UNIVERSITAS SUMATERA UTARA


ac3 = read_int_register(0xAE);
Serial.print("AC3: ");
Serial.println(ac3,DEC);
ac4 = read_int_register(0xB0);
Serial.print("AC4: ");
Serial.println(ac4,DEC);
ac5 = read_int_register(0xB2);
Serial.print("AC5: ");
Serial.println(ac5,DEC);
ac6 = read_int_register(0xB4);
Serial.print("AC6: ");
Serial.println(ac6,DEC);
b1 = read_int_register(0xB6);
Serial.print("B1: ");
Serial.println(b1,DEC);
b2 = read_int_register(0xB8);
Serial.print("B2: ");
Serial.println(b1,DEC);
mb = read_int_register(0xBA);
Serial.print("MB: ");
Serial.println(mb,DEC);
mc = read_int_register(0xBC);
Serial.print("MC: ");
Serial.println(mc,DEC);
md = read_int_register(0xBE);
Serial.print("MD: ");
Serial.println(md,DEC);
}
unsigned int bmp085_read_ut() {
write_register(0xf4,0x2e);
delay(5); //longer than 4.5 ms
return read_int_register(0xf6);
}
long bmp085_read_up() {
write_register(0xf4,0x34+(oversampling_setting<<6));
delay(pressure_waittime[oversampling_setting]);

unsigned char msb, lsb, xlsb;


Wire.beginTransmission(I2C_ADDRESS);
Wire.send(0xf6); // register to read
Wire.endTransmission();

Wire.requestFrom(I2C_ADDRESS, 3); // read a byte


while(!Wire.available()) {
// waiting
}

UNIVERSITAS SUMATERA UTARA


msb = Wire.receive();
while(!Wire.available()) {
// waiting
}
lsb |= Wire.receive();
while(!Wire.available()) {
// waiting
}
xlsb |= Wire.receive();
return (((long)msb<<16) | ((long)lsb<<8) | ((long)xlsb)) >>(8-
oversampling_setting);
}
void bmp085_read_temperature_and_pressure(int* temperature, long* pressure) {
int ut= bmp085_read_ut();
long up = bmp085_read_up();
long x1, x2, x3, b3, b5, b6, p;
unsigned long b4, b7;

//calculate the temperature dan faktor kalibrasi nya


x1 = ((long)ut - ac6) * ac5 >> 15;
x2 = ((long) mc << 11) / (x1 + md);
b5 = x1 + x2;
*temperature = (b5 + 8) >> 4;

//calculate the pressure dan faktor kalibrasi nya


b6 = b5 - 4000;
x1 = (b2 * (b6 * b6 >> 12)) >> 11;
x2 = ac2 * b6 >> 11;
x3 = x1 + x2;
b3 = (((int32_t) ac1 * 4 + x3)<> 2;
x1 = ac3 * b6 >> 13;
x2 = (b1 * (b6 * b6 >> 12)) >> 16;
x3 = ((x1 + x2) + 2) >> 2;
b4 = (ac4 * (uint32_t) (x3 + 32768)) >> 15;
b7 = ((uint32_t) up - b3) * (50000 >> oversampling_setting);
p = b7 < 0x80000000 ? (b7 * 2) / b4 : (b7 / b4) * 2;

x1 = (p >> 8) * (p >> 8);


x1 = (x1 * 3038) >> 16;
x2 = (-7357 * p) >> 16;
*pressure = p + ((x1 + x2 + 3791) >> 4);

int temperature = 0;
long pressure = 0;

UNIVERSITAS SUMATERA UTARA


bmp085_read_temperature_and_pressure(&temperature,&pressure);

void setup()
{
DDRC |= _BV(DHT11_PIN); //let analog port 0 be output port
PORTC |= _BV(DHT11_PIN); //let the initial value of this port be '1'
Serial.begin(9600);
Serial.println("Ready");
}
void loop()
{
/*byte dht11_dat[5];
byte dht11_in;
byte i;// start condition
PORTC &= ~_BV(DHT11_PIN); // 1. pull-down i/o pin for 18ms
delay(18);
PORTC |= _BV(DHT11_PIN); // 2. pull-up i/o pin for 40us
delayMicroseconds(1);
DDRC &= ~_BV(DHT11_PIN); //let analog port 0 be input port
delayMicroseconds(40);
dht11_in = PINC & _BV(DHT11_PIN); // read only the input port 0
if(dht11_in)
{
Serial.println("dht11 start condition 1 not met"); // wait for DHT response signal:
LOW
delay(1000);
return;
}
delayMicroseconds(80);
dht11_in = PINC & _BV(DHT11_PIN); //
if(!dht11_in)
{
Serial.println("dht11 start condition 2 not met"); //wair for second response
signal:HIGH
return;
}
delayMicroseconds(80);// now ready for data reception
for (i=0; i<5; i="" p="">
{ dht11_dat[i] = read_dht11_dat();} //recieved 40 bits data. Details are described
in datasheet
DDRC |= _BV(DHT11_PIN); //let analog port 0 be output port after all the data
have been received
PORTC |= _BV(DHT11_PIN); //let the value of this port be '1' after all the data
have been received

UNIVERSITAS SUMATERA UTARA


byte dht11_check_sum = dht11_dat[0]+dht11_dat[1]+dht11_dat[2]+dht11_dat[3];//
check check_sum
/*
byte dht11_check_sum = RH;
RH=(DataRead* x 0.0405) � (DataRead* x DataRead* x 0.0000028)-4;
Temp=(DataRead* � 4000)/100;
*/

if(dht11_dat[4]!= dht11_check_sum)
{
Serial.println("DHT11 checksum error");
}
Serial.print("Kelembaban = ");
Serial.print(dht11_dat[0], DEC);
Serial.print(".");
Serial.print(dht11_dat[1], DEC);
Serial.print("% ");
Serial.print("Suhu = ");
Serial.print(dht11_dat[2], DEC);
Serial.print(".");
Serial.print(dht11_dat[3], DEC);
Serial.println("C ");*/

baca_DHT();
BMP();
lcd.setCursor(0, 0); lcd.print("H=");
lcd.setCursor(2, 0); lcd.print(h);
lcd.setCursor(6, 0); lcd.print("%");
lcd.setCursor(0, 1); lcd.print("T=");
lcd.setCursor(2, 1); lcd.print(t);

lcd.setCursor(7, 0); lcd.print("h=");


lcd.setCursor(9, 0); lcd.print(tinggi);
lcd.setCursor(7, 1); lcd.print("P=");
lcd.setCursor(9, 1); lcd.print(tekanan);
delay(1000);

UNIVERSITAS SUMATERA UTARA


LAMPIRAN C

Foto Alat dengan Standart

UNIVERSITAS SUMATERA UTARA


UNIVERSITAS SUMATERA UTARA

Anda mungkin juga menyukai