Judul : Pemograman LED ATmega 16 menggunakan bahasa C (Antarmuka LED dengan C AVR )
Tema : Pemograman LED ATmega 16 menggunakan bahasa C (Antarmuka LED dengan C AVR )
Pemograman LED ATmega 16 menggunakan bahasa C (Antarmuka LED dengan C AVR )
Pemograman LED ATmega 16 menggunakan bahasa C – pada artikel kali ini membahas tentang cara pemograman LED menggunakan ATmega mulai dari LED berkedip, Running LED dan Animasi LED variatif. Skefo, LED (Light emitting dioda) adalah piranti elektronika yang prinsipnya memancarkan cahaya. LED banyak digunakan karena efisiensinya yang tinggi alias Intensitas cahayanya yang tinggi namun konsumsi arus yang rendah dibandingkan dengan lampu pijar maupun lampu CFL (compact Flourescent lamp) . LED memiliki 2 elekroda yaitu anoda dan katoda. Prinsipnya sederhana, ketika LED diberi bias maju (anoda terhubung dengan VCC dan katoa terhubung ke Ground) maka LED akan menyala. Pada aplikasi mikrokontroller yang berbasis ATmega 16 LED digunakan sebagai media edukasi dengan visualisasi maupun penerapan pada alat uji.
AVR studio
Untuk aplikasi compiler digunakan aplikasi AVR studio. AVR studio dipilih karena lebih mudah dalam menulis listing program dan menyimpan project, didukung tools yang lengkap,Walaupun ukuran (size) dari avr studio lebih besar dari Codevision AVR. Dalam penulisannya AVR studio terdapat sedikit perbedaan, misal pada AVR studio untuk menggunakan delay maka penulisannya adalah “_delay_ms()” sedangkan Codevision AVR dituliskan “delay_ms()” saja. Namun perbedaan ini dapat dengan mudah disesuikan dengan cara penulisan Codevision avr
Skematik LED
Pada skema diatas menggunakan konfigurasi common anoda (anoda yang saling terhubung). Sehingga untuk menyalakan led harus diberi logika 0 atau negatif. Istilah lainnya LED tersebut adalah Aktif Low (aktif ketika diberi logika low). LED terhubung dengan PORTB atmega 16 namun dapat disesuikan pada project masing-masing
Skematik LED |
Program Led Berkedip
Listing programnya adalah seperti berikut :
#include <avr/io.h> // header standard AVR
#define F_CPU 12000000UL // set clock 12mhz
#include <util/delay.h> // delay
void main (void)
{
DDRB=0xff;// set portb = output
while (1) //perulangan terus menerus
{
PORTB=0x00; // LED nyala
_delay_ms(1000); // delay 1000ms (1 detik)
PORTB=0xff;
_delay_ms(1000); // LED mati
}
} // end program
FYI : tanda “//” adalah komentar program, artinya bukan bagian dari tubuh program hanya sebagai keterangan saja. Tdk ditulis maka tidak masalah
Program running led manual
Listing programnya adalah seperti ini :
#include <avr/io.h> // header standard AVR
#define F_CPU 12000000UL // set clock 12mhz
#include <util/delay.h> // delay
void main (void)
{
DDRB=0xff;// set portb = output
while (1)
{
PORTB=0xfe;
_delay_ms(1000);
PORTB=0xfd;
_delay_ms(1000);
PORTB=0xfb;
_delay_ms(1000);
PORTB=0xf7;
_delay_ms(1000);
PORTB=0xef;
_delay_ms(1000);
PORTB=0xdf;
_delay_ms(1000);
PORTB=0xbf;
_delay_ms(1000);
PORTB=0x7f;
_delay_ms(1000);
}
}// end program
Pada Program diatas LED dinyalakan satu persatu mulai dari LED 1 sampai LED 8 dan akan berulang terus menerus (while). Program diatas langsung mengisi semua port (PORTB). Namun bisa juga diisi pe PORT misal PORTB.0=0; untuk menyalakan LED 1, dan PORTB.1=0; untuk menyalakan LED 2 dan seterusnya. Cara seperti ini biasanya digunakan pada Codevision AVR.
Pemograman Running LED dengan variabel Array
Variabel Array adalah Variabel dengan satu nama namun memiliki banyak nilai di dalamnya. Fungsinya adalah menghemat dan memudahkan penulisan program. Misalnya :
Unsigned Char array[8]={a,b,c,d,e,f,g,h};
Pada contoh diatas terdapat variabel bernama array yang bertipe data unsigned char. Array tersebut berisi 8 nilai “[8]” yaitu a,b,c,d,e,f,g,h yang disimpan mulai dari array[0] sampai array[7]. Misalkan kita menggunakan array[0], maka nilainya adalah “a” dan seterusnya.
Listing programnya adalah seperti ini :
#include <avr/io.h> // header standard AVR
#define F_CPU 12000000UL // set clock 12mhz
#include <util/delay.h> // delay
unsigned char LED[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; // variabel array LED
void main (void)
{
DDRB=0xff;// set portb = output
char a=0; // membuat variabel a bernilai awal 0
while (1)
{
PORTB=LED[a]; // portb diisi nilai sesuai nilai variabel "a"
_delay_ms(1000); // delai 1 detik
a++; // variabel a bertambah 1 (a=a+1) alias increment
if a(>7)a=0 ; // jika nilai a lebih dari 7 maka a=0
}
}// end program
Program animasi LED
Setelah menguasai 3 program sebelumnya sekarang adalah tugas anda membuat program LED animasi sendiri, tujuannya adalah untuk mengembangkan dan mengasah logika program. Banyak mastah berkata, pemograman itu gampang, LOGIKANYA yang susah. Kalau bukan kita sendiri yang berlatih program, maka akibatnya akan terus menerus bergantung pada internet. Tetap semangat dalam mempelajari program, terima kasih.
Demikianlah Artikel Pemograman LED ATmega 16 menggunakan bahasa C (Antarmuka LED dengan C AVR )
materi teknik elektro tentang Pemograman LED ATmega 16 menggunakan bahasa C (Antarmuka LED dengan C AVR ), mudah-mudahan bisa memberi manfaat untuk anda semua. baiklah, sekian postingan kali ini.
0 Response to "Pemograman LED ATmega 16 menggunakan bahasa C (Antarmuka LED dengan C AVR )"
Posting Komentar