Rancang Bangun Alat Ukur Berat Badan Menggunakan Sensor Load Cell Berbasis Atmega 328

BAB II
LANDASAN TEORI
2.1. Mikrokontroler
Mikrokontroler adalah sebuah sistem komputer fungsional dalam sebuah chip. Di
dalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil RAM, memori
program, atau keduanya), dan perlengkapan input output. Dengan kata lain,
mikrokontroler adalah suatu alat elektronika digital yang mempunyai masukan dan
keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus,
cara kerja mikrokontroler sebenarnya membaca dan menulis data. Sekedar contoh,
bayangkan diri Anda saat mulai belajar membaca dan menulis, ketika Anda sudah bisa
melakukan hal itu Anda bisa membaca tulisan apapun baik buku, cerpen, artikel dan
sebagainya, dan Andapun bisa pula menulis hal-hal sebaliknya. Begitu pula jika Anda
sudah mahir membaca dan menulis data maka Anda dapat membuat program untuk
membuat suatu sistem pengaturan otomatik menggunakan mikrokontroler sesuai
keinginan Anda. Mikrokontroler merupakan komputer didalam chip yang digunakan
untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya.
Secara harfiahnya bisa disebut “pengendali kecil” dimana sebuah sistem elektronik yang
sebelumnya banyak memerlukan komponen-komponen pendukung seperti IC TTL dan
CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh
mikrokontroler ini.
Mikrokonktroler digunakan dalam produk dan alat yang dikendalikan secara

automatis, seperti sistem kontrol mesin, remote controls, mesin kantor, peralatanrumah
tangga, alat berat, dan mainan. Dengan mengurangi ukuran, biaya, dan konsumsi tenaga
dibandingkan dengan mendesain menggunakan mikroprosesor memori, dan alat input

Universitas Sumatera Utara

output yang terpisah, kehadiran mikrokontroler membuat kontrol elektrik untuk berbagai
proses menjadi lebih ekonomis. Dengan penggunaan mikrokontroler ini maka :
• Sistem elektronik akan menjadi lebih ringkas

.

• Rancang bangun sistem elektronik akan lebih cepat karena sebagian besar dari sistem
adalah perangkat lunak yang mudah dimodifikasi.
• Pencarian gangguan lebih mudah ditelusuri karena sistemnya yang kompak.
Agar sebuah mikrokontroler dapat berfungsi, maka mikrokontroler tersebut
memerlukan komponen eksternal yang kemudian disebut dengan sistem minimum.
Untuk membuat sistem minimal paling tidak dibutuhkan sistem clock dan reset,
walaupun pada beberapa mikrokontroler sudah menyediakan sistem clock internal,
sehingga tanpa rangkaian eksternal pun mikrokontroler sudah beroperasi.

Yang dimaksud dengan sistem minimal adalah sebuah rangkaian mikrokontroler yang
sudah dapat digunakan untuk menjalankan sebuah aplikasi. Sebuah IC mikrokontroler
tidakakan berarti bila hanya berdiri sendiri. Pada dasarnya sebuah sistem minimal
mikrokontroler AVR memiliki prinsip yang sama.
2.1.1 Fitur AVR ATMega328
ATMega328 adalah mikrokontroller keluaran dari atmel yang mempunyai arsitektur
RISC (Reduce Instruction Set Computer) yang dimana setiap proses eksekusi data lebih cepat
dari pada arsitektur CISC (Completed Instruction Set Computer).
Mikrokontroller ini memiliki beberapa fitur antara lain :
* 130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus clock.
* 32 x 8-bit register serba guna.
* Kecepatan mencapai 16 MIPS dengan clock 16 MHz.
* 32 KB Flash memory dan pada arduino memiliki bootloader yang menggunakan 2
KB dari flash memori sebagai bootloader.

Universitas Sumatera Utara

* Memiliki EEPROM (Electrically Erasable Programmable Read Only Memory)
sebesar 1KB sebagai tempat penyimpanan data semi permanent karena EEPROM
tetap dapat menyimpan data meskipun catu daya dimatikan.

* Memiliki SRAM (Static Random Access Memory) sebesar 2KB.
* Memiliki pin I/O digital sebanyak 14 pin 6 diantaranya PWM (Pulse Width
Modulation) output.
*Master / Slave SPI Serial interface.
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 terpetakandengan 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 2.1.1Architecture ATmega328

2.1.2 Konfigurasi PIN ATMega328

Universitas Sumatera Utara

Gambar 2.1.2 Konfigurasi Pin ATMega328

Table 2.1.2 Konfigurasi Port B

