Membuat Running LED Berbasis Mikrokontroler ATMEGA16

Di jejakku sebelumnya sudah pernah membuat running led atau led berjalan Berbasis PLC dengan menggunakan program ladder CX-Programmer dan Zelio Soft. Pada jejak kali ini akan mencoba membuat running led berbasis mikrokontroler yang memiliki dua moda running led.

 

Membuat Running LED tanpa Tombol

List Program :

#include <mega16.h>
#include <delay.h>

#define LED1 PORTA.3
#define LED2 PORTA.4
#define LED3 PORTC.1
#define LED4 PORTC.0

void main(void)
{
DDRA=0xFF;
PORTA=0x18;

DDRC=0xFF;
PORTC=0x03;

while (1)
{
LED1=0;
LED2=1;
LED3=1;
LED4=1;
delay_ms(500);

LED1=1;
LED2=0;
LED3=1;
LED4=1;
delay_ms(500); 

LED1=1;
LED2=1;
LED3=0;
LED4=1;
delay_ms(500);

LED1=1;
LED2=1;
LED3=1;
LED4=0;
delay_ms(500);

}
}

 

Membuat Running LED dengan Tombol

List Program :

#include <mega16.h>
#include <delay.h>

int i=0;

#define LED1 PORTA.3
#define LED2 PORTA.4
#define LED3 PORTC.1
#define LED4 PORTC.0

#define START PIND.6

void main(void)
{
DDRA=0xFF;
PORTA=0x18;

DDRC=0xFF;
PORTC=0x03;

DDRD=0x00;
PORTD=0x40;

while (i<1)
{ 
if (START==0) {
while (i<1) {
LED1=0;
LED2=1;
LED3=1;
LED4=1;
delay_ms(500);

LED1=1;
LED2=0;
LED3=1;
LED4=1;
delay_ms(500); 

LED1=1;
LED2=1;
LED3=0;
LED4=1;
delay_ms(500);

LED1=1;
LED2=1;
LED3=1;
LED4=0;
delay_ms(500); 
}
}

else
{ 
LED1=1;
LED2=1;
LED3=1;
LED4=1;
}
} 
}

 

Membuat Running LED dengan Moda yang Berbeda

Moda 1 dirancang agar ketiga led menyala bergantian atau setelah led 1 menyala lalu padam, kemudian led 2 menyala lalu padam, kemudian led 3 menyala lalu padam, dan kemudian kembali ke led 1.

Moda 2 dirancang agar ketiga led menyala berurutan atau setelah led 1 menyala, kemudian led 2 menyala, kemudian led 3 menyala, dan kemudian kembali ke led 1.

Berikut ini bentuk flowchart program dari running led yang akan dibuat.

Rangkaian pengendali Running LED yang akan dibuat sebagai berikut:

Atau rangkaian pengawatannya seperti pada gambar di bawah ini.

Kemuadian dibuatlah program Pengendali sesuai diagram alir di atas, untuk jejak ini menggunakan Bahasa C dengan menggunakan bantuan perangkat lunak CodeVision AVR seperti daftar program di bawah.

List Program :

#include <mega16.h>
#include <delay.h>

int i=0;

#define MODA1   PINA.0
#define MODA2   PINA.1
#define STOP    PINA.2
#define LEDM1   PORTC.0
#define LEDM2   PORTC.1
#define LED1    PORTD.0
#define LED2    PORTD.1
#define LED3    PORTD.2

#define ON  0
#define OFF 1

void main(void)
{
DDRA=0x00;
PORTA=0x07;
DDRC=0x03;
PORTC=0x03;
DDRD=0x07;
PORTD=0x07;

while (1)
{
if (MODA1 == 0)
{
LEDM1 = ON;
LEDM2 = OFF;

while (i<1)
{
LED1 = ON;
LED2 = OFF;
LED3 = OFF;
delay_ms(1000);

if (STOP == 0){break;}
LED1 = OFF;
LED2 = ON;
LED3 = OFF;
delay_ms(1000);

if (STOP == 0){break;}
LED1 = OFF;
LED2 = OFF;
LED3 = ON;
delay_ms(1000);

if (STOP == 0){break;}
}
}

if (MODA2 == 0)
{
LEDM1 = OFF;
LEDM2 = ON;

while (i<1)
{
LED1 = ON;
LED2 = OFF;
LED3 = OFF;
delay_ms(1000);

if (STOP == 0){break;}
LED1 = ON;
LED2 = ON;
LED3 = OFF;
delay_ms(1000);

if (STOP == 0){break;}
LED1 = ON;
LED2 = ON;
LED3 = ON;
delay_ms(1000);

if (STOP == 0){break;}
LED1 = OFF;
LED2 = OFF;
LED3 = OFF;
delay_ms(100);
}
}
}
}

Setelah program dibuat di aplikasi CodeVision AVR kemudian masukan file program format EXE ke komponen ATMEGA seperti gambar di bawah.

Masukan link file format EXE bagian Program File. Pilih CKSEL Fuses : (0000) Ext Clock dan Clock Frekuensi sesuai besar Kristal yang digunakan pada jejak ini sebesar 12MHz. Terakhir klik OK.

Hasilnya bisa dilihat dapat video simulasi di bawah ini.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *