Anda di halaman 1dari 29

KATA PENGANTAR

Puji dan syukur kami panjatkan kehadirat Tuhan Yang Maha Esa atas segala
rahmat dan karunianya sehingga kami dapat menyelesaikan laporan pembuatan
rangkaian mikrokontroler. Laporan dalam bentuk makalah ini disusun untuk
memenuhi salah satu persyaratan dalam mengikuti mata kuliah Mikrokontroler.
Selama penulisan makalah ini kami banyak menemui hambatan dan kesulitan, namun
berkat doa dan bantuan dari berbagai pihak kami dapat menyelesaikan makalah ini
tepat pada waktunya. Semoga makalah ini bermanfaat untuk pembaca dan penulis
pada umunya. Dan untuk perbaikan makalah ini selanjutnya diharapkan kritik dan
saran
yang
membangun.

Surabaya, 10Juli 2015

DAFTAR ISI
KATA PENGANTAR ........................................................................................ 1

DAFTAR ISI

.........................................................................................................2

BAB I

PENDAHULUAN ....................................................................................3

BAB II

Teori Dasar ....................................................................................5

BAB III

PEMBUATAN SISTEM MINIMUMDAN PERANGKAT I/O.........12

BAB V

PENGUJIAN

BAB V

PENUTUP

DAFTAR PUSTAKA

BAB I
PENDAHULUAN
1.1

Latar Belakang

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 penggunaan mikrokontroler ini maka :
1. Sistem elektronik akan menjadi lebih ringkas;
2. Rancang bangun sistem elektronik akan lebih cepat karena sebagian besar dari
sistem adalah perangkat lunak yang mudah dimodifikasi;
3. Pencarian gangguan lebih mudah ditelusuri karena sistemnya yang kompak.
Namun yang akan di bahas adalah sistem minimum dengan menggunakan
mikrokontroler.

1.2

Ruang Lingkup

Ruang lingkup yang akan penulis bahas meliputi sistem minimum yang
menggunakan mikrokontroler ATMega16 dan komponen pendukungnya.

1.3 Maksud dan Tujuan


Maksud dari laporan ini adalah untuk menjelaskan bagaimana membuat sistem
minimum pertahapnya. Dan apa itu IC mikrokontroler dan penyusunannya menjadi
sistem minimun serta komponen-komponen pendukungnya. Dan juga untuk
memenuhi tugas mata kuliah Mikrokontroler.

1.4

Metode Penelitian
Dalam penyusunan laporan ini digunakan metode penelitian, yaitu:
a. Teori mikrokontroler dan komponen pendukungnya
b. Tahapan pembuatan sistem minimum
c. Memprogram serta mengintegrasikan mikrokontroler dengan seperangkat I / O

1.5

Sistematika Penulisan

Sistematika penulisan Makalah Statistika deskriptif ini adalah sebagai berikut:


BAB I PENDAHULUAN
Dalam bab ini dijelaskan bagaimana mengenai latar belakang, ruang lingkup, maksud
dan tujuan, metode penelitian, dan sistematika penulisan yang menyangkut dengan
laporan.
BAB II TEORI DASAR
Dalam bab ini dijelaskan mengenai penjelasan mikrokontroler dan disertsi komponen
lainnya untuk membuat sistem minimum. Dibahas juga bagaimana proses-proses yang
dilalui untuk membuat sistem mininum itu sendiri.
BAB III TEORI DASAR

BAB III PENUTUP


Dalam bab ini penulis memberikan penjelasan tentang kesimpulan dan saran atas
semua pembahasan yang telah dipaparkan.

BAB II
TEORI DASAR

2.1

Sistem Minimum

Sistem minimum adalah rangkaian komponen-komponen elektronika yang


membutuhkan IC mikrokontroler untuk mengoperasikannya. Dalam hal ini
mikrokontroler yang dipakai adalah mikrokontroler ATMega16. Dalam pembuatan
system minimum, yang kami buat adalah dengan menggunakan komponen-komponen
sebagai berikut:
a.
b.
c.
d.
e.
f.
g.
h.
i.
j.

2.2

IC mikrokontroler ATMega16 TQFP


1 resistor 510 dan 1 resistor 10 K
4pushbutton
4 elco 10 f
1 XTal 12 MHz
2 kapasitor keramik 22pF
1 LED
Regulator 5 V
5 Header 2 X 5
DC Jack Supply

Perangkat I / O

Perangkat I / O adalah rangkaian komponen-komponen yang digunakan


sebagai perangkat input dan output dari mikrokontroler, kebutuhan I/O tergantung
pada rancangan kerja dari mikrokontroler. Untuk membuat seperangkat I/O yang
bekerja dengan dibutuhkan berikut beberapa komponen yang dibutuhkan :
a.
b.
c.
d.
e.
f.
g.
h.
i.

