2014. 10. 31.

인텔 갈릴레오2 버튼을 이용한 LED제어하기

 컴퓨터공학을 전공하였지만 전자회로를 다루는 것은 처음이다. 아는 것이 없어서 공부한 것을 정리하는 느낌으로 블로그를 쓰고 있다. 여기에서 다루는 예제는 인텔(아두이노)에서 제공하는 기본적인 소스를 기반으로 하고 있다. 아두이노 IDE 메뉴(파일->예제)에 있는 예제 코드와도 거의 유사하다.
갈릴레오 예제코드 : https://communities.intel.com/docs/DOC-22286
 진행에 앞서 필자는 "아두이노 스타터 킷"을 구입했다. 전자부품을 각각 구입하면 너무 번거롭고 어떤걸 구입해야할지 알기 어렵기 때문에 주요 센서와 기본적인 부품이 들어있는 스타터킷 구입을 추천한다. 10만원 미만의 가격으로 구입이 가능하다.

 이번 글에서는 버튼을 이용해서 LED를 제어하는 방법을 알아보자. 버튼을 누르면 LED에 불이 들어오고 버튼에서 손을 때면 LED에 불이 꺼지게 회로를 구성해보자. 아래의 글을 참고해서 만들어도 된다. 
DigitalReadSerial : https://communities.intel.com/docs/DOC-22428
 기본적인 회로도는 다음과 같다. 인텔 사이트에 나온 내용은 LED가 빠져 있다. 아래의 기본 회로도 오른쪽에 있는 갈색 저항과 검정색 연결선 사이에 LED를 추가하면 된다.
 먼저 스케치 파일을 불러오자. 갈릴레오2를 구동하고, 아두이노 IDE를 실행한다. 그리고 아두이노 IDE 메뉴에서 도구 -> 시리얼 포트 COM3번이 생겼는지 확인하여 갈릴레오2가 정상적으로 연결되었는지 확인한다. 포트3번은 시스템 환경마다 다를수 있다.

 파일 -> 예제 -> 1. Basic -> DigitalReadSerial 메뉴를 클릭해 스케치 파일을 불러온다. 업로드 버튼을 눌러 스케치 내용을 갈릴레오2로 전송한다. 시리얼 모니터를 연다. "0" 계속 출력되는 것을 확인 할 수 있다.
// 푸쉬버튼값을 2번으로 할당한다.
int pushButton = 2;

void setup() {
  //시리얼 통신을 9600의 속도로 연다
  Serial.begin(9600);
  // 푸쉬버튼을 입력값으로 사용한다.
  pinMode(pushButton, INPUT);
}

void loop() {
  // 디지털출력 2번을 읽는다.
  int buttonState = digitalRead(pushButton);
  // 상태를 기록한다.
  Serial.println(buttonState);
  delay(1);        // 지연효과
}
 코드가 정상적으로 업로드 되면 실제로 회로를 만들어보자. 준비물로는 갈릴레오2, 빵판, 전선, 푸쉬버튼, 저항이 필요하다. 이번에 사용하게될 빵판에 대해서 알아보자.
브레드보드(빵판) : https://ko.wikipedia.org/wiki/%EB%B8%8C%EB%A0%88%EB%93%9C%EB%B3%B4%EB%93%9C
 빵판은 전자회로를 만들 때, 납땜을 하지 않고 레고처럼 센서와 전선을 끼워 회로를 만들수 있게 해준다. 위 회로도를 보고, 구멍에 센서와 선을 끼우기만 하면된다.
빵판 이미치 출처 : http://binworld.kr/13
 위 사진처럼 빵판의 위쪽과 아래쪽에 있는 빨간, 파란선은 가로로 연결이 되어 있다. 빨간선은 +전원에 연결하고 파란선은 GND에 연결한다. 이 빨간, 파란선 부분을 버스라고 부른다. 가운데 있는 구멍은 세로 라인끼리 연결되어 있어 이곳에 센서등의 부품을 끼우면 된다. 이곳은 IC영역(회로영역)이라 불린다. 위쪽 회로영역과 아래쪽 회로영역은 서로 분리되어 있다. 빵판에 대한 자세한 사용방법은 아래의 링크를 참고한다.
빵판 사용법 : http://binworld.kr/13
 먼저, 갈릴레오의 5V 출력과 빵판의 빨간색 부분(+)을 빨간색 전선을 이용해 연결한다. 그리고 빵판(-)선과 GND를 초록색을 이용해서 연결한다.
 푸쉬 버튼을 IC영역 가운데 설치한다. 푸쉬 버튼의 회로를 보면 A와 B, C와 D는 연결 상태이고 버튼을 눌렀을때만 전체가 연결된다. 이 특성을 이용하여, 푸쉬 버튼의 A,C 부분이 빵판의 위쪽 영역에 B,D다리가 아래쪽 영역에 위치하도록 한다.
 긴노란색선을 이용해서 Digital 2번핀과 스위치 위쪽의 오른쪽 부분을 연결한다.
  빵판의 (+)극 선부분과 회로영역의 스위치교차선 부분을 짧은 빨간선으로 연결한다.
 LED를 연결하기 위해서 스위치의 오른쪽아래 부분이 연결된 라인과 다른 라인을 저항으로 연결한다.
 또 옆라인을 LED로 연결한다. 저항을 연결하지 않고 LED를 연결해서 전류를 흐르게 하면 과전류가 발생해서 LED가 망가진다.
 짧은 초록색선을 이용하여 LED의 마이너스극이 연결된 라인을 연결한다.
 스위치를 누르면 사리얼 모니터에 "1"이 연속적으로 출력되고 LED에 불이 들어온다.
 버튼을 이용한 LED 제어를 마친다.