본문 바로가기
Embedded System/AVR

[AVR] 스위치 (Switch)

by goatlab 2022. 6. 23.
728x90
반응형
SMALL

스위치 (Switch)

 

전기 회로를 끊거나 잇는 기구를 말한다.

 

Tactile Switch

Tactile 스위치
리셋, 인터럽트 등

Slide 스위치
전원 on/off, 모드 선택 등

Dip 스위치
다수의 모드 선택, 초기값 제공 등

Rocker 스위치
전원 on/off 등

 

JKIT-128-1에서 스위치 연결

 

스위치는 공간의 제약으로 최소한의 개수인 2개만 배정하고동일한 입출력 포트에 할당

스위치는 인터럽트 시험용으로도 사용 가능하여야 하므로 ATmega128의 외부인터럽트 (External Interrupt)를 사용할 수 있는 입출력 포트 PE (PE4, PE5)에 할당

스위치는 tactile 스위치를 사용하고, 크기가 작고 가격이 저렴한 것으로 하며, 스위치가 눌려지지 않았을 때는 ‘1’, 눌려졌을 때는 ‘0’이 되도록 설계

실습용이므로 스위치 bouncing 현상을 방지하기 위한 대비 회로는 크게 고려하지 않음

 

Switch Bouncing

 

 기계 스위치의 경우, 원하는 곳에 최종 접속되기 이전에 짧게 여러 번 연결되었다 끊어졌다를 반복하는 현상

Chattering이라고 하며, 수 ms 이내에 사라짐

 

Switch Switch Debouncing

 

 Bouncing 현상을 막아주는 회로 또는 방법

 Debouncing 처리 방법
1. RS 플립플롭을 사용하는 방법
2. 스위치에 컨덴서를 달아주는 방법
3. 슈미트트리거 NAND 회로를 2개 연속 달아주는 방법
4. 소프트웨어로 처리하는 방법

 

스위치로 LED 제어

 

#include <avr/io.h>

int main(void)
{
	DDRA = 0xff;
	DDRE = 0x00;
	while (1){
    	if ((PINE & 0x10) == 0x00) // SW1 = PE bit4
			PORTA = 0xff; // LED = ‘ON’

		else
			PORTA = 0x00; // LED = ‘OFF’
	}
}
728x90
반응형
LIST

'Embedded System > AVR' 카테고리의 다른 글

[AVR] USART 통신  (0) 2022.07.15
[AVR] 타이머 세팅  (0) 2022.07.08
[AVR] 부저 (Buzzer)  (0) 2022.06.14
[AVR] FND (Flexible Numeric Device)  (0) 2022.06.14
[AVR] 타이머 오버플로우 인터럽트  (0) 2022.06.10