Table 2.1.2 Konfigurasi Port C

Universitas Sumatera Utara

Table 2.1.2 Konfigurasi Port D


2.2 Arduino Uno

Universitas Sumatera Utara

Arduino adalah sebuah board mikrokontroller yang berbasis ATmega328. Arduino
memiliki 14 pin input/output yang mana 6 pin dapat digunakan sebagai output PWM, 6
analog input, crystal osilator 16 MHz, koneksi USB, jack power, kepala ICSP, dan tombol
reset. Arduino mampu men-support mikrokontroller; dapat dikoneksikan dengan komputer
menggunakan kabel USB.

Gambar 2.2 Board Arduino ATmega328

Arduino memiliki kelebihan tersendiri disbanding board mikrokontroler yang lain
selain bersifat open source, arduino juga mempunyai bahasa pemrogramanya sendiri yang
berupa bahasa C. Selain itu dalam board arduino sendiri sudah terdapat loader yang berupa
USB sehingga memudahkan kita ketika kita memprogram mikrokontroler didalam arduino.
Sedangkan pada kebanyakan board mikrokontroler yang lain yang masih membutuhkan
rangkaian loader terpisah untuk memasukkan program ketika kita memprogram
mikrokontroler. Port USB tersebut selain untuk loader ketika memprogram, bisa juga

difungsikan sebagai port komunikasi serial.
Arduino menyediakan 20 pin I/O, yang terdiri dari 6 pin input analog dan 14 pin
digital input/output. Untuk 6 pin analog sendiri bisa juga difungsikansebagai output digital

Universitas Sumatera Utara

jika diperlukan output digital tambahan selain 14 pin yang sudah tersedia. Untuk mengubah
pin analog menjadi digital cukup mengubah konfigurasi pin pada program. Dalam board kita
bisa lihat pin digital diberi keterangan 0-13, jadi untuk menggunakan pin analog menjadi
output digital, pin analog yang pada keterangan board 0-5 kita ubah menjadi pin 14-19.
dengan kata lain pin analog 0-5 berfungsi juga sebagi pin output digital 14-16.
Sifat open source arduino juga banyak memberikan keuntungan tersendiri untuk kita
dalam menggunakan board ini, karena dengan sifat open source komponen yang kita pakai
tidak hanya tergantung pada satu merek, namun memungkinkan kita bisa memakai semua
komponen yang ada dipasaran.
Bahasa pemrograman arduino merupakan bahasa C yang sudah disederhanakan syntax
bahasa pemrogramannya sehingga mempermudah kita dalam mempelajari dan mendalami
mikrokontrol
Berikut ini adalah konfigurasi dari arduino duemilanove 328 :
* Mikronkontroler ATmega328.

* Beroperasi pada tegangan 5V.
* Tegangan input (rekomendasi) 7 - 12V
* Batas tegangan input 6 - 20V.
* Pin digital input/output 14 (6 mendukung output PWM).
* Pin analog input 6.
* Arus pin per input/output 40 mA.
* Arus untuk pin 3.3V adalah 50 mA.
* Flash Memory 32 KB (ATmega328) yang mana 2 KB digunakan olehbootloader.
* SRAM 2 KB (ATmega328).
* EEPROM 1KB (ATmega328).
* Kecepatan clock 16 MHz.

Universitas Sumatera Utara

2.2.1 Power
Arduino dapat diberikan power melalui koneksi USB atau power supply. Powernya
diselek secara otomatis. Power supply dapat menggunakan adaptor DC atau baterai.
Adaptor dapat dikoneksikan dengan mencolok jack adaptor pada koneksi port input
supply. Board arduino dapat dioperasikan menggunakan supply dari luar sebesar 6 - 20
volt. Jika supply kurang dari 7V, kadangkala pin 5V akan menyuplai kurang dari 5 volt

dan board bisa menjadi tidak stabil. Jika menggunakan lebih dari 12 V, tegangan di
regulator bisa menjadi sangat panas dan menyebabkan kerusakan pada board.
Rekomendasi tegangan ada pada 7 sampai 12 volt.
Penjelasan pada pin power adalah sebagai berikut :
1.5V
Regulasi power supply digunakan untuk power mikrokontroller dan komponen
lainnya pada board. 5V dapat melalui Vin menggunakan regulator pada board, atau
supply oleh USB atau supply regulasi 5V lainnya.

2.Pin Ground
berfungsi sebagai jalur ground pada arduino.
•Memori
ATmega328 memiliki 32 KB flash memori untuk menyimpan kode, juga 2 KB
yang digunakan untuk bootloader. ATmega328 memiliki 2 KB untuk SRAM
dan 1 KB untuk EEPROM.
• Input dan Output