Resistor
Potensio
LCD
Sensor suhu LM35
Sensor cahaya LDR
Push button
Motor
Driver Motor
MAX 232

2.3

Komponen dan Software yang Digunakan


Eagle
Software ini kami manfaatkan sebagai simulator sebelum kami
mencetak atau membuat rangkaian pada PCB yang sebenarnya.
Penggunaan software ini juga mudah, kita bias secara drag-and-drop
untuk menyusun komponen-komponen sebagai simulator system
minimum yang akan dibuat.
CodeVision AVR
Penggunaan software ini adalah untuk membuat program yang nantinya
akan dimasukkan ke dalam IC mikrokontroler. Sofware ini
menggunakan bahasa pemrogramman C sebagai bahasa pemrogramman
pembuatan programnya.
IC mikrokontroler ATMega16
Mikrokonktroler Alv and Vegards Risc processor atau sering
disingkat AVR merupakan mikrokonktroler RISC 8 bit. Karena RISC
inilah sebagian besar kode instruksinya dikemas dalam satu siklus clock.
AVR adalah jenis mikrokontroler yang paling sering dipakai dalam
bidang elektronika dan instrumentasi. Berikut adalah kofigurasi kaki pin
IC ini:

Resistor
Resistor adalah komponen elektronik dua kutub yang didesain untuk
menahan arus listrik dengan memproduksi tegangan listrik di antara
6

kedua kutubnya, nilai tegangan terhadap resistansi berbanding dengan


arus yang mengalir, berdasarkan hukum Ohm:
V=I.R
I=

V
R

Push-Button
Push-Button adalah komponen penukar mekanisme kerja dalam hal ini
adalah arus listrik. Di rangkaian yang kami buat komponen ini berfungsi
sebagai tombol reset untuk mengembalikan IC ke keadaan netral dengan
kata lain untuk menghapus program yang sudah dimasukka ke dalam IC.

Elco (Electrolite Condensator)


Elco adalah komponen berpolaritas positif dan negatif dengan 2 kaki
yang masing masing mewakili polaritas itu sendiri. Kaki dengan tanda
garis adalah kaki negatif. Ini biasanya terdapat pada elco yang berbentuk
tabung.

XTal (Crystal)
XTAL merupakan komponen yang berfungsi untuk membangkitkan
frekuensi osilasi dengan stabilitas yang sangat tinggi. Frekuensi osilasi
didapat dari efek piezoelektrik. Bahan yang biasa digunakan untuk
7

memperoleh efek piezoelektrik diantaranya kwarsa, garam Rochelle dan


tourmaline. Bahan yang banyak digunakan adalah kristal kwarsa.

Kapasitor Keramik
Kapasitor ini tidak memiliki polaritas sehingga aman jika dipasang
dengan arah apapun. Komponen ini hanya bekerja pada tegangan rendah
hingga tegangan 100 volt. Pada umumnya kapasitor jenis ini
mempunyai warna yang bermacam-macam dan berbentuk pipih. Pada
badan komponen terdapat nilai yang dikandungnya.

LED (Light Emiting Diode)


LED pada umumnya digunakan sebagai lampu penanda. Kami
menggunakan LED sebagai tanda bahwa arus sudah masuk ke
rangkaian. Komponen ini juga digunakan dibanyak alat, karena
konsumsi dayanya yang rendah dan memudahkan untuk mengetahui
apakah suatu alat atau rangkaian bekerja dengan melihat LED.

Regulator 5V
Regulator berfunsi untuk memfilter tegangan yang masuk tetap 5V
walaupun tegangan masukan dari DC supply lebih dari 5V.

Pin Header 2 X 5
Digunakan untuk menyambung antara minimum system dengan
perangkat I/O

Potensio
Mengatur kecepatan dari motor dengan terlebih dahulu masuk ADC dari
mikrokontroler

LCD karakter 2x16


Menampilkan atau mencetak karakter yang ditentukan semisal
menampilkan menu atau menampilkan hasil pembacaan sensor

Driver motor
Pengendali arah dan kecepatan dari motor dengan menggunakan
transistor yang dirangkai secara H-Bridge

Sensor suhu LM35


Sensor untuk mendeteksi suhu merubah besaran suhu menjadi tegangan
dengan konstanta 10mV tiap naik 1o C

Sensor cahaya LDR


Mendeteksi tingkat intensitas cahaya dengan merubahnya menjadi
hambatan

10

Serial 232
Menghubungkan komunikasi secara serial antara mikrokontroler dengan
perangkat luar menggunakan ic MAX232

11

BAB III
PEMBUATAN SISTEM MINIMUM
DAN PERANGKAT I/O
3.1

Desain minimum sistem serta perangkat i/o

