스위치를 누르지 않을 때에는 ① 의 if 문에서 PINA에 키입력 신호도 없고 key_press도 ‘NO’ 이므로 ②에서 그냥 key값을 반환한다. key_press 변수의 역할은 key가 최근에 눌린적이 있는지를 표시하주는 flag 역할이다.
<중략>
#define F_CPU 16000000UL
#include <avr/io.h>
#include
#define YES 1
#define NO 0
디지털 도어락을 제작해보려 한다. 키패드, CLCD, 서보모터, 스위치 등을 이용하여 디지털 도어락의 기본적인 기능인 잠금, 개방, 패스워드 입력 및 변경 기능을 구현할 것이다. 그리고 각 기능의 동작과 원리에 대한 동작과 원리 해석에 대해 알아보도록 하겠다.
<중략>
(1) 키입력 및 디바운싱 기능
스위치 내부의 접점이 충격에 의하여 여러 번 진동한다. 때문에 이런 진동에 의하여 접점이 여러 번 붙었다가 떨어지게 되고 입력신호도 그만큼 중복되어 입력되게 된다. 이런 바운싱bouncing은 의도치 않은 키입력을 연속으로 야기시키기 때문에 하드웨어적이나 소프트웨어적으로 디바운싱debouncing을 처
AVR MCU를 이용하여 위와 같은 전자주사위를 구현하고 동작원리를 해석한다.
(중략)
본 전자 주사위의 키입력방식은 별다른 외부 스위치회로없이 MCU 내부의 Pull-up 저항을 이용한 입력 방식을 사용했다. 때문에 DDRx레지스터로 스위치입력핀을 입력모드로 바꿔주었다. 그리고 PORTx를 이용해 스위치
AVR MCU를 이용하였고 초음파 센서로 거리를 측정한다. 측정값은 TEXT LCD로 표시되고 2개의 스위치로 설정값을 조절할 수 있도록 설계한다. 그리고 각 기능의 동작과 원리해석에 대해 알아보도록 한다.
<중략>
(3) 외부 인터럽트를 이용한 스위치입력
초음파 신장 측정기에는 default_position 설정값을 +