Wednesday, April 2, 2014

PROJEK MICROCONTROLLER 1 : PENGAWALAN NYALAAN LAMPU LED

Projek ini menerangkan perkara paling asas dalam usaha kita untuk mempelajari bidang ini.

Dengan menggunakan microcontroller, pattern nyalaan lampu LED boleh di kawal secara automatik sepenuhnya mengikut kehendak cita rasa pengguna.

SOURCE CODE : KAEDAH 1

------------------------------------------------------------------------------------------------------------

#include <18F4620.h>                
#fuses HS,NOWDT,NOLVP,NOPROTECT    
#use delay (clock=20M)              

#define LED1_ANODE      PIN_C0               // LED 1 COMMON ANODE
#define LED2_ANODE      PIN_C1               // LED 2 COMMON ANODE
#define LED3_ANODE      PIN_C2               // LED 3 COMMON ANODE
#define LED4_ANODE      PIN_C3               // LED 4 COMMON ANODE
#define LED5_ANODE      PIN_C4               // LED 5 COMMON ANODE
#define LED6_ANODE      PIN_C5               // LED 6 COMMON ANODE
#define LED7_ANODE      PIN_C6               // LED 7 COMMON ANODE
#define LED8_ANODE      PIN_C7               // LED 8 COMMON ANODE


#define LED1_CATHODE      PIN_D0               // LED 1 COMMON CATHODE
#define LED2_CATHODE      PIN_D1               // LED 2 COMMON CATHODE
#define LED3_CATHODE      PIN_D2               // LED 3 COMMON CATHODE
#define LED4_CATHODE      PIN_D3               // LED 4 COMMON CATHODE
#define LED5_CATHODE      PIN_D4               // LED 5 COMMON CATHODE
#define LED6_CATHODE      PIN_D5               // LED 6 COMMON CATHODE
#define LED7_CATHODE      PIN_D6               // LED 7 COMMON CATHODE
#define LED8_CATHODE      PIN_D7               // LED 8 COMMON CATHODE


#define BUTTON1        PIN_B0               // PRESET BUTTON 1  
#define BUTTON2        PIN_B1               // PRESET BUTTON 2
#define BUTTON3        PIN_B2               // PRESET BUTTON 3
#define BUTTON4        PIN_B3               // PRESET BUTTON 4

void main()
{

set_tris_b(0xFF);                // SET ALL PORT B AS INPUT PORT
set_tris_c(0x00);                // SET ALL PORT C AS OUTPUT PORT
set_tris_d(0x00);                // SET ALL PORT D AS OUTPUT PORT

output_b(0xFF);                  // RESET PORT B
output_c(0xFF);                  // RESET PORT C
output_d(0x00);                  // RESET PORT D


while(TRUE)                      // always repeat program

{
output_high(LED1_ANODE);
output_high(LED2_ANODE);
output_high(LED3_ANODE);
output_high(LED4_ANODE);
output_high(LED5_ANODE);
output_high(LED6_ANODE);
output_high(LED7_ANODE);
output_high(LED8_ANODE);

output_low(LED1_CATHODE);
output_low(LED2_CATHODE);
output_low(LED3_CATHODE);
output_low(LED4_CATHODE);
output_low(LED5_CATHODE);
output_low(LED6_CATHODE);
output_low(LED7_CATHODE);
output_low(LED8_CATHODE);

delay_ms(500);       // wait for 500m seconds

output_low(LED1_ANODE);
output_low(LED2_ANODE);
output_low(LED3_ANODE);
output_low(LED4_ANODE);
output_low(LED5_ANODE);
output_low(LED6_ANODE);
output_low(LED7_ANODE);
output_low(LED8_ANODE);

output_high(LED1_CATHODE);
output_high(LED2_CATHODE);
output_high(LED3_CATHODE);
output_high(LED4_CATHODE);
output_high(LED5_CATHODE);
output_high(LED6_CATHODE);
output_high(LED7_CATHODE);
output_high(LED8_CATHODE);

delay_ms(500);       // wait for 500m seconds

}
}

------------------------------------------------------------------------------------------------------------


SOURCE CODE : KAEDAH 2

----------------------------------------------------------------------------------------------------------------------------------

#include <18F4620.h>              
#fuses HS,NOWDT,NOLVP,NOPROTECT    
#use delay (clock=20M)              

#define LED1_ANODE      PIN_C0               // LED 1 COMMON ANODE
#define LED2_ANODE      PIN_C1               // LED 2 COMMON ANODE
#define LED3_ANODE      PIN_C2               // LED 3 COMMON ANODE
#define LED4_ANODE      PIN_C3               // LED 4 COMMON ANODE
#define LED5_ANODE      PIN_C4               // LED 5 COMMON ANODE
#define LED6_ANODE      PIN_C5               // LED 6 COMMON ANODE
#define LED7_ANODE      PIN_C6               // LED 7 COMMON ANODE
#define LED8_ANODE      PIN_C7               // LED 8 COMMON ANODE


#define LED1_CATHODE      PIN_D0               // LED 1 COMMON CATHODE
#define LED2_CATHODE      PIN_D1               // LED 2 COMMON CATHODE
#define LED3_CATHODE      PIN_D2               // LED 3 COMMON CATHODE
#define LED4_CATHODE      PIN_D3               // LED 4 COMMON CATHODE
#define LED5_CATHODE      PIN_D4               // LED 5 COMMON CATHODE
#define LED6_CATHODE      PIN_D5               // LED 6 COMMON CATHODE
#define LED7_CATHODE      PIN_D6               // LED 7 COMMON CATHODE
#define LED8_CATHODE      PIN_D7               // LED 8 COMMON CATHODE