Skematik Rangkaian system At-Mega 16 beserta serial RS 232

Rangkain minimum system At-Mega 16 tersebut terdiri dari :


1.
2.
3.
4.
5.
6.
7.
8.

Port Supply
Regulator 5v
Port I/O
Rangkaian clock
Tombol reset
Int 0,1,2
Port RTC
Port RS232

Rangkaian serial dengan RS232 ini terdiri dari


1. Port DB9
2. Port menuju mikrokontrol
3. Ic MAX232

Board Tampak Atas


12

Board Tampak Bawah

Komponen Tampak Atas

13

Komponen Tampak Bawah

Rangkaian Perangkat I/O

Rangkaian perangkat I/O terdiri dari :


1. Pin Header 2x5
2. LCD karakter 2x16
3. Driver motor H-Bridge dengan transistor
4. Push button
5. Barled
6. Dipswitch
7. LM35 + Rangkaian pengkondisi sinyal
8. Potensio
9. LDR
10. Board

Komponen Tampak Atas

14

3.2

Program pada IC

Memasukkan program kedalam memori IC menggunakan downloader.


Sebelum itu buat terlebih dahulu program dengan menggunakan software CodeVision
AVR. Program yang akan dibuat menggunakan bahasa C. Sehingga syntax yang
ditulus juga harus memenuhi kriteria bahasa C.

3.3

Integrasi Mikrokontrol dengan perangkat I/O melalui hardware dan software

Integrasi hardware antara mikrokontroler dan I/O


a. PORTA
PORTA.0= LDR
PORTA.1= LM35
PORTA.2= Potensiometer
PORTA.3= PORTA.4= PORTA.5= PORTA.6= PORTA.7= b. PORTB
PORTB.0= RS(LCD)
PORTB.1= R\W(LCD)
PORTB.2= E(LCD)
PORTB.3= Driver motor 1
PORTB.4= D1(LCD)
PORTB.5= D2(LCD)
15

PORTB.6= D3(LCD)
PORTB.7= D4(LCD)
c. PORTC
PORTC.0= PB1
PORTC.1= PB2
PORTC.2= PB3
PORTC.3= PB4
PORTC.4= PB5
PORTC.5= PB6
PORTC.6= PB7
PORTC.7= PB8
Integrasi hardware antara mikrokontroler dan I/O
(Setting pada code wizard)

(Program)
/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.3 Standard
Automatic Program Generator
Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

16

Project :
Version :
Date : 6/23/2015
Author : tyery08
Company : embeeminded.blogspot.com
Comments:

Chip type
: ATmega16
Program type
: Application
AVR Core Clock frequency: 12.000000 MHz
Memory model
: Small
External RAM size
:0
Data Stack size
: 256
*****************************************************/
#include <mega16.h>
#include <lcd.h>
#include <stdio.h>
#include <delay.h>
#define push_ok PINC.0
#define push_up PINC.1
#define push_down PINC.2
#define push_back PINC.3
#define ditekan
0
#define tidak_ditekan 1
unsigned char loop_kondisi=0;
eeprom unsigned char tampilan=1;
char vtegangan[30]; char hex[30];
unsigned char a, reff=150;

// Alphanumeric LCD Module functions


#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
#include <delay.h>
#define ADC_VREF_TYPE 0x20
// Read the 8 most significant bits
// of the AD conversion result
unsigned char 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

