EEPROM 기능을 이용해서 구현한 Door Lock 구현 동영상입니다.


선명하게 보이지는 않는데, FND Display 에 숫자가 바뀌어 출력되는 정도는 확인하실 수 있으실 거라고 생각합니다.


아쉽게도 폰에서 찍은 동영상이 왼쪽으로 회전되어서 저장이 되었네요;;;


물론 동영상 인코딩으로 다시 재회전시키는 방법도 있지만... 귀찮아서 ^^;;


다음에 기회가 되면 다시 올리도록 하겠습니다.





영상만 보면 상황이 잘 이해 안갈 수도 있어서 부가 설명을 덧 붙이자면,


1) #키를 눌러서 비밀번호를 설정

2) *키를 눌러서 비밀번호 입력-> 맞으면 7777 틀리면 4444


제일 처음 #키 누르고 1234 입력해 비밀번호 1234로 설정 (비밀번호 입력중에는

어떤 숫자인지 알지 못하게 1이 계속해서 뜹니다. 그리고 비밀 번호 설정 후엔 2222가 뜹니다.)


그 후 *키를 누릅니다. 그러면 3333이 뜹니다. 그리고 1234를 순서대로 누르면 맞다고 7777이 뜨고,

다른 숫자(4444)를 누르면 틀렸다고 4444가 뜹니다.


CPU 리셋 이후에 다시 * 키를 눌러서 1234를 눌러도 그대로 맞다고 7777을 띄우는 것을 보면,

EEPROM에 정확하게 비밀번호가 저장되었음을 확인할 수 있습니다.

#include <avr/io.h>

void my_delay(unsigned long x)		// 시간 딜레이 함수.
{
	while(--x);
}

// 포트 B 8개는 LED0~7까지,
// 포트 D 8개는 LED8~15까지 연결한 상태입니다.
int main(void){

	int i;
	unsigned char tmp;
	
	DDRB = 0xFF;
	DDRD = 0xFF;

	while(1){

		tmp=1;
		/* [포트 B] LED 윗 줄(LED0~LED7)에 대한 반복문 */
		for(i=0;i<8;i++)
		{	
			PORTB = tmp;
			tmp = tmp << 1;
			my_delay(500000);
		}
		PORTB = 0x00;		// LED7 끄기 위함.

		/* [포트 D] LED 아랫 줄(LED8~LED15)에 대한 반복문 */
		tmp=1;
		for(i=0;i<8;i++)
		{	
			PORTD = tmp;
			tmp = tmp << 1;
			my_delay(500000);
		}
		PORTD = 0x00;		// LED15 끄기 위함.
	}
	return 0;
}


위 소스 코드는 HBE-MCU-AllinOne 보드에 있는 LED 16개 (LED0~LED15) 를 순차적으로 켤 수 있도록 만든 코드입니다. 크게 어려운 부분이 없으므로 설명은 생략하겠습니다.



▲ LED 포트가 하나씩 불이 들어오는 모습


각 LED 포트 하나씩 불들어오는 거 다 찍었으면 더 예뻤을 텐데 시간이 없었네요 ㅎㅎㅎ;;;


p.s 궁금한 점 있으면 댓글이나 이메일 보내주시면 감사하겠습니다 ^^ :)

+ Recent posts