코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2015-01-16 12:40:19
스위치(Switch)는 일상생활에서 흔히 접할 수 있는 제어 장치로써 조명이나 가전기기, 공장설비, 자동차, 항공기, 선박 등 생활 전반에 걸쳐 사용되며 간단하게는 전원을 켜거나 끌 때 사용되고 전자기기를 조작/제어할 때 스위치를 사용합니다.
스위치는 사람이 단순하게 물리적인 힘을 가하여 조작했을때만 상태가 변한다는 특징이 있기 때문에 사용 방법이 매우 쉽고 직관적입니다.
스위치는 작동 방식에 따라 많은 종류가 있으나, 본 예제에서는 푸쉬 버튼 스위치(Push Button Switch)를 사용합니다.
NO | 부품명 | 수량 | 상세설명 |
1 | 오렌지 보드 | 1 | |
2 | LED | 1 | LED(GREEN) |
3 | 스위치 | 1 | |
4 | 330Ω 저항 | 1 | |
5 | 브레드보드 | 1 | |
6 | 점퍼케이블 | 6 |
부품명 | 오렌지 보드 | LED | 스위치 | 330Ω 저항 | 브레드보드 | 점퍼케이블 |
파트 |
1. 오렌지보드의 GND 핀을 브레드보드의 - 버스에 연결합니다.
2. 스위치를 그림과 같이 양쪽 IC영역에 걸치게 꽂습니다.
3. LED를 애노드(긴 단자)가 아래쪽으로 향하게하여 꽂습니다.
4. LED의 애노드가 연결된 행에 330Ω 저항을 연결합니다.
5. 스위치의 오른쪽 상단 단자를 오렌지보드 5번핀에 연결합니다.
6. 스위치의 왼쪽 하단 단자를 -버스에 연결합니다.
7. LED 애노드와 연결된 저항의 반대 쪽을 오렌지보드 3번핀에 연결합니다.
8. LED의 캐소드가 연결된 행을 -버스에 연결합니다.
TIP 일반적으로 버튼을 사용할 때는 10KΩ 정도의 크기가 큰 저항을 사용하여 PULL-UP/PULL-DOWN회로를 구성하는 것이 일반적입니다.
하지만 setup()에서 사용된 pinMode()에서 버튼과 연결된 핀을 INPUT_PULLUP으로 설정할 경우에는 별다른 저항의 연결없이 손쉽게 연결이 가능합니다.
PULL-UP과 PULL-DOWN
버튼을 사용할때는 항상 PULL-UP과 PULL-DOWN 두 개념이 매우 중요하며, 둘 중 하나를 선택하여 회로를 구성해야 합니다.
그러기 위해서는 저항의 연결이 필수적이지만, 위 예제에서는 하드웨어 PULL-UP/DOWN회로를 구성하지 않고, 아두이노 소프트웨어로 구현된 INPUT_PULLUP을 사용합니다.
※ pinMode에서는 INPUT_PULLUP은 있지만 INPUT_PULLDOWN은 없습니다
PULL-UP과 PULL-DOWN은 보통 저항이 연결된 위치에 따라 구분되며 저항이 +극(5V)에 연결되어 있다면 전압이 높은 곳에 매달려 있다하여 PULL-UP회로라 부르고 -극(GND)에 연결되어 있다면 전압이 낮은 곳에 매달려있기 때문에 PULL-DOWN회로라 부릅니다.
PULL-UP회로는 평상 시에 LOW(0)신호를 출력하며 PULL-DOWN은 그와 반대로 HIGH(1)신호를 출력합니다.
INPUT_PULLUP은 풀업회로와 동일한 신호를 출력합니다.
버튼이 눌렸을 때 | 버튼이 눌리지 않았을때 | |
PULL-UP | LOW(0) | HIGH(1) |
PULL-DOWN | HIGH(1) | LOW(0) |
if문(조건문)
아두이노뿐만 아니라 프로그래밍언어에서 가장 기본이 되는 문법 중 하나로 조건에 따라 흐름을 분기할 때 사용됩니다.
if('조건')으로 사용되며 '조건'에는 참/거짓으로 상태가 확실히 구분되는 명제가 들어갑니다.
if문 단독으로도 사용이 가능하며 if/else문, if/else if문, if/else if/else문 등 다양하게 사용할 수 있습니다.
첫 조건은 무조건 if로 시작하며 그와 연결되는 또다른 조건문은 else if로 계속 조건을 늘려서 사용이 가능합니다.
else는 옵션조건으로 사용할 경우 if('조건')에 해당하지 않는 모든 경우에 else에 해당하는 내용이 실행됩니다.
코드 실행
위 코드를 실행시키면 조건문에 의해 버튼을 눌렀을 때(상태가 LOW일 경우) 디지털 3번핀에 연결된 LED가 켜지며, 누르지 않았을 경우에는 else문에 의해 LED가 꺼지게 됩니다.
코드 실행
위 코드에서는 INPUT_PULLUP이 아닌 저항을 달아 PULL-UP회로를 구성하였습니다. 회로도를 보면 저항이 5V와 연결되어 있는것을 확인할 수 있기 때문에 PULL-UP회로임을 알 수 있습니다.
버튼은 2개를 사용하여 각각 5번 핀, 6번 핀에 연결하였고 각각 버튼을 누를때마다 LED의 상태가 변하도록 하였습니다.
버튼은 많은 게임기에 사용되는 소자 중 하나이기도 합니다.
따라서 버튼을 활용하면 다양한 게임들도 제작해볼 수있습니다.
버튼을 이용해 기억력을 테스트할 수 있는 게임을 제작한 프로젝트입니다.
출처 : https://youtu.be/R2yuoImfwGk
kocoafabeditor
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!