코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2016-01-07 09:09:53
1) 스위치란 무엇인가?
NO | 부품명 | 수량 | 상세설명 |
1 | 오렌지 보드 | 1 | |
2 | LED | 1 | LED(RED) |
3 | 스위치 | 1 | |
4 | 330Ω 저항 | 1 | |
5 | 10KΩ 저항 | 1 | |
6 | 브레드 보드 | 1 | |
7 | 점퍼 케이블 | 6 |
부품명 | 오렌지 보드 | LED | 스위치 | 330Ω 저항 | 10KΩ 저항 | 브레드 보드 | 점퍼 케이블 |
파트 |
1. 오렌지보드의 GND 핀을 브레드보드의 - 버스에 연결합니다.
2. 스위치를 그림과 같이 양쪽 IC영역에 걸치게 꽂습니다.
3. LED를 애노드(긴 단자)가 아래쪽으로 향하게하여 꽂습니다.
4. LED의 애노드가 연결된 행에 330Ω 저항을 연결합니다.
5. 스위치의 왼쪽 상단 단자를 오렌지보드 5번핀에 연결합니다.
6. 스위치의 왼쪽 상단 단자에 10KΩ 저항을 연결합니다.
7. 10KΩ 저항 끝부분을 -버스에 연결합니다.
8. 스위치의 왼쪽 하단 단자를 오렌지보드의 5V핀에 연결합니다.
9. LED 애노드와 연결된 저항의 반대 쪽을 오렌지보드 3번핀에 연결합니다.
10. LED의 캐소드가 연결된 행을 -버스에 연결합니다.
스크래치에서 아래 코드를 작성함으로 스위치로 LED를 제어하실 수 있습니다.
<스크래치 스위치로 LED 제어하기 코드>
위 코드는 지니어스 키트 가이드에 있는 스위치로 LED 제어하기와 같은 구조의 코드입니다.
다른점은 오렌지보드 소스코드에서는 INPUT_PULLUP을 소스코드에서 설정하여 버튼에 저항을 연결을 하지 않아도 됬지만, 스크래치에서는 이것을 따로 구현할 수 없어 직접 물리적으로 풀업 저항을 연결했습니다.
5번핀에 연결된 버튼이 눌리게 되면 3번핀에 연결된 LED에 불이 들어오며 버튼을 떼면 3번핀에 연결된 LED는 다시 꺼지게 됩니다.
/*
제목 : 스위치로 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);
}
}
<오렌지보드 스위치로 LED 제어하기 소스>
kocoafabeditor
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!