36
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 1

Laporan

Embed Size (px)

DESCRIPTION

lll

Citation preview

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 .3BAB IITeori Dasar ....................................................................................5BAB IIIPEMBUATAN SISTEM MINIMUMDAN PERANGKAT I/O.........12

BAB VPENGUJIANBAB VPENUTUPDAFTAR PUSTAKA

BAB IPENDAHULUAN

1.1Latar BelakangMikrokontroler 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 LingkupRuang lingkup yang akan penulis bahas meliputi sistem minimum yang menggunakan mikrokontroler ATMega16 dan komponen pendukungnya.

1.3 Maksud dan TujuanMaksud 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.4Metode PenelitianDalam penyusunan laporan ini digunakan metode penelitian, yaitu:a. Teori mikrokontroler dan komponen pendukungnyab. Tahapan pembuatan sistem minimumc. Memprogram serta mengintegrasikan mikrokontroler dengan seperangkat I / O

1.5Sistematika PenulisanSistematika penulisan Makalah Statistika deskriptif ini adalah sebagai berikut:BAB IPENDAHULUANDalam bab ini dijelaskan bagaimana mengenai latar belakang, ruang lingkup, maksud dan tujuan, metode penelitian, dan sistematika penulisan yang menyangkut dengan laporan.BAB II TEORI DASARDalam 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.

25

BAB IITEORI DASAR

2.1Sistem MinimumSistem 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. IC mikrokontroler ATMega16 TQFPb. 1 resistor 510 dan 1 resistor 10 Kc. 4pushbuttond. 4 elco 10 fe. 1 XTal 12 MHzf. 2 kapasitor keramik 22pFg. 1 LEDh. Regulator 5 Vi. 5 Header 2 X 5j. DC Jack Supply

2.2Perangkat I / OPerangkat 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. Resistorb. Potensioc. LCDd. Sensor suhu LM35e. Sensor cahaya LDRf. Push buttong. Motorh. Driver Motori. MAX 232

2.3Komponen dan Software yang Digunakan EagleSoftware 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 AVRPenggunaan 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 ATMega16Mikrokonktroler 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:

ResistorResistor adalah komponen elektronik dua kutub yang didesain untuk menahan arus listrik dengan memproduksi tegangan listrik di antara kedua kutubnya, nilai tegangan terhadap resistansi berbanding dengan arus yang mengalir, berdasarkan hukum Ohm:V = I . RI =

Push-ButtonPush-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 memperoleh efek piezoelektrik diantaranya kwarsa, garam Rochelle dan tourmaline. Bahan yang banyak digunakan adalah kristal kwarsa.

Kapasitor KeramikKapasitor 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 5VRegulator berfunsi untuk memfilter tegangan yang masuk tetap 5V walaupun tegangan masukan dari DC supply lebih dari 5V.

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

PotensioMengatur kecepatan dari motor dengan terlebih dahulu masuk ADC dari mikrokontroler

LCD karakter 2x16Menampilkan atau mencetak karakter yang ditentukan semisal menampilkan menu atau menampilkan hasil pembacaan sensor

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

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

Sensor cahaya LDRMendeteksi tingkat intensitas cahaya dengan merubahnya menjadi hambatan

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

BAB IIIPEMBUATAN SISTEM MINIMUMDAN PERANGKAT I/O

3.1 Desain minimum sistem serta perangkat i/oSkematik Rangkaian system At-Mega 16 beserta serial RS 232

Rangkain minimum system At-Mega 16 tersebut terdiri dari :1. Port Supply 2. Regulator 5v3. Port I/O4. Rangkaian clock5. Tombol reset6. Int 0,1,27. Port RTC8. Port RS232Rangkaian serial dengan RS232 ini terdiri dari1. Port DB92. Port menuju mikrokontrol3. Ic MAX232

Board Tampak Atas

Board Tampak Bawah

Komponen Tampak Atas

Komponen Tampak Bawah

Rangkaian Perangkat I/O

