Thursday, March 21, 2013

[Review] Mengaktifkan Motor dengan Keypad

         21 - 05 - 2013
         09 : 53 PM





         Halo, sudah lama sekali saya tidak menulis postingan baru di blog ini. Mungkin salah satu penyebabnya adalah karena personal computer atau yang biasa disebut PC saya sedang rusak (hiks2). Jadi tidak bisa main game online lagi, karena laptop yang saya punya tidak begitu bagus spesifikasinya untuk bermain game online. Hmm mungkin ini salah satu kebaikan juga untuk saya. Karena saya jadi bisa fokus untuk skripsi semester ini dan tidak bermain-main game online dahulu.
         Baiklah kalau begitu, kali ini saya ingin memposting sebuah postingan tentang elektronika lagi. Kali ini saya akan memposting seperti sebelumnya, yaitu sebuah analisa yang sedikit dari rangkaian Penulisan Ilmiah (PI) dari teman saya yang bernama Fadli yang saya sempat membantunya dalam pembuatan program alatnya. Baiklah, langsung saja saya share gambar rangkaiannya :



          Alat ini kalau tidak salah berjudul 'Mengaktifkan Motor dengan Keypad'. Jadi alat ini sebagai sebuah simulasi dari kendaraan bermotor yang mana untuk mengaktifkannya tidak hanya harus menyalakan kontaknya, tetapi juga harus memasukkan kode keypad yang sesuai dengan yang sudah di setting. Kurang lebih alat ini untuk menambah keamanan pada kendaraan. Alat ini memiliki Input yang berupa : Penekanan pada Keypad, Proses : Mikrokontroller ATMEGA8535, Output : Perputaran Motor DC dan Nyala Lampu LED. Lalu password yang sudah di set di rangkaian ini adalah '2313'. LED pada Port A ini berfungsi sebagai penanda bahwa tombol keypad yang ditekan sudah disimpan atau belum. Jadi ketika tombol 0-9 ditekan, maka LED pada Port A akan menyala sekitar 1 detik, kemudian LED akan mati lagi yang menandakan bahwa tombol yang ditekan pada keypad sudah disimpan, sehingga kita dapat memasukkan angka berikutnya pada keypad.
          Setelah itu LED pada Port C adalah sebagai indikator salah atau benarnya password. Apabila ketika di tekan tombol enter pada keypad dan ternyata password yang dimasukkan adalah benar, maka LED pada PortC.1 akan menyala sebentar lalu mati lagi. Tetapi ketika password yang dimasukkan salah, maka LED pada PortC.0 akan menyala terus. Di rangkaian ini LED pada PortC.0 kalau tidak salah di analogikan dengan alarm. Jadi jika password salah maka alarm akan terus berbunyi, sampai rangkaian ditekan tombol reset. Yah kurang lebih cara kerjanya seperti itu. Baiklah saya akan men-share programnya di akhir postingan. Terima kasih, semoga bermanfaat.

#include <mega8535.h>
#include <delay.h>
unsigned char dt,array[];
int i=0,nilai=0,password=2313;
void detek_key(void);
void simpan_pass(void);
void main (void)
{
PORTA=0x00;
DDRA=0xff;
PORTB=0xff;
DDRB=0xff;
PORTC=0x00;
DDRC=0xff;
PORTD=0xff;
DDRD=0xf0;
while(1)
{
detek_key();
delay_ms(50);
};
}
void simpan_pass(void){
if (i==1){nilai=array[i];}
if (i>=2 && i<=8)
{
nilai=(nilai*10)+array[i];
}}

void detek_key(void){
PORTD.4=0;
delay_ms(50);
dt=(~PIND & 0x0f);
switch (dt){
case 1 : i++;array[i]=1;simpan_pass();PORTA=0xff;delay_ms(100);PORTA=0x00;delay_ms(50);break;
case 2 : i++;array[i]=0;simpan_pass();PORTA=0xff;delay_ms(100);PORTA=0x00;delay_ms(50);break;
case 4 : i++;array[i]=0;simpan_pass();PORTA=0xff;delay_ms(100);PORTA=0x00;delay_ms(50);break;
case 8 : if (nilai==password){PORTB=0xfe;PORTC=0xfe;delay_ms(200);PORTC=0x00;}else {PORTC=0xfd;}delay_ms(100);PORTA=0x00;delay_ms(50);break;
};
PORTD.4=1;PORTD.5=0;
delay_ms(50);
dt=(~PIND & 0x0f);
switch (dt){
case 1 : i++;array[i]=2;simpan_pass();PORTA=0xff;delay_ms(100);PORTA=0x00;delay_ms(50);break;
case 2 : i++;array[i]=0;simpan_pass();PORTA=0xff;delay_ms(100);PORTA=0x00;delay_ms(50);break;
case 4 : i++;array[i]=0;simpan_pass();PORTA=0xff;delay_ms(100);PORTA=0x00;delay_ms(50);break;
case 8 : i++;array[i]=0;simpan_pass();PORTA=0xff;delay_ms(100);PORTA=0x00;delay_ms(50);break;
};
PORTD.5=1;PORTD.6=0;
delay_ms(50);
dt=(~PIND & 0x0f);
switch (dt){
case 1 : i++;array[i]=3;simpan_pass();PORTA=0xff;delay_ms(100);PORTA=0x00;delay_ms(50);break;
case 2 : i++;array[i]=0;simpan_pass();PORTA=0xff;delay_ms(100);PORTA=0x00;delay_ms(50);break;
case 4 : i++;array[i]=0;simpan_pass();PORTA=0xff;delay_ms(100);PORTA=0x00;delay_ms(50);break;
case 8 : i++;array[i]=0;simpan_pass();PORTA=0xff;delay_ms(100);PORTA=0x00;delay_ms(50);break;
};
PORTD.6=1;PORTD.7=0;
delay_ms(50);
dt=(~PIND & 0x0f);
switch (dt){
case 1 : i++;array[i]=0;simpan_pass();PORTA=0xff;delay_ms(100);PORTA=0x00;delay_ms(50);break;
case 2 : i++;array[i]=0;simpan_pass();PORTA=0xff;delay_ms(100);PORTA=0x00;delay_ms(50);break;
case 4 : i++;array[i]=0;simpan_pass();PORTA=0xff;delay_ms(100);PORTA=0x00;delay_ms(50);break;
case 8 : i++;array[i]=0;simpan_pass();PORTA=0xff;delay_ms(100);PORTA=0x00;delay_ms(50);break;
};
PORTD.7=1;
delay_ms(50);
}

1 comments:

Alan Kurniawan said...

program mega8535.h mana mas?

Post a Comment

 
Free Website TemplatesFreethemes4all.comFree CSS TemplatesFree Joomla TemplatesFree Blogger TemplatesFree Wordpress ThemesFree Wordpress Themes TemplatesFree CSS Templates dreamweaverSEO Design