Anda di halaman 1dari 18

BAB I

PENDAHULUAN

1.1. Latar Belakang

Dewasa ini, di butuhkan peralatan – peralatan elektronik yang dapat


memudahkan / membantu manusia untuk melakukan dan mengenali sesuatu.
Dalam kasus ini alat yang akan di kerjakan adalah timbangan digital
menggunakan layar LCD. Timbangan ini akan menampilkan berat/angka yang di
timbang. Timbangan ini memudahkan para pedagang yang penglihatannya sudah
tidak bagus lagi.

Dengan adanya alat ini, maka pedagang dapat mengetahui berapa berat
dagangannya yang di timbang dari layar LCD. Tentu saja alat ini sangat
memudahkan kita. Pembuatan alat ini diharapkan dapat membantu mengatasi
masalah – masalah di atas.

1.2. Perumusan Masalah

Permasalahan yang perlu diperhatikan :

1. Penggunaan Mikrokontroler ATMEGA16 untuk sistem kontrol berat


timbangan.

2. Program mikrokontroler ATMEGA16 sebagai pengatur delay..

1.3. Batasan Masalah

Perancangan sistem kontrol dibatasi :
1. Mikrokontroler ATMEGA16
2. Pembatasan pada berat
timbangan dengan berat paling rendah 0 Kg dan berat paling tinggi 15
Kg.

1.4. Tujuan

Tujuan Tugas Akhir adalah merancang bangun timbangan digital adalah untuk


alat bantu menimbang berat berbasis mikrokontroller ATMEGA16

1.5. Metode Penyelesaian Masalah


1. Studi Literatur
Penelusuran informasi tentang mikrokontroler, display LCD dan
browsing internet.
2. Perencanaan
Merancang mekanik dan pembuatan program sistem kontrol.
3. Pengujian
Menguji fungsi pada potensiometer
4. Pengolahan Data
Menghimpun, mengolah, dan menganalisis data yang diperoleh dari
pengujian.
5. Pembuatan Laporan
Penyusunan hasil kegiatan Tugas Akhir.
BAB II

LANDASAN TEORI

2.1 Mikrokontroler ATMEGA16

Mikrokontroler adalah sebuah sistem komputer lengkap dalam satu serpih


(chip). Mikrokontroler lebih dari sekedar sebuah mikroprosesor karena sudah
terdapat atau berisikan ROM (Read-Only Memory), RAM (Read-Write Memory),
beberapa bandar masukan maupun keluaran, dan beberapa peripheral seperti
pencacah/pewaktu, ADC (Analog to Digital converter), DAC (Digital to
Analog converter) dan serial komunikasi.

Salah satu mikrokontroler yang banyak digunakan saat ini yaitu


mikrokontroler AVR. AVR adalah mikrokontroler RISC (Reduce Instuction
Set Compute) 8 bit berdasarkan arsitektur Harvard. Secara umum mikrokontroler
AVR dapat dapat dikelompokkan menjadi 3 kelompok, yaitu keluarga AT90Sxx,
ATMega dan ATtiny. Pada dasarnya yang membedakan masing-masing kelas
adalah memori, peripheral, dan fiturnya

Seperti mikroprosesor pada umumnya, secara internal


mikrokontrolerATMega16 terdiri atas unit-unit fungsionalnya Arithmetic and
Logical Unit (ALU), himpunan register kerja, register dan dekoder instruksi, dan
pewaktu beserta komponen kendali lainnya. Berbeda dengan mikroprosesor,
mikrokontroler menyediakan memori dalam serpih yang sama dengen
prosesornya (in chip).

2.1.1. Arsitektur ATMEGA16

Mikrokontroler ini menggunakan arsitektur Harvard yang memisahkan memori


program dari memori data, baik bus alamat maupun bus data, sehingga
pengaksesan program dan data dapat dilakukan secara bersamaan (concurrent).

Secara garis besar mikrokontroler ATMega16 terdiri dari :


1. Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16Mhz.

