C : Membuat Lampu Berjalan Sederhana ATMEGA16 - Elang Sakti
Download Ebook Belajar Arduino PDF, Arduino untuk pemula
Jasa Pembuatan Program Arduino, pemrograman Arduino
# Hack Your Skills! to be Professional Mechatronics

C : Membuat Lampu Berjalan Sederhana ATMEGA16

1 komentar

Bismillah... Yak, ini adalah program pertama dan kedua saya untuk ATMega16, koding perdana :D Sebenernya koding yang kedua dan ketiga sih, sebab yang pertama cuman ngidupin led sebiji, kemudian dilanjut dengan negidupin semua led dan seterusnya dan seterusnya.

Program ini dibuat dengan WinAVR, sebenarnya rada bingung mau pake CodeVision atau WinAVR. Jadi untuk awal saya coba keduanya. Lalu keputusan ketemu setelah mulai koding buat nampilin karakter di LCD. Pada WinAVR, rada ribet kalo misal mau ngakses bit per bit, enakan di CodeVision. Jadi, selanjutnya-selanjutnya kayaknya bakal make CodeVision. :)

Nah, untuk program pertama di bawah ini, ini fungsinya ngidupin led pake switch. Jadi ketika salah satu tombol switch dipencet, maka led salah satu led akan menyala sesuai index (posisi) switch itu berada.

Pada umunya untuk pin pada mikro itu ada tiga bagian yang harus diperhatikan, DDRx, ini berfungsi untuk nentukan pin pada PORTx akan dijadikan input atau ouput. Kemudian PORTx, ini berfungsi sebagai input (setelah diinisialisasi ditentukan oleh DDRx). Kemdian PINx, ini berfungsi ketika pin sebagai inputan (setelah diinisialisasi oleh DDRx).

#include <avr/io.h>
#include <avr/delay.h>
#define LED PORTB
#define DDRLED DDRB
#define PORTSWITCH PORTC
#define DDRSWITCH DDRC
#define SWITCH PINC

int main(void){
 DDRLED = 0xFF;
 DDRSWITCH = 0x00;
 PORTSWITCH = 0xFF;
 
 int REF = 0xFF;
 while(1){
  LED = SWITCH;
 }
}


Sedangakan untuk program yang kedua ini, berfungi untuk membuat lampu berjalan (maksudnya bergerak). Eh, maksudnya, nyala lednya bergantian, jadi kalo diliat dari jauh lednya menyala bergantian dari mati, nyala sendirian, nyala berdua, dan seterusnya.

#include <avr/io.h>
#include <avr/delay.h>
#define LED PORTB
#define DDRLED DDRB
int main(void){
 DDRLED = 0xFF;

 int REF = 0xFF;
 while(1){
  LED = REF;
  _delay_ms(100);
  
  REF >>= 1;
  if(REF==0x00){
   LED = REF;
   _delay_ms(100);
   
   REF = 0xFF;
  }
 }
}

Script di atas masih ditulis menggunakan WinAVR. Untuk gambarnya ndak ada. Tulisan ini sebagai catetan saja, soalnya ketika artikel ini ditulis, mikro-nya sudah diisi dengan program lainnya. Jadi kalo mau liat gambarnya, coba saja sendiri. :v


Written by Hari Santoso
C : Membuat Lampu Berjalan Sederhana ATMEGA16
Bahasan: Bismillah... Yak, ini adalah program pertama dan kedua saya untuk ATMega16, koding perdana :D Sebenernya koding yang kedua dan ketiga sih...
Published at Senin, 31 Maret 2014, Updated at Senin, 31 Maret 2014
Reviewed by dr. on
Rating: 4.7

1 komentar :