17

ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
unsigned char loop_tampilan=0;
unsigned int ldr1,lm35,motor,motor1;
float tegang;
float tegang1;
float suhu;
float tegangmotor;
float tegangmotor1;
// Declare your global variables here
void serial()
{
while(1)
{
ldr1=read_adc(2);
tegang = ((float)ldr1*(0.01961));
lm35=read_adc(0);
tegang1 = ((float)lm35*(0.01961));
motor1=read_adc(1);
OCR0=motor1;
tegangmotor1 = ((float)motor1*(0.01961));
lcd_gotoxy(0,0);
sprintf(vtegangan,"Pot=%0.1f LDR=%0.1f",tegangmotor1,tegang); lcd_puts(vtegangan);delay_ms(200);
lcd_gotoxy(0,1);
sprintf(vtegangan,"LM35 = %0.2f ",tegang1); lcd_puts(vtegangan);delay_ms(200);
printf("#_%0.2f_%0.2f_%0.2f\r\n",tegangmotor1,tegang,tegang1);delay_ms(500);
}
}
void ldr()
{
while(1)
{
ldr1=read_adc(2);
tegang = ((float)ldr1*(0.01961));
lcd_gotoxy(0,0);
lcd_putsf("Pembacaan Sensor");
lcd_gotoxy(0,1); sprintf(vtegangan,"Nilai= %0.2f Volt",tegang); lcd_puts(vtegangan); delay_ms(200);
printf("#_0.00_%0.2f_0.00\r\n",tegang);
delay_ms(500);
}
}
void lm()
{
while(1)
{

18

lm35=read_adc(0);
tegang1 = ((float)lm35*(0.01961));
suhu = ((float)tegang1/320);
lcd_gotoxy(0,0);
lcd_putsf("Pembacaan Sensor");
lcd_gotoxy(0,1); sprintf(vtegangan,"Nilai= %0.2f Volt",tegang1); lcd_puts(vtegangan); delay_ms(200);
printf("#_0.00_0.00_%0.2f\r\n",tegang1);
delay_ms(500);
}
}
void motorka()
{
while(1)
{
motor=read_adc(1);
OCR0=motor;
tegangmotor = ((float)motor*(0.01961));
lcd_gotoxy(0,0); lcd_putsf("Motor CW");
lcd_gotoxy(0,1); sprintf(vtegangan,"Nilai= %0.2f Volt",tegangmotor); lcd_puts(vtegangan); delay_ms(200);
printf("#_%0.2f_0.00_0.00\r\n",tegangmotor);
delay_ms(500);
}
}
void motorki()
{
while(1)
{
motor1=read_adc(1);
OCR2=motor1;
tegangmotor1 = ((float)motor1*(0.01961));
lcd_gotoxy(0,0); lcd_putsf("Motor CCW");
lcd_gotoxy(0,1); sprintf(vtegangan,"Nilai= %0.2f Volt",tegangmotor1); lcd_puts(vtegangan); delay_ms(200);
printf("#_%0.2f_0.00_0.00\r\n",tegangmotor1);
delay_ms(500);
}
}

void menu()
{
menu_tampilan:
while(1)
{
lcd_clear();
lcd_gotoxy(0,0); lcd_putsf("Main Menu:");
if (push_ok==ditekan) while(push_ok==ditekan);
tampilan=1;
while(2)
{
if (push_ok==ditekan) while(push_ok==ditekan);
if(push_down==ditekan)

19

{
delay_ms(70);
if (push_down==ditekan) while(push_down==ditekan){}
if(++loop_tampilan>4) loop_tampilan=0;
}
if(push_up==ditekan)
{
delay_ms(70);
if (push_up==ditekan) while(push_up==ditekan){}
if(--loop_tampilan==255) loop_tampilan=4;
}
switch(loop_tampilan)
{
case 0: lcd_gotoxy(0,1); lcd_putsf("1.Motor CW "); break;
case 1: lcd_gotoxy(0,1); lcd_putsf("2.Motor CCW "); break;
case 2: lcd_gotoxy(0,1); lcd_putsf("3.Sensor LDR "); break;
case 3: lcd_gotoxy(0,1); lcd_putsf("4.Sensor LM35 "); break;
case 4: lcd_gotoxy(0,1); lcd_putsf("5.Read All "); break;
}
if(push_ok==ditekan)
{
delay_ms(100);
if (push_ok==ditekan)while(push_ok==ditekan);
delay_ms(100);
lcd_clear();
if(loop_tampilan==0)
{
motorka();
delay_ms(100);
lcd_clear();
}
if(loop_tampilan==1)
{
motorki();
delay_ms(100);
lcd_clear();
}
if(loop_tampilan==2)
{
ldr();
delay_ms(100);
lcd_clear();
}
if(loop_tampilan==3)
{
lm();
delay_ms(100);
lcd_clear();
}
if(loop_tampilan==4)

20

{
serial();
delay_ms(100);
lcd_clear();
}

}
}
}
}
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=0x08;
// 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
PORTC=0xff;
DDRC=0xf8;
// Port D initialization
// Func7=Out Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=0 State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0xff;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 10.800 kHz
// Mode: Fast PWM top=FFh
// OC0 output: Non-Inverted PWM
TCCR0=0x6D;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped

21

BAB IV
PENGUJIAN
Pengujian tombol menu up, down, ok

22

Pengujian Sensor, Driver motor, dan Serial


Motor CW

23

Motor CCW

24

Sensor LDR

Sensor LM35

25

Pembacaan semua sensor

26

27

BAB V
PENUTUP

Kesimpulan
IC mikrokontroler adalah IC yang serba guna.Namun dalam bekerja fungsinya
adalah spesifik. Dalam hal ini IC mengatur semua kerjanya dan dibantu dengan
perangkat I/O untuk menyesuaikan kerja yang di inginkan.

28

DAFTAR PUSTAKA

http://demonstrations.wolfram.com/SpringReturnButton/
http://www.creativecommons.org
http://www.thebuilderssupply.com/Push-buttons-and-much-more_b_14.html
http://www.wikipedia.com

29

Anda mungkin juga menyukai