#define BUTTON1        PIN_B0               // PRESET BUTTON 1  
#define BUTTON2        PIN_B1               // PRESET BUTTON 2
#define BUTTON3        PIN_B2               // PRESET BUTTON 3
#define BUTTON4        PIN_B3               // PRESET BUTTON 4


void main()
{

set_tris_b(0xFF);                // SET ALL PORT B AS INPUT PORT
set_tris_c(0x00);                // SET ALL PORT C AS OUTPUT PORT
set_tris_d(0x00);                // SET ALL PORT D AS OUTPUT PORT

output_b(0xFF);                  // RESET PORT B
output_c(0xFF);                  // RESET PORT C
output_d(0x00);                  // RESET PORT D


while(TRUE)                      // always repeat program

{

output_c(0xFF);      // all led at port c OFF
output_d(0x00);      // all led at port d OFF
delay_ms(500);       // wait for 500m seconds

output_c(0x00);      // all led at port c ON
output_d(0xFF);      // all led at port d ON
delay_ms(500);       // wait for 500m seconds

}

}

------------------------------------------------------------------------------------------------------------


LITAR SIMULASI





Monday, March 31, 2014

PENGENALAN KEPADA PIC18F4620

Microcontroller ini adalah keluaran daripada Microchip Technology..
Model ini adalah tergolong dari keluarga microcontroller 8 bit..


Secara umumnya, microcontroller ini dapat melakukan perkara-perkara asas di dalam bidang kawalan. Ianya mempunyai kapasiti untuk menyokong aplikasi asas seperti yang tertera di bawah:

1) Keluaran digital
2) Keluaran analog (PWM)
3) Penerimaan digital
4) Penerimaan analog

Selain itu, microcontroller ini di juga di lengkapi dengan kemampuan untuk aplikasi yang lain.


Jika merujuk kepada paparan pin diagram PIC18F4620, pin yang berlabel RA, RB, RC, RD dan RE mempunyai kapasiti untuk melakukan tugasan sebagai keluaran digital mahupun penerimaan digital. Tetapi, adalah harus di ingat bahawa, di dalam satu-satu masa, pin ini hanya boleh berfungsi sebagai satu tujuan sahaja. Sama ada untuk di jadikan keluaran digital ATAU penerimaan digital.

Manakala, untuk keluaran analog, ianya dapat di manipulasikan dengan menggunakan teknik "Pulse Width Modulation" atau dengan kata singkatnya PWM. PWM ini dalah beroperasi pada kemampuan 8 bit.

Untuk penerimaan analog pula, pin yang berlabel dengan AN adalah di khususkan untuk aplikasi ini. Untuk analog input, ianya adalah beroperasi pada kemampuan 10 bit.

Secara kesimpulanya, pin yang terdapat pada PIC18F4620 adalah seperti berikut:

Keluaran / Penerimaan Digital:

1) RA0, RA1, RA2, RA3, RA4 dan RA5
2) RB0, RB1, RB2, RB3, RB4, RB5, RB6 dan RB7 
3) RC0, RC1, RC2, RC3, RC4, RC5, RC6 dan RC7
4) RD0, RD1, RD2, RD3, RD4, RD5, RD6 dan RD7
5) RE0, RE1 dan RE2

Keluaran Analog (PWM):

1) CCP1
2) CCP2

Penerimaan Analog:

1) AN0, AN1, AN2, AN3, AN4, AN5, AN6, AN7, AN8, AN9, AN10, AN11 dan AN12


Rajah di bawah merupakan penerangan yang boleh di dapati daripada datasheet PIC18F4620





Tuesday, November 26, 2013

LITAR PENGATUR KELUARAN VOLTAN


Tujuan utama adalah untuk memastikan voltan keluaran yang di hasilkan adalah stabil dan berada di dalam julat yang telah di tetapkan. Ada pelbagai jenis IC pengatur voltan di pasaran. Antaranya adalah seperti berikut:

1) LM7805 => Keluaran voltan 5VDC (1Amp)
2) LM7806 => Keluaran voltan 6VDC (1Amp)
3) LM7808 => Keluaran voltan 8VDC (1Amp)
4) LM7809 => Keluaran voltan 9VDC (1Amp)
5) LD1117 => Keluaran voltan 3.3VDC (800mA)

Sebagai contoh, PIC microcontroller memerlukan bekalan kuasa dengan nilai voltan sebanyak 5VDC. Jika anda mempunyai bateri dengan nilai voltan sebanyak 12VDC atau 9VDC, masalah ini dapat di selesaikan dengan menggunakan IC LM7805 di mana walaupun input 12VDC atau 9VDC di berikan kepada IC ini, keluaran dari IC ini akan memberikan nilai keluaran 5VDC yang stabil dan berupaya beroperasi sehingga nilai arus sebanyak 1 Amp...

Gambaran pin LM7805




Litar pengatur keluaran voltan 5VDC





Wednesday, November 20, 2013

SELAMAT DATANG KE BLOG LEDANG EMBEDDED SYSTEM...

Assalamualaikum wbt,

Blog ini di harap agar dapat menjadi platform untuk sesiapa sahaja yang ingin belajar perkara-perkara ASAS di dalam bidang microcontroller dan juga PLC...

Di harapakan ianya dapat membantu tidak kira para pelajar yang sedang belajar di jurusan elektrik dan elektronik, mahupun sesiapa sahaja yang berminat untuk memdalami bidang ini...

Semoga semua ilmu yang di kongsikan dapat memberikan manfaat kepada semua..

InsyaALLAH..

Wassalam..

Team Manager,

Ledang Embedded System Enterprise