Universitas Sumatera Utara

Setiap 14 pin digital pada arduino dapat digunakan sebagai input atau output,

menggunakan

fungsi

pinMode(),

digitalWrite(),

dan

digitalRead().

Input/output dioperasikan pada 5 volt. Setiap pin dapat menghasilkan atau
menerima maximum 40 mA dan memiliki internal pull-up resistor
(disconnected oleh default) 20-50 KOhms.
Beberapa pin memiliki fungsi sebagai berikut :
1. Serial : 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan mengirim (TX)
TTL data serial. Pin ini terhubung pada pin yang koresponding dari USB FTDI ke
TTL chip serial.
2. Interupt eksternal : 2 dan 3. Pin ini dapat dikonfigurasikan untuktrigger sebuah

interap pada low value, rising atau falling edge, atau perubahan nilai.
3. PWM : 3, 5, 6, 9, 10, dan 11. Mendukung 8-bit output PWM dengan fungsi
analogWrite().
4. SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin ini mensuport komunikasi
SPI, yang mana masih mendukung hardware, yang tidak termasuk pada bahasa
arduino.
5. LED : 13. Ini adalah dibuat untuk koneksi LED ke digital pin 13. Ketika pin
bernilai HIGH, LED hidup, ketika pin LOW, LED mati.
2.2.2 Tutorial Bahasa Pemograman Arduino
Arduino menggunakan pemrograman dengan bahasa C. Berikut ini adalah sedikit
penjelasan yang ditujukan kepada anda yang hanya mempunyai sedikit pengalaman
pemrograman dan membutuhkan penjelasan singkat mengenai karakter bahasa C dan
software Arduino. Untuk penjelasan yang lebih mendalam, web Arduino.cc adalah sumber
yang lengkap.
2.2.2.1 Struktur

Universitas Sumatera Utara

Setiap program Arduino (biasa disebut sketch) mempunyai dua buah fungsi yang
harus ada.

• void setup( ) { } o Semua kode didalam kurung kurawal akan dijalankan hanya satu
kali ketika program Arduino dijalankan untuk pertama kalinya. • void loop( ) { } o
Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan
satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu
daya (power) dilepaskan
2.2.2.2 Syntax
Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan.
• //(komentar satu baris) o Kadang diperlukan untuk memberi catatan pada diri
sendiri apa arti dari kode-kode yang dituliskan. Cukup menuliskan dua buah
garis miring dan apapun yang kita ketikkan dibelakangnya akan diabaikan
oleh program.
• /* */(komentar banyak baris) o Jika anda punya banyak catatan, maka hal itu
dapatdituliskan pada beberapa baris sebagai komentar. Semua hal yang
terletak di antara dua simbol tersebut akan diabaikan oleh program.
• { }(kurung kurawal)o Digunakan untuk mendefinisikan kapan blok program
mulai dan berakhir (digunakan juga pada fungsi dan pengulangan).
• ;(titk koma) o Setiap baris kode harus diakhiri dengan tanda titik koma (jika
ada titik koma yang hilang maka program tidak akan bisa dijalankan).
Sebuah program secara garis besar dapat didefinisikan sebagai instruksi untuk
memindahkan angka dengan cara yang cerdas. Variabel inilah yang digunakan untuk
memindahkannya.

Universitas Sumatera Utara

• int (integer) o Digunakan untuk menyimpan angka dalam 2 byte (16 bit).
Tidak mempunyai angka desimal dan menyimpan nilai dari -32,768 dan
32,767.
• long (long) o Digunakan ketika integer tidak mencukupi lagi. Memakai 4
byte (32 bit) dari memori (RAM) dan mempunyai rentang dari -2,147,483,648
dan 2,147,483,647.
• boolean (boolean) o Variabel sederhana yang digunakan untukmenyimpan
nilai TRUE (benar) atau FALSE (salah). Sangat berguna karena hanya
menggunakan 1 bit dari RAM.
• float (float) o Digunakan untuk angka desimal (floating point). Memakai 4
byte (32 bit) dari RAM dan mempunyai rentang dari -3.4028235E+38 dan
3.4028235E+38.
• char (character) o Menyimpan 1 karakter menggunakan kode ASCII
(misalnya ‘A’ = 65). Hanya memakai 1 byte (8 bit) dari RAM.

2.3. Display (LCD)

