ABSTRAK
Telah dilakukan perancangan dan realisai sistem pembuatan pemantauan
ketinggian air dengan menggunakan sensor pelampung yang dihubungkan pada
potensiometer menggunakan ATMega16. Alat ini dapat dimanfaatkan sebagai alat
bantu untuk memantau ketinggian air pada suatu tangki atau bak penampungan
air. Sehingga pemantauan tidak perlu dilalakukan dengan kontak fisik antara
manusia dengan tempat penampungan itu sendiri.
Perangkat kerasa alat ini terdiri dari board ATMega16, Lampu LED,
potensiometer, dan pelampung. Pelampung akan memutarkan potensiometer
seiring dengan bergeraknya pelampung sesuai tinggi air. Ketika potensiometer
berputar maka tegangan yang dihasilkan akan di olah di program ADC yang ada
dalam mikrocontroller. Lalu tegangan yang sudah di olah akan menyalakan lampu
LED. Nyala lampu LED sesuai dengan tegangan yang di berika oleh
potensiometer. Prinsip kerja alat ini menggunakan bahasa C yang telah di
ABSTRACT
Realisai the design and manufacture of systems monitoring the water levels using
a sensor vest that is connected to a potentiometer using ATMega16. This tool can
be used as a tool to monitor the level of water in a tank or water tanks. So that
monitoring does not need dilalakukan with physical contact between humans and
the shelter itself.
The device consists of fixed and this tool ATMega16 board, LED, potentiometer,
and buoys. Buoys will rotate along with the movement of a potentiometer
according to high-water buoys. When rotating the potentiometer voltage generated
will be in if the program is in mikrocontroller ADC. Then the voltage would have
been if the LED lights. LED lights in accordance with the voltage at berika by
potentiometer. The working principle of this tool using the C language which has
DAFTAR ISI
Abstrak ... i
Kata Pengantar ... iii
Daftar isi ... v
Bab 1 Pendahuluan ... 1
1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 2
1.3 Tujuan ... 2
1.4 Pembatasan Masalah ... 3
1.5 Sistematika Laporan ... 3
Bab II Kerangka Teoritis ... 5
2.1 Microcontroller ATMega 16 ... 5
2.1.1 Penjelasan fungsi pin ATMega16... 7
2.1.2 Sistem clock ... 14
2.1.4 Program memori ... 16
2.1.6 Stack pointer ... 21
2.1.7 Timer/counter ... 22
2.1.8 Sumber reset ... 23
2.2 Potensiometer ... 25
2.2.1 Konstruksi potensiometer ... 26
2.3 LED ... 28
2.3.1 Sirkuit LED ... 28
Bab III Perancangan dan Pemodelan ... 30
3.1 Perancangan perangkat keras ... 30
3.1.1 Blok Diagram ... 30
3.1.2 Sensor Pelampung ... 40
3.1.3 Potensiometer ... 41
3.1.4 ATMega 16... 42
3.1.5 LED ... 43
3.2 Perancangan Perangkat Lunak ... 44
3.2.1 Diagram alir ... 44
Bab IV Data Pengamatan dan Analisa ... 50
4.1 Pengujian perangkat keras ... 50
4.1.1 Pengujian potensiometer ... 50
4.1.2 Pengujian LED ... 51
4.2 Pengujian perangkat lunak ... 51
Bab V Kesimpulan dan Saran ... 55
5.1 Kesimpulan ... 55
5.2 Saran ... 55
Daftar Pustaka ... 56
Lampiran ... 57
Listing Program... A1
Daftar tabel
Tabel 2.1
Fungsi khusus
port
A ... 8
Tabel 2.2
Fungsi khusus
port
B ... 9
Tabel 2.3
Fungsi khusus
port
C ... 10
Tabel 2.4
Fungsi khusus
port
D ... 11
Program pada ADC Vision AVR:
/*****************************************************
This program was produced by the
CodeWizardAVR V2.04.8b Evaluation
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 29/07/2010
Author : Freeware, for evaluation and non-commercial use only
Company :
Comments:
Chip type : ATmega16
Program type : Application
AVR Core Clock frequency: 12,000000 MHz
Memory model : Small
Data Stack size : 256
*****************************************************/
#include <mega16.h>
#include <delay.h>
#define ADC_VREF_TYPE 0x00
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
void main(void)
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
DDRC=0x00;
// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
DDRD=0xFF;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 12000 kHz
// ADC Voltage Reference: AREF pin
// ADC Auto Trigger Source: ADC Stopped
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x87;
while (1)
{
// Place your code here
temp= read_adc(0);
vin=((float) temp * 0.00488);
//vin=(float(temp) * (5 volt/1024))
if((vin>=2.2)&&(vin<2.3))
{
PORTD=0b00000000;
if((vin>=0.5)&&(vin<0.75))
{PORTD=0b11111110;
delay_ms(50);
PORTD=0b11111111;
delay_ms(50);}
if((vin>=0.25)&&(vin<0.5))
{PORTD=0b11111111;
delay_ms(50);}
};
}
}
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Di era globalisasi ini perkembangan teknologi berkembang begitu pesat
seiring dengan kemajuan pola pikir sumber daya manusia yang semakin maju.
Keinginan untuk selalu menciptakan suatu hasil karya mengalami perubahan
secara bertahap yang bersifat kompetitif agar dapat menciptakan kemudahan
bagi manusianya sendiri yang didukung dengan perangkat - perangkat
berteknologi tinggi. Hal itu tidak akan tercapai apabila suatu industri masih
menggunakan sistem manual yang mayoritas menggunakan jasa tenaga kerja manusia.
Dalam kehidupan sehari – hari, manusia sering perlu melakukan
pengukuran terhadap ketinggian air. Misalnya dalam suatu pabrik yang
memiliki tangki – tangki penyimpanan air yang harus selalu terpantau
volumenya atau ketinggian permukannya. Contoh lainnya pada Stasiun
Pengisian Bahan Bakar Umum (SPBU) yaitu untuk mengetahui seberapa
banyak Bahan Bakar Minyak (BBM) yang masih tersisa di dalam tangki. Sama
halnya di PDAM yaitu untuk mengetahui seberapa banyak sisa air dalam bak
penampungan. Dalam rumah tangga terkadang juga membutuhkan dalam
pengukuran ketinggian air misalkan untuk mengetahui isi penampungan air
2 Untuk memantau ketinggian air ini ada beberapa cara, dari cara
tradisional dan cara modern. Sebelum ditemukannya suatu cara modern,
manusia menggunakan semacam tongkat panjang atau galah untuk mendeteksi
nilai ketinggian air. Cara tradisional ini memiliki kelemahan yaitu untuk
mengukur tangki yang memiliki kedalaman yang cukup dalam akan
mengalami kesulitan dan pengukuran dengan cara ini tidak dapat dilakukan
secara terus menerus karena faktor keterbatasan fisik yang ada pada manusia.
Dengan metode modern yang memanfaatkan teknologi ada beberapa
cara untuk mengukur ketinggian air tersebut salah satunya yaitu dengan
menggunakan sensor pelampung yang dihubungkan pada potensiometer yang
dipasang di atas tangki. Dengan sensor tersebut tingkat pendeteksian akan
menunjukkan hasil yang lebih akurat tanpa manusia itu harus langsung
bersentuhan fisik dengan alat atau tempat penyimpanan air tersebut.
1.2 Rumusan Masalah
Bagaimana cara membuat sistem pemantau ketinggian air dengan
menggunakan pelampung yang dihubungkan pada potensiometer
3 1.3 Tujuan
Tujuan dari tugas akhir yang dibuat adalah merancang suatu sistem
untuk memantau ketinggian air dalam tangki dengan menggunakan
pelampung yang dihubungkan pada potensiometer sebagai sensor dan
lampu LED sebagai indicator.
1.4 Pembatasan Masalah
Dalam pembuatan tugas akhir ini dibatasi yaitu:
Percobaan menggunakan maket serta bentuk tangki yang kecil yang
digunakan hanya sebagai prototype.
1.5 Sistematika Laporan
Untuk memudahkan dalam memahami isi dari tugas akhir ini maka
diuraikan penulisannya sebagai berikut:
Bab 1: Pendahuluan
Berisi tentang latar belakang, rumusan masalah, tujuan,
pembatasan masalah, manfaat penelitian, sistematika laporan.
Bab 2: Landasan Teori
Berisi tentang dasar-dasar teori yang mendukung perancangan
4 Bab 3: Perancangan alat
Berisi tentang dasar dari perancangan software maupun hardware
dan prinsip kerja.
Bab 4: Data Pengamatan dan Analisa
Berisi tentang hasil program aplikasi dari segi fungsi maupun
sistem yang digunakan.
Bab 5: Kesimpulan dan Saran
56
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan data pengamatan dan analisa data dapat diambil kesimpulan
sebagai berikut :
Sistem yang dirancang berupa alat pemantau ketinggian air sudah
berhasil direalisasikan dan sudah dapat berfungsi dengan cukup
baik, hal ini ditunjukkan dengan hasil tampilan pada lampu LED
dapat berfungsi sesuai dengan diagram alir pada program
CodeVisionAVR yang telah dibuat.
5.2. Saran
Setelah mengevaluasi Tugas Akhir ini, diharapkan Tugas Akhir ini dapat
dikembangkan lebih lanjut dengan beberapa saran sebagai berikut :
Perlu adanya penelitian penggunaan perangkat keras yang lain
untuk indikator agar didapatkan hasil yang lebih baik lagi.
Pembuatan pelampung harus dikembangkan lebih baik lagi agar
setiap bentuk tangki berubah penempatan pelampung tidak harus
56
DAFTAR PUSTAKA
1. Andrianto,Heri.2008.Pemrograman Mikrokontroler AVR ATMega16 Menggunakan Bahasa C.Bandung:Informatika.
2. Away, Gunadi Abdia.2008.Delphi for Accounting.Bandung: Informatika.