2. Saluran I/O 32 buah, yaitu Bandar A, Bandar B, Bandar C, dan Bandar D.

3. CPU yang terdiri dari 32 buah register.

2. User interupsi internal dan eksternal

3. Bandar antarmuka SPI dan Bandar USART sebagai komunikasi serial

4. Fitur Peripheral

• Dua buah 8-bit timer/counter dengan prescaler terpisah dan mode compare

• Satu buah 16-bit timer/counter dengan prescaler terpisah, mode compare, dan

mode capture

• Real time counter dengan osilator tersendiri

• Empat kanal PWM dan Antarmuka komparator analog

• 8 kanal, 10 bit ADC

• Byte-oriented Two-wire Serial Interface


• Watchdog timer dengan osilator internal

2.1.3. DESKRIPSI MIKROKONTROLER ATMEGA16

• VCC (Power Supply) dan GND(Ground)

• Bandar A (PA7..PA0)

Bandar A berfungsi sebagai input analog pada konverter A/D. Bandar A juga


sebagai suatu bandar I/O 8-bit dua arah, jika A/D konverter tidak digunakan. Pena
- pena Bandar dapat menyediakan resistor internal pull-up (yang dipilih untuk
masing-masing bit). Bandar A output buffer mempunyai karakteristik gerakan
simetris dengan keduanya sink tinggi dan kemampuan sumber. Ketika pena PA0
ke PA7 digunakan sebagai input dan secara eksternal ditarik rendah, pena–pena
akan memungkinkan arus sumber jika resistor internal pull-up diaktifkan. Pena
Bandar A adalah tri-stated manakala suatu kondisi reset menjadi aktif, sekalipun
waktu habis.

• Bandar B (PB7..PB0)

Bandar B adalah suatu bandar I/O 8-bit dua arah dengan resistor internal pull-
up (yang dipilih untuk beberapa bit). Bandar B output buffer
mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan
kemampuan sumber. Sebagai input, pena Bandar B yang secara eksternal ditarik
rendah akan arus sumber jika resistor pull-up diaktifkan. Pena Bandar B adalah
tri-statedmanakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.

• Bandar C (PC7..PC0)

Bandar C adalah suatu bandar I/O 8-bit dua arah dengan resistor internal pull-
up (yang dipilih untuk beberapa bit). Bandar C output buffer
mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan
kemampuan sumber. Sebagai input, pena bandar C yang secara eksternal ditarik
rendah akan arus sumber jika resistor pull-up diaktifkan. Pena bandar C adalah tri-
statedmanakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.

• Bandar D (PD7..PD0)

Bandar D adalah suatu bandar I/O 8-bit dua arah dengan resistor internal pull-
up (yang dipilih untuk beberapa bit). Bandar D output buffer
mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan
kemampuan sumber. Sebagai input, pena bandar D yang secara eksternal ditarik
rendah akan
arus sumber jika resistor pull-up diaktifkan. Pena Bandar D adalah tri-stated
manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.

• AVCC adalah pena penyedia tegangan untuk bandar A dan Konverter A/D.

• AREF adalah pena referensi analog untuk konverter A/D.

2.1.4.1. Memori Program

Arsitektur ATMega16 mempunyai dua memori utama, yaitu memori data dan
memori program. Selain itu, ATMega16 memiliki memori EEPROM untuk
menyimpan data. ATMega16 memiliki 16K byte On-chip In-
System Reprogrammable Flash Memory untuk menyimpan program. Instruksi
ATMega16 semuanya memiliki format 16 atau 32 bit, maka memori flash diatur
dalam 8K x 16 bit. Memori flash dibagi kedalam dua bagian, yaitu bagian
program boot dan aplikasi.Bootloader adalah program kecil yang bekerja pada
saat sistem dimulai yang dapat memasukkan seluruh program aplikasi ke dalam
memori prosesor.

2.2 LCD

LCD (Liquid Crystal Display) adalah modul penampil yang banyak


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

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