Rangkaian perangkat I/O terdiri dari :1. Pin Header 2x52. LCD karakter 2x163. Driver motor H-Bridge dengan transistor4. Push button5. Barled6. Dipswitch7. LM35 + Rangkaian pengkondisi sinyal8. Potensio9. LDR10. Board

Komponen Tampak Atas

3.2Program pada ICMemasukkan 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.3Integrasi Mikrokontrol dengan perangkat I/O melalui hardware dan softwareIntegrasi hardware antara mikrokontroler dan I/Oa. 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) 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 theCodeWizardAVR V2.05.3 StandardAutomatic Program Generator Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.http://www.hpinfotech.com

Project : Version : Date : 6/23/2015Author : tyery08Company : embeeminded.blogspot.comComments:

Chip type : ATmega16Program type : ApplicationAVR Core Clock frequency: 12.000000 MHzMemory model : SmallExternal RAM size : 0Data Stack size : 256*****************************************************/

#include #include #include #include

#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 #include #define ADC_VREF_TYPE 0x20

// Read the 8 most significant bits// of the AD conversion resultunsigned char read_adc(unsigned char adc_input){ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);// Delay needed for the stabilization of the ADC input voltagedelay_us(10);// Start the AD conversionADCSRA|=0x40;// Wait for the AD conversion to completewhile ((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 herevoid 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) { 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) { 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) { 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 PWMTCCR0=0x6D;TCNT0=0x00;OCR0=0x00;

// Timer/Counter 1 initialization// Clock source: System Clock// Clock value: Timer 1 Stopped// Mode: Normal top=FFFFh// OC1A output: Discon.// OC1B output: Discon.// Noise Canceler: Off// Input Capture on Falling Edge// Timer 1 Overflow Interrupt: Off// Input Capture Interrupt: Off// Compare A Match Interrupt: Off// Compare B Match Interrupt: OffTCCR1A=0x00;TCCR1B=0x00;TCNT1H=0x00;TCNT1L=0x00;ICR1H=0x00;ICR1L=0x00;OCR1AH=0x00;OCR1AL=0x00;OCR1BH=0x00;OCR1BL=0x00;

// Timer/Counter 2 initialization// Clock source: System Clock// Clock value: 10.800 kHz// Mode: Fast PWM top=FFh// OC2 output: Non-Inverted PWMASSR=0x00;TCCR2=0x6F;TCNT2=0x00;OCR2=0x00;

// External Interrupt(s) initialization// INT0: Off// INT1: Off// INT2: OffMCUCR=0x00;MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initializationTIMSK=0x00;

// USART initialization// Communication Parameters: 8 Data, 1 Stop, No Parity// USART Receiver: Off// USART Transmitter: On// USART Mode: Asynchronous// USART Baud Rate: 9600UCSRA=0x00;UCSRB=0x18;UCSRC=0x86;UBRRH=0x00;UBRRL=0x4D;

// Analog Comparator initialization// Analog Comparator: Off// Analog Comparator Input Capture by Timer/Counter 1: OffACSR=0x80;SFIOR=0x00;

// ADC initialization// ADC Clock frequency: 86.400 kHz// ADC Voltage Reference: AREF pin// ADC Auto Trigger Source: None// Only the 8 most significant bits of// the AD conversion result are usedADMUX=ADC_VREF_TYPE & 0xff;ADCSRA=0x87;

// LCD module initializationlcd_init(16);lcd_gotoxy(0,0); lcd_putsf("Doa Ibu.........");lcd_gotoxy(0,1); lcd_putsf("Sepanjang Jalan ");delay_ms(1000);

while (1) { // Place your code here delay_ms(300); lcd_clear(); delay_ms(50); menu();

};}

BAB IVPENGUJIANPengujian tombol menu up, down, ok

Pengujian Sensor, Driver motor, dan SerialMotor CW

Motor CCW

Sensor LDR

Sensor LM35

Pembacaan semua sensor

BAB VPENUTUP

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

DAFTAR PUSTAKA

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