Minggu, 29 November 2015

SISTEM BUKA TUTUP PALANG PINTU KERETA API

RANCANG BANGUN SISTEM BUKA TUTUP PALANG PINTU KERETA API SECARA OTOMATIS BERBASIS GLOBAL POSITIONING SYSTEM (GPS) DAN WIRELESS RF MODULE
 
Gambaran Umum Sistem
 
 
Perancangan Dan Pembuatan Software

Program Parsing Data GPS
if (getchar()=='$' && getchar()=='G' && getchar()=='P' && getchar()=='R' && getchar()=='M' && getchar()=='C')
{ for(i=0;i<60;i++)
{ data[i]=getchar();}
putchar1('$');
for(i=0;i<60;i++)
{ putchar1(data[i]);}
}

Program Pengiriman Data GPS
putchar1('$');
for(i=0;i<60;i++)
{ putchar1(data[i]);}

Program Pengambilan Data GPS
if (getchar()=='$' )
{
for(i=0;i<43;i++)
{ data[i]=getchar();
if(i<16)
{ lcd_gotoxy(i,0);
lcd_putchar(data[i+14]) ; }
else
{ lcd_gotoxy(i-16,1);
lcd_putchar(data[i+14]) ; }
}

Program Penentuan Koordinat Lintang
lcd_clear();
numl=0;
for(i=14;i<=17;i++)
{
numl = ((data[i]-0x30)*pow(10,17- i))+ numl;
}
for(i=19;i<=22;i++)
{
numl = ((data[i]-0x30)*pow(10,18-i))+ numl;
}
numl/=100;
numl=(float)numl;
sprintf(buff, "Lntg: %4.6f", numl);
lcd_gotoxy(0,0); lcd_puts(buff);
lcd_gotoxy(15,0); lcd_putchar(data[24]);
 

Program Penentuan Koordinat Bujur
numb=0;
for(i=26;i<=30;i++)
{
numb = ((data[i]-0x30)*pow(10,30-i))+ numb;
}
for(i=32;i<=35;i++)
{
numb = ((data[i]-0x30)*pow(10,31-i))+ numb;
}
numb/=100;
numb=(float)numb;
sprintf(buff, "Bjr:%4.6f", numb);
lcd_gotoxy(0,1); lcd_puts(buff);
lcd_gotoxy(15,1); lcd_putchar(data[37]);

Program Penentuan Kecepatan GPS
delay_ms(500);
lcd_clear();
nums=0;
for(i=39;i<=39;i++)
{
nums = ((data[i]-0x30)*pow(10,39-i))+ nums;
}
for(i=41;i<=42;i++)
{
nums = ((data[i]-0x30)*pow(10,40-i))+ nums;
}
nums=(float)nums;
sprintf(buff, "Speed:%2.3f", nums);
lcd_gotoxy(0,0); lcd_puts(buff);
lcd_gotoxy(12,0); lcd_putsf("knot");
delay_ms(500);

Program Putar Balik Motor
void TUTUP(void)
{
PORTC.5 = 1; PORTC.3 = 1; PORTC.4= 0; PORTC.6 = 0;
{ if(PINB.0!=0)
PORTC.0=1;
else
{ PORTC.0=0;
delay_ms(1000); }
}
}

void BUKA(void)
{
PORTC.5 = 0; PORTC.3 = 0; PORTC.4= 0; PORTC.1 = 1;
{ if(PINB.1!=0)
PORTC.1 = 1;
else
{ PORTC.1 = 0;
delay_ms(1000); }
}
}