Alamat awal karakter 00H dan alamat akhir 39H. Jadi, alamat awal di
baris kedua dimulai dari 40H. Jika Anda ingin meletakkan suatu karakter pada
baris ke-2 kolom pertama, maka harus diset pada alamat 40H. Jadi, meskipun
LCD yang digunakan 2x16 atau 2x24, atau bahkan 2x40, maka penulisan
programnya sama saja.

CGRAM merupakan memori untuk menggambarkan pola sebuah karakter,


dimana bentuk dari karakter dapat diubah-ubah sesuai dengan keinginan. Namun,
memori akan hilang saat power supply tidak aktif sehingga pola karakter akan
hilang. Berikut tabel pin untuk LCD M1632. Perbedaannya dengan LCD standar
adalah pada kaki 1 VCC, dan kaki 2 Gnd. Ini kebalikan dengan LCD standar.

Perlu diketahui, driver LCD seperti HD44780 memiliki dua register yang
aksesnya diatur menggunakan pin RS. Pada saat RS berlogika 0, register yang
diakses adalah perintah, sedangkan pada saat RS berlogika 1, register yang
diakses adalah register data.

Agar dapat mengaktifkan LCD, proses inisialisasi harus dilakukan dengan


cara mengeset bit RS dan meng-clear-kan bit E dengan delay minimal 15 ms.
Kemudian mengirimkan data 30H dan ditunda lagi selama 5 ms. Proses ini harus
dilakukan tiga kali, lalu mengirim inisial 20H dan interface data length dengan
lebar 4 bit saja (28H). Setelah itu display dimatikan (08H) dan di-clear-kan (01H).
Selanjutnya dilakukan pengesetan display dan cursor, serta blinking apakah ON
atau OFF.
BAB III

PERENCANAAN DAN REALISASI

Spesifikasi Alat
Berikut ini adalah spesifikasi dari sistem yang akan direalisasikan :
1. Tegangan Operasional Sistem : 12VDC
2. Sumber : Adaptor
3. Mikrokontroler : ATMEGA16
4. Output : Layar LCD
5. Range Berat : 0 – 50 Kg

Diagram Blok

Gambar 3.1 Diagram Blok Sistem Kontrol Alat Bantu Penyebrangan

Minsis ATMEGA16 berfungsi sebagai pengendali utama untuk


mengendalikan system secara keseluruhan. Ketika potensiometer berubah
posisinya, maka masukan input dari ADC internal yang di miliki Atmega16 juga
berubah yang menyebabkan perubahan nilai berat yang ditampilkan LCD.
Potensiomter berfungsi untuk menentukan nilai berat yang akan ditampilkan oleh
LCD

3.1 Cara kerja Rangkaian

Jenis timbangan yang digunakan adalah jenis timbangan pegas. Timbangan


berfungsi sebagai alat pokok dalam sistem ini. Di dalam timbangan ini dipasang
sebuah potensiometer geser. Ketika timbangan mendapatkan beban, jarum yang
ada di timbangan akan berputar dan mengubah resistansi pada potensiometer.
Karena adanya perubahan pada resistansi, berubah pula tegangan yang di berikan
ke AVR Atmega 16. Di dalam AVR sudah terintegrasi rangkaian ADC yang
mengubah data analog menjadi data digital yang nantinya bisa di program di
dalam AVR. Output dari AVR masuk ke dalam LCD. Nilai berat yang diterima
ditampilkan oleh LCD
3.2 Perancangan Hardware

3.2.1 Timbangan dan Potensiometer

Jenis timbangan yang digunakan adalah jenis timbangan pegas yang


dapat menimbang hingga berat maksimal 30 kg. Timbangan berfungsi sebagai
alat pokok dalam sistem ini. Di dalam timbangan ini dipasang sebuah
potensiometer geser yang biasa digunakan untuk equalizer pada sebuah
pemutar audio seperti tape, radio dan lain-lain. Potensiometer dipasang secara
permanen yang apabila timbangan diberi beban maka pegas akan menurun dan
ikut menggerakan potensiometer tersebut. Semakin berat beban yang diberikan
semakin besar hambatan yang dihasilkan oleh potensiometer.