LCD merupakan salah satu perangkat penampil yang sekarang ini mulai banyak
digunakan.Penampil LCD mulai dirasakan menggantikan fungsi dari penampil CRT
(Cathode Ray Tube) yang sudah berpuluh-puluh tahun digunakan manusia sebagai penampil
gambar / text baik monokrom (hitam dan putih), maupun yang berwarna.Teknologi LCD
memberikan lebih keuntungan dibandingkan dengan teknologi CRT, karena pada dasarnya,
CRT adalah tabung triode yang digunakan sebelum transistor ditemukan. Beberapa
keuntungan LCD dibandingkan dengan CRT adalah komsusmsi daya yang relatif kecil, lebih
ringan, tampilan yang lebih bagus, dan ketika berlama-lama di depan monitor, monitor CRT
lebih cepat memberikan kejenuhan pada mata dibandingkan dengan LCD.

Universitas Sumatera Utara

LCD yang digunakan adalah jenis LCD yang menampilkan data dengan 2 baris
tampilan pada display. Keuntungan dari LCD ini adalah :
1. Dapat menampilkan karakter ASCII, sehingga dapat memudahkan untuk membuat
program tampilan.
2. Mudah dihubungkan dengan port I/O karena hanya menggunakan 8 bit data dan 3 bit
control.
3. Ukuran modul yang proporsional
4. Daya yang digunakan relatif sangat kecil.
Saat ini telah dikembangkan berbagai jenis LCD, mulai jenis LCD biasa, PassiveMatrix LCD (PMLCD), hingga Thin-Film Transistor Active-Matrix LCD (TFTAMLCD).Kemampuan LCD juga telah ditinggkatkan, dari yang monokrom hingga yang
mampu menampilkan ribuan warna.

Gambar 2.3. Bentuk fisik LCD 16X2

Untuk rangkaian interfacing, LCD 16×2 tidak banyak memerlukan komponen
pendukung.Hanya diperlukan satu variable resistor untuk memberi tegangan kontras pada
matriks LCD.Dengan menggunakan CodeVision AVR, pemrograman untuk menampilkan
karakter atau string ke LCD 16×2 sangat mudah karena didukung library yang telah
disediakan oleh CodeVision AVR itu sendiri.Kita tidak harus memahami karakteristik LCD

Universitas Sumatera Utara

secara mendalam, perintah tulis dan inisialisasi sudah disediakan oleh library dari
CodeVision AVR.

Konfigurasi pin dari LCD ditunjukkan pada Gambar dibawah ini

Gambar 2.4.
Konfigurasi pin LCD

Modul LCD memiliki karakteristik sebagai berikut:
1. Terdapat 16 x 2 karakter huruf yang bisa ditampilkan.
2. Setiap huruf terdiri dari 5x7 dot-matrix cursor.
3. Terdapat 192 macam karakter.
4. Terdapat 80 x 8 bit display RAM (maksimal 80 karakter).
5.

Memiliki kemampuan penulisan dengan 8 bit maupun dengan 4 bit.

6. Dibangun dengan osilator lokal.
7. Satu sumber tegangan 5 volt.
8. Otomatis reset saat tegangan dihidupkan.
9. Bekerja pada suhu 0oC sampai 55oC.

Universitas Sumatera Utara

2.4. Load cell
Load Celladalah komponen utama disistem Timbangan, Tingkat keakurasian
Timbangan tergantung dari Jenis/Type/Merk Load Cell yang dipakai, sedangkan keakurasian
Timbanganmenentukan efisiensi pada dunia industri, dewasa ini setiap transaksi jual beli
yang menggunakan satuan Kilogram/LB dll, diwajibkan menggunakan Timbanganyang
Dilegalisasi oleh Departemen Perdagangan melalui Direktorat Metrologi yang berwenang
untuk menSahkan/melegalisasikan Timbangan melalui system TERA, diwajibkan untuk
melakukan TERA maksimal setahun sekali, dikarenakan Semua Timbangan dalam proses
pemakaiannya pada jangka waktu tertentu akan mengalami deformasi mekanis pada frame
Timbangan. Dalam hal ini akan berpengaruh terhadap tingkat keakurasian dari Load Cell dan
pada Timbangan tersebut, sehingga harus dilaksanakan Kalibrasi menggunakan Test
Weigh/Batu Standar dari Metrologi. Kalibrasi tersebut adalah untuk menyamakan tegangan
Load Cell dibandingkan dengan Batu standar yang dibaca di Indicator Timbangan. Jadi kita
bisa membayangkan betapa pentingnya Load Cell itu. Berikut ini akan kita bahas mengenai
definisi Load Cell.

Universitas Sumatera Utara