안녕하세요.
이번 포스팅에서는 택트 스위치에 대해 알아보고 택트 스위치를 통해 스위치를 켜도 끄는 방식을 알아보겠습니다.
개요~
택트 스위치(Tactile switch)는 일반적으로 전자 프로젝트에서 많이 사용되는 소형의 푸시 버튼 스위치입니다. 주로 사용자가 스위치를 누르면 회로가 연결되고, 손을 떼면 회로가 끊어지는 형태로 작동합니다. 아두이노 프로젝트에서 LED를 켜고 끄는 데 자주 사용됩니다. 택트 스위치의 구조와 동작 원리, 그리고 아두이노와의 연결 방법에 대해 자세히 설명드리겠습니다.
※1. 택트 스위치의 구조와 동작 원리
- 구조:
- 핀: 택트 스위치는 일반적으로 4개의 핀이 있습니다. 이 중 두 핀은 내부적으로 연결되어 있으며, 다른 두 핀도 마찬가지로 연결되어 있습니다.
- 내부 메커니즘: 스위치를 누르면 내부의 접점이 연결되어 전류가 흐르게 됩니다. 스위치를 놓으면 접점이 다시 분리되어 전류 흐름이 중단됩니다.
- 동작 원리:
- 누를 때: 스위치를 누르면 회로가 닫히고 전기가 흐르게 되어 LED와 같은 장치가 활성화됩니다.
- 놓을 때: 스위치를 놓으면 회로가 열리고 전기 흐름이 멈추어 장치가 비활성화됩니다.
2핀 스위치의 경우는 상관이 없겠지만 위와 같은 4핀(4개의 다리)를 가진 스위치라고한다면, 대각선(1&4 또는 2&3)을 In/Out으로 사용하거나 해당 사진의 기준 세로열(1&3 또는 2&4)끼리 In/Out을 사용해야 합니다. 만약 가로열(1&2 또는 3&4)을 사용한다면 항상 신호가(전류)흐르는 상태가 되기에 스위치 작용을 못합니다.
또한 스위치를 사용하기 위해서는 풀 업 / 풀 다운의 기능을 사용해야 합니다.(필수) 이에 대해서는 아래 링크를 참조해주세요.
https://semicircuit.tistory.com/83
※2. Wiring (배선 연결)
저항의 크기는 풀 업/다운에 사용하는 저항 1000ohm(충분하게 큰 크기의 저항 ~=1000ohm이상), LED에 사용하는 저항 330ohm(100~1000ohm 추천) 을 사용하였습니다.
Pull Down 방식
Pull Up 방식
※3. 소스코드 및 동작
스위치가 눌렸을때 LED가 켜지는 코드는 아래와 같습니다.
▶1. 소스코드
Pull Down 동작을하는 코드를 실행해 보겠습니다. (소스코드는 첨부파일 제공해 드리겠습니다.)
//Pull Down// // 택트 스위치가 연결된 디지털 핀 번호 const int switchPin = 3; // LED가 연결된 디지털 핀 번호 const int ledPin = 2; // 스위치 상태를 저장하는 변수 int switchState = 0; void setup() { // 택트 스위치 핀을 입력으로 설정 pinMode(switchPin, INPUT); // 스위치의 기본 상태를 LOW로 설정 digitalWrite(switchPin, LOW); // LED 핀을 출력으로 설정 pinMode(ledPin, OUTPUT); } void loop() { // 스위치의 상태를 읽어옴 switchState = 0; digitalWrite(ledPin, LOW); switchState = digitalRead(switchPin); // 만약 스위치가 눌리면 if (switchState == HIGH) { // LED를 켬 digitalWrite(ledPin, HIGH); } } |
Pull UP 동작을하는 코드를 실행해 보겠습니다. (소스코드는 첨부파일 제공해 드리겠습니다.)
// Pull Up// // 택트 스위치가 연결된 디지털 핀 번호 const int switchPin = 3; // LED가 연결된 디지털 핀 번호 const int ledPin = 2; // 스위치 상태를 저장하는 변수 int switchState = 0; void setup() { // 택트 스위치 핀을 입력으로 설정 pinMode(switchPin, INPUT); // 스위치의 기본 상태를 HIGH로 설정 digitalWrite(switchPin, HIGH); // LED 핀을 출력으로 설정 pinMode(ledPin, OUTPUT); } void loop() { // 스위치의 상태를 읽어옴 switchState = 0; digitalWrite(ledPin, LOW); switchState = digitalRead(switchPin); // 만약 스위치가 눌리면 if (switchState == LOW) { // LED를 켬 digitalWrite(ledPin, HIGH); } } |
▶2. 하드웨어 연결 및 동작 확인
Pull UP과 Pull Down 방식에는 각각 동작을 확인 할 수 있습니다.
==> 하드웨어적인 특성을 다르지만 코드상에서 동일한 동작을 하도록 해주어 같은 동작을 할 수 있습니다.
Pull Down
Pull Up
이상으로 아두이노에서 Tack Switch를 통해 LED를 다루는 방법에 대한 설명을 마치겠습니다.
다름 포스트에서 Slide Switch를 통해 LED를 다루는 방법에 대해 다루겠습니다.
감사합니다.
'Embedded System > Arduino Board' 카테고리의 다른 글
[Arduino] 아두이노 포토레지스터 ( CDS ) 사용하기 (11) (0) | 2024.06.08 |
---|---|
[Arduino] 아두이노 슬라이드 스위치로 LED제어 (10) (0) | 2024.06.07 |
[Arduino] 아두이노 3색 LED 제어하기(빨 초 파 흰)_Common Cathode (8) (0) | 2024.06.07 |
[Arduino] 아두이노 8x8 Matrix Dot LED(1088BS)제어하기 (7) (1) | 2024.06.03 |
[Arduino] 아두이노 4Digit 7Segment(4자리 FND)제어하기 (6) (0) | 2024.06.02 |