초급 예제

누구나 쉽게 따라해볼 수 있는 쉬운 예제들입니다. 가볍게 도전~!

스위치로 LED 켜기

2015-01-16 12:40:19

개요

 

1) 스위치란 무엇인가?

 

스위치는 일상생활에서 흔히 접할 수 있는 제어 장치입니다. 조명, 컴퓨터, 가전기기 등 전자제품의 전원을 켜거나 끌 때, 혹은 리모컨, 키보드 등 전자기기를 조작할 때 스위치를 사용합니다. 

 

수도꼭지를 틀면 물이 나오고, 잠그면 물이 나오지 않는 것과 같이, 스위치로 전류의 흐름을 제어할 수 있습니다. 스위치는 작동 방식에 따라 많은 종류가 있으나, 본 예제에서는 푸쉬 버튼 스위치를 사용합니다. 

 
2) 푸쉬 버튼 스위치 사용방법
 
푸쉬 버튼 스위치(Push Button Switch)는 상단에 단추 모양의 버튼과 하단에 4개의 단자로 구성되어 있습니다. 상단 버튼은 스위치를 동작시키는 역할을하며, 하단의 단자는 회로와 스위치를 연결하는 다리 역할을 합니다. 
 
단자 연결은 대각선 방향이 한쌍으로 연결되어 있습니다. 그림과 같이, 좌측 상단 단자에 도선을 연결했다면, 우측 하단 단자에 다른 도선을 연결하는 방법입니다. 이렇게 회로를 연결하고 버튼을 누르면, 전류는 좌상단 단자에서 우하단 단자로 흘러갑니다. 

 
푸쉬 버튼 스위치도 동작방식에 따라 두 종류로 나누어집니다. 버튼을 누르는 동안 전류를 흘려주는 A type과 버튼을 누르는 동안 전류를 차단하는 B type이 있습니다. 본 예제에서는 A type 버튼을 사용합니다. 
 

부품 목록

 

NO 부품명 수량 상세설명
1 오렌지 보드 1  
2 LED 1 LED(GREEN)
3 스위치 1  
4 330Ω 저항 1  
5 브레드보드 1  
6 점퍼케이블 6  

 

부품명 오렌지 보드 LED 스위치 330Ω 저항 브레드보드 점퍼케이블
파트

 

하드웨어 making

 

브레드 보드

1. 오렌지보드의 GND 핀을 브레드보드의 - 버스에 연결합니다.
2. 스위치를 그림과 같이 양쪽 IC영역에 걸치게 꽂습니다.
3. LED를 애노드(긴 단자)가 아래쪽으로 향하게하여 꽂습니다.
4. LED의 애노드가 연결된 행에 330Ω 저항을 연결합니다.
5. 스위치의 오른쪽 상단 단자를 오렌지보드 5번핀에 연결합니다.
6. 스위치의 왼쪽 하단 단자를 -버스에 연결합니다.
7. LED 애노드와 연결된 저항의 반대 쪽을 오렌지보드 3번핀에 연결합니다.
8. LED의 캐소드가 연결된 행을 -버스에 연결합니다. 

전자 회로도



소프트웨어 coding

/*
 제목		: 스위치로 LED 제어하기
 내용		: 스위치를 누르면 LED가 켜집니다.
 */

// LED를 3번 핀으로 설정합니다.
int led = 3;
// 스위치를 5번 핀으로 설정합니다.
int sw = 5;

// 실행시 가장 먼저 호출되는 함수이며, 최초 1회만 실행됩니다.
// 변수를 선언하거나 초기화를 위한 코드를 포함합니다.
void setup() {
	// LED 핀을 OUTPUT으로 설정합니다.
	pinMode(led, OUTPUT);
	// 스위치가 연결된 핀의 모드를 INPUT_PULLUP 상태(초기 로직레벨을 HIGH로 설정)로 설정합니다.
	// 설정된 디지털 핀은 아래와 같은 값을 반환합니다.
	// 스위치가 열려있다면 (누르지 않은 상태) HIGH
	// 스위치를 닫혀있다면 (누른 상태), LOW
	pinMode(sw, INPUT_PULLUP);
}
// setup() 함수가 호출된 이후, loop() 함수가 호출되며,
// 블록 안의 코드를 무한히 반복 실행됩니다.
void loop() {
	// 스위치가 연결된 핀의 로직레벨이 LOW라면,
	// 스위치가 닫혀있는 상태(누른 상태) 이므로, 아래의 블록을 실행합니다.
	if (digitalRead(sw) == LOW) {
		// LED가 연결된 핀의 로직레벨을 HIGH (5V)로 설정하여, LED가 켜지도록 합니다.
		digitalWrite(led, HIGH);
	}
	// 스위치가 연결된 핀으로 부터 읽은 값이 HIGH라면,
	// 스위치가 열려있는 상태(누르지 않은 상태) 이므로, 아래의 블록을 실행합니다.
	else {
		// LED가 연결된 핀의 로직레벨을 LOW (0V)로 설정하여, LED가 꺼지도록 합니다.
		digitalWrite(led, LOW);
	}
}

 

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

오렌지 보드, LED, 스위치

노짱 2015-04-03 00:37:31

감사합니다.^^ 잘 배우고 갑니다.

만두 2016-02-19 13:50:28

LED 두 개로도 성공했어요>ㅇ< 감사합니다!

kingseft 2017-03-07 10:20:41

감사합니다.