Pada aplikasi ini saya mempergunakan atmega8535 sebagai mikrokontroller utama atau main controller nya ,, rangkaiannya cukup simple dengan mempergunakan 9 buah led sebagai prototype. Dan led tersebut akan menyala dengan active low ( jika diberi logika 0).
Timernya masih menggunakan sistem delay (waktu tunggu) dan untuk waktunya bisa dimodifikasi sesuai dengan keinginan dengan mengubah nilai _delay_ms(“waktutunggu”);.
Berikut komponen yang dibutuhkan :
- 1 ic microcontroller atmega8535
- 1 crystal 11.0592 MHz
- 2 Capasitor 22nF
- 1 Push button (sbg tombol reset)
- 1 Resistor 10K
- 1 Capasitor 10uF
- 9 Resistor 330 Ohm
- 3 Led warna merah
- 3 Led warna kuning
- 3 Led warna hijau
- Catu daya (adaptor 5v)
Gambar rangkaian simulasi di ISIS Proteus adalah :
Dan ini program bahasa C dengan AVR studio4 :
/*
* Created: 08/05/2013 18:22:25
* Author: Ramada_Arief
* Program Traffic_light_1
*/
#define F_CPU 11059200UL
#include <avr/io.h>
#include <util/delay.h>
void delay_ms(int ms)
{
for(int i=0; i<=ms; i++) {_delay_ms(1);}; //fungsi delay manipulasi
}
int main(void)
{
PORTB=0xFF; //port output
DDRB=0xFF; //port_b disetting sebagai output
PORTC=0xFF;
DDRC=0xFF;
PORTD=0xFF;
DDRD=0xFF;
while(1)
{
PORTB=(1<<PB0)|(1<<PB1)|(1<<PB2)|(0<<PB3)|(1<<PB4)|(1<<PB5)|(1<<PB6)|(0<<PB7);
_delay_ms(50);
PORTC=(1<<PC0)|(1<<PC1)|(1<<PC2)|(1<<PC3)|(1<<PC4)|(1<<PC5)|(1<<PC6)|(1<<PC7);
_delay_ms(50);
PORTD=(0<<PD0)|(1<<PD1)|(1<<PD2)|(1<<PD3)|(1<<PD4)|(1<<PD5)|(1<<PD6)|(1<<PD7);
_delay_ms(70000); //bisa dimodifikasi
PORTB=(1<<PB0)|(1<<PB1)|(1<<PB2)|(0<<PB3)|(1<<PB4)|(1<<PB5)|(1<<PB6)|(0<<PB7);
_delay_ms(50);
PORTC=(0<<PC0)|(1<<PC1)|(1<<PC2)|(0<<PC3)|(1<<PC4)|(1<<PC5)|(1<<PC6)|(1<<PC7);
_delay_ms(50);
PORTD=(1<<PD0)|(1<<PD1)|(1<<PD2)|(1<<PD3)|(1<<PD4)|(1<<PD5)|(1<<PD6)|(1<<PD7);
_delay_ms(2000);
PORTB=(0<<PB0)|(1<<PB1)|(1<<PB2)|(1<<PB3)|(1<<PB4)|(1<<PB5)|(1<<PB6)|(0<<PB7);
_delay_ms(50);
PORTC=(1<<PC0)|(1<<PC1)|(1<<PC2)|(1<<PC3)|(1<<PC4)|(1<<PC5)|(1<<PC6)|(1<<PC7);
_delay_ms(50);
PORTD=(1<<PD0)|(1<<PD1)|(1<<PD2)|(0<<PD3)|(1<<PD4)|(1<<PD5)|(1<<PD6)|(1<<PD7);
_delay_ms(40000); //bisa dimodifikasi
PORTB=(0<<PB0)|(1<<PB1)|(1<<PB2)|(1<<PB3)|(1<<PB4)|(1<<PB5)|(1<<PB6)|(0<<PB7);
_delay_ms(50);
PORTC=(1<<PC0)|(1<<PC1)|(1<<PC2)|(0<<PC3)|(1<<PC4)|(1<<PC5)|(1<<PC6)|(0<<PC7);
_delay_ms(50);
PORTD=(1<<PD0)|(1<<PD1)|(1<<PD2)|(1<<PD3)|(1<<PD4)|(1<<PD5)|(1<<PD6)|(1<<PD7);
_delay_ms(2000);
PORTB=(0<<PB0)|(1<<PB1)|(1<<PB2)|(0<<PB3)|(1<<PB4)|(1<<PB5)|(1<<PB6)|(1<<PB7);
_delay_ms(50);
PORTC=(1<<PC0)|(1<<PC1)|(1<<PC2)|(1<<PC3)|(1<<PC4)|(1<<PC5)|(1<<PC6)|(1<<PC7);
_delay_ms(50);
PORTD=(1<<PD0)|(1<<PD1)|(1<<PD2)|(1<<PD3)|(1<<PD4)|(1<<PD5)|(1<<PD6)|(0<<PD7);
_delay_ms(55000); //bisa dimodifikasi
PORTB=(0<<PB0)|(1<<PB1)|(1<<PB2)|(0<<PB3)|(1<<PB4)|(1<<PB5)|(1<<PB6)|(1<<PB7);
_delay_ms(50);
PORTC=(0<<PC0)|(1<<PC1)|(1<<PC2)|(1<<PC3)|(1<<PC4)|(1<<PC5)|(1<<PC6)|(0<<PC7);
_delay_ms(50);
PORTD=(1<<PD0)|(1<<PD1)|(1<<PD2)|(1<<PD3)|(1<<PD4)|(1<<PD5)|(1<<PD6)|(1<<PD7);
_delay_ms(2000);
};
return(0);
}
Video tutorialnya akan saya post pada blog selanjutnya. So ditunggu ya sobat.
Semoga bermanfaat ..