3.2.1 Mikrokontroler

Minimum system yang ingin digunakan adalah berupa modul


mikrokontroler AT8MEGA16, mikrokontroler ini memiliki 4 Port, ( Port
A sampai port D ), semuanya ada 40 pin input output
Gambar 3.1 Skematik Rangkaian

Tabel 3.2 Port – port yang ingin digunakan pada Modul ATMEGA16


Port Fungsi Keterangan
Port A Input Input dari Potensiometer
Port C.0 – C.7 Output Inisial LCD

Foto Alat

3.2 Perancangan Software
3.3.1 Flowchart Program
Sesuai perancangan hardware, maka dapat dirancang flowchart program yang
sesuai dengan fungsi alat yang diinginkan, berikut gambar rancangan flowchart
program :

3.3.2 Listing Program

Dari rancangan flowchart program diatas, dapat dirancang program seperti yang
diinginkan, berikut adalah listing program pada mikrokontroler sesuai dengan
rancangan flowchart :

#include <mega16.h>

#include <delay.h>
#include <stdio.h>

#asm

.equ __lcd_port=0x15 ;PORTC

#endasm

#include <lcd.h>

#define ms delay_ms

#define ADC_VREF_TYPE 0x40

unsigned int read_adc(unsigned char adc_input)

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

delay_us(10);

ADCSRA|=0x40;

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

ADCSRA|=0x10;

return ADCW;

int x,bar;
float berat;

char buf[33];

void baca_sensor(){

x=read_adc(0);

berat=(x-500)*1.3;

if (berat<x) {

berat=x*0 ;}

void display_sensor(){

lcd_gotoxy(0,0);lcd_putsf("Beratnya:");

lcd_gotoxy(0,1);sprintf(buf,"%0.0f kilogram",berat);lcd_puts(buf);

void opening(){

lcd_gotoxy(0,0);lcd_putsf("Author:");
ms(1000);

lcd_gotoxy(0,1);lcd_putsf("Zali");

ms(1000);

lcd_clear();

lcd_gotoxy(0,0);lcd_putsf("Loading");

for(bar=0;bar<=15;bar++){

lcd_gotoxy(bar,1);

lcd_putsf("\xFF");

lcd_gotoxy(5,0);

delay_ms(40);

ms(1000);

lcd_clear();

void main(void)

{
PORTA=0x00;

DDRA=0x00;

PORTB=0x00;

DDRB=0x00;

PORTD=0x1C;

DDRD=0xFF;

TCCR1A=0x81;

TCCR1B=0x0D;

TCNT1H=0x00;

TCNT1L=0x00;

ICR1H=0x00;

ICR1L=0x00;

OCR1AH=0x00;

OCR1AL=0x00;

OCR1BH=0x00;

OCR1BL=0x00;

ADMUX=ADC_VREF_TYPE & 0xff;


ADCSRA=0x83;

lcd_init(16);

opening();

while (1)

baca_sensor();

display_sensor();

};

}
BAB IV

PENUTUP

1.1 Kesimpulan

Berdasarkan dari pengujian, maka akhirya pembuatan tugas proyek ini


dapat diambil beberapa simpulan diantaranya :
1. Timbangan hanya dapat membaca berat minimal 0 kg dan maksimal 30 kg
2. Apabila beban ditambah 1 sampai dengan 2 ons maka angka pecahan tidak
menyala stabil. Apabila ditambah beban 3 sampai dengan 4 ons maka angka
pecahan akan dibulatkan ke atas.

5.2 Saran
1. Sebaiknya digunakan sensor tekan (berat) yang lebih sensitif sehingga akan
terjadi perubahan nilai tegangan meskipun diberi beban yang ringan.

2. Sebaiknya digunakan jenis timbangan yang menggunakan pegas yang lunak dan
skala pembacaan berat yang lebih besar.

Anda mungkin juga menyukai