CURRICULUM VITAE
Data Diri
Nama : AndrioSaktiSebayang
Tempat/Tanggal Lahir : Medan, 30 September 1991
AlamatSekarang :Jl. JaminGintingSpParang 2 Medan Alamat Orang Tua :Perbesi, Jl. Kota Cane
Agama : Kristen Protestan 2003 – 2006 : SMP Negeri 2Tigabinanga
2006 – 2009 : SMKPenerbanganMedan
2011 – Sekarang : S1 IlmuKomputerUniversitas Sumatera Utara, Medan
Keahlian
2010 : Praktik Kerja PT Garuda Maintenance Facility (GMF) 2014 : Praktik Kerja Lapangan di Kantor Gubernur Sumatra Utara
Seminar
LAMPIRAN A : LISTING PROGRAM MIKROKONTROLER
#include <mega8.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; }
unsigned int IR, RIGHT,FRONT,LEFT,i,s,t;
void Read_LSensor(void) //rutin baca sensor ping { PORTD.0 = 1; //
TCNT1=0; //reset counter
while (PIND.1 == 0){}; // wait for return pulse
TCCR1B=0x02; // start timer (timer period = 2uS)
while ((PIND.1 == 1) && !(TIFR & 0x80)); // timing the return pulse TCCR1B=0x00; // stop timer
LEFT = TCNT1/8; }
void Read_FSensor(void) //rutin baca sensor ping { PORTD.2 = 1; //
delay_us(35); // send start pulse PORTD.2 = 0; //
TCNT1=0; //reset counter
while (PIND.3 == 0){}; // wait for return pulse
TCCR1B=0x02; // start timer (timer period = 2uS)
while ((PIND.3 == 1) && !(TIFR & 0x80)); // timing the return pulse TCCR1B=0x00; // stop timer
FRONT = TCNT1/8; }
void Read_RSensor(void) //rutin baca sensor ping { PORTD.6 = 1; //
PORTD.6 = 0; //
TCNT1=0; //reset counter
while (PIND.7 == 0){}; // wait for return pulse
TCCR1B=0x02; // start timer (timer period = 2uS)
while ((PIND.7 == 1) && !(TIFR & 0x80)); // timing the return pulse TCCR1B=0x00; // stop timer
RIGHT = TCNT1/8; }
void maju(void) {for(i=0;i<s;i++){
PORTB.1 =1;PORTB.3 =1;delay_ms(15);PORTB.1 =0;PORTB.3 =0;delay_ms(10); }}
void mundur(void) {for(i=0;i<s;i++){
PORTB.0=1;PORTB.2 =1;delay_ms(15);PORTB.0 =0;PORTB.2 =0;delay_ms(10); }}
void kiri(void) {for(i=0;i<s;i++){
void kanan(void) {for(i=0;i<s;i++){
PORTB.1 =1;delay_ms(15);PORTB.1 =0;delay_ms(10); }}
void putar_kiri(void) {for(i=0;i<s;i++){
PORTB.0 =1;PORTB.3 =1;delay_ms(15);PORTB.0 =0;PORTB.3 =0;delay_ms(10); }}
void putar_kanan(void) {for(i=0;i<s;i++){
PORTB.1 =1;PORTB.2 =1;delay_ms(15);PORTB.1 =0;PORTB.2 =0;delay_ms(10); }}
void maju_lurus(void){ FRONT = 200;
while (FRONT > 160){ Read_RSensor();
if (RIGHT < 100){s = 10;kiri();s = 15;maju();}
if (RIGHT > 150){s = 10;kanan();s = 15;maju();} s = 3;maju();
t++;
} }
void maju_balik(void){ FRONT = 220;
while (FRONT > 200){ Read_RSensor();
if (RIGHT < 100){s = 10;kiri();s = 15;maju();}
if (RIGHT > 220){s = 10;kanan();s = 15;maju();} s = 3;maju();
t++;
if(t==2){ Read_FSensor();if(FRONT < 200){Read_FSensor();} t=0;} }
}
void main(void)
{
// Input/Output Ports initialization // Port B initialization
DDRB=0xFF;
// Port C initialization PORTC=0xFF; DDRC=0x00;
// Port D initialization PORTD=0xBA; DDRD=0x75;
// ADC initialization
// ADC Clock frequency: 691.200 kHz // ADC Voltage Reference: AREF pin ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x84;
delay_ms(1000);
while (1) {IR = 0;
x: while(IR < 800){IR = read_adc(5);delay_ms(10);} delay_ms(1500);
IR = read_adc(5); if(IR < 800)
{PORTD.4=0;PORTD.5=0;delay_ms(5000);PORTD.4=1;PORTD.5=1; goto x; }
delay_ms(500);
if(t==2){Read_FSensor();if(FRONT < 300){Read_FSensor();} t=0;} }
delay_ms(500); s = 39;putar_kanan(); delay_ms(500); s = 80;maju(); maju_balik();
delay_ms(500); s = 40;putar_kanan(); delay_ms(500); s = 40; mundur();
delay_ms(1000);
}