#AVR #ATmega 128 #ATmega128 #LED #ATmel Studio 7 #신호등 #아두이노 #전자전기


ATmega128로 신호등 만들기!


ATmega128이 무엇인지는 현대 인터넷 사회에서 다른 곳에서 엄청 자세히 나와있으므로 일단 실습으로 바로 넘어가겠습니다.


저도 처음입니다!


무작정 따라하기 입니다!


1) 배선한다

2) 프로그래밍 짠다

3) ATmega에 넣어준다!




빨간기판이 ATmega128입니다.

아래쪽 왼쪽에서 두번째가 GND(그라운드)이므로 -선을 연결하여 주시고, 바로 다음부터 있는 PA0번과 1번을 각각 빨간불, 초록불에 대응시켰습니다.


즉, 0번(혹은 1번)이 신호에 따라 +신호를 주고, 이것이 LED로 가서 불을 켜고, GND인 -로 들어오는 회로입니다.


사진에서는 LED가 너무 밝아 각 1K ohm의 저항을 달아주었습니다.


영상에서는 그냥 다이렉트로 꽂혀있는데, 영상쪽이 훨씬 직관적입니다.



아래는 소스코드 입니다.


#include <avr/io.h>


void delay_sec(int sec){

volatile int i, j, k;

for(k=0;k<sec;k++){

for (i=0;i<1000;i++){

for(j=0;j<1000;j++);

}

}

}


int main(void)

{

DDRA = 0b00000011;

while(1){

delay_sec(1);

PORTA = 0b00000000;

PORTA = 0b00000001;

delay_sec(1);

PORTA = 0b00000000;

PORTA = 0b00000010;

}

}


위에서 delay_sec함수는 ATmega128이 초당 16MHz의 처리 속도를 가지고 있는 것을 바탕으로 대략 근사한 값입니다.

정확히 1초는 아니고 1초보다 약간 더 오래 걸립니다.


정확한 1초는 나중에 또 포스팅하겠습니다.


그럼 다음에 또봐요!


+ Recent posts