profile image

L o a d i n g . . .

넷두이노(Netduino) 강좌 - Blink LED

안녕하세요. 이번 챕터에서는 넷두이노(Netduino) 에 달려있는 13번 LED(On Board LED)를 컨트롤 해보겠습니다. 쉽게 말해서 깜빡이게 해보겠습니다.

먼저 비주얼 스튜디오 2013을 실행하신 후 프로젝트를 생성해주세요. 그러면 그림 1과 같은 화면으로 준비가 될 것입니다.


[그림 1. 넷두이노 프로젝트 생성 화면]

그림 1을 보시면 using으로 헤더파일이 연결되어 있으며 public static void Main() { ... } 라는 메인문이 덩그러니 있습니다. 위에 보시는 using는 C언어의 #include <stdio.h> 와 같이 헤더파일을 프로젝트에 포함시키는 역할을 합니다. 넷두이노에서의 중점 기능은 using Microsoft.SPOT; 에 담겨져 있습니다. (미리 구성된 하드웨어 핀 설정은 using SecretLabs.NETMF.Hardware.Netduino; 에 들어있습니다.)


NetduinoApplication4 라는 namespace(네임 스페이스) 안에 Program 이라는 public class가 있습니다. 네임스페이스와 클래스의 이름은 변경 가능합니다. 또한, 클래스 안에서 다른 함수를 선언하여 메인문을 깔끔하게 만들 수 있습니다. (이후 Thread 구현 챕터 및 기타 챕터에서 설명 드릴 것 입니다.)


지루하시죠? 우선 LED를 깜빡이게 하는 코드를 입력해 보도록 하겠습니다.


넷두이노(Netduino) 강좌 - 코딩하기

[그림 2. Blink LED 코드 입력]

아주 간단한 코드입니다 !! 메인문 안에서 처음에 OutputPort onBoardLED = new OutputPort(Pins.ONBOARD_LED, false); 에서 ONBOARD_LED를 출력으로 하고 LED의 초기상태를 꺼짐(false) 으로 설정한 사항을 onBoardLED라고 선언했습니다.

while(true) { ... } 에서, while의 조건식이 참이면 { 와 } 사이는 반복하게 됩니다. 조건식을 true라고 해놓았기 때문에 저 문장은 무한히 돌 것입니다.

onBoardLED.Write(true); 는 LED의 상태를 참(true == 1)으로 변경한다는 뜻입니다. LED의 불을 켠다는 뜻입니다. 반대로 false는 불을 끈다는 뜻입니다.

Thread.Sleep(250);은 일반적은 delay 함수와 같습니다. 단위는 ms이며 위에서 실행한것 까지의 상태에서 0.25초 동안 기기의 작동을 멈추겠다는 뜻입니다. (꺼지는것이 아님. 멈추는 것임) Sleep안의 숫자를 1000 으로 바꾸면 1초가 되기 때문에 1초동안 켜졌다가 1초동안 꺼져 있는 동작을 계속 반복할 것입니다.


넷두이노(Netduino) 강좌 - 컴파일 준비하기

넷두이노에 프로그램을 넣기 위해선 간단한 설정이 필요합니다. 본 챕터에서만 설명하고 다음 챕터부터는 아래의 과정은 별도로 설명되지 않습니다.

[그림 3. 넷두이노와 연결하기]

그림 3과 같이 컴퓨터와 연결합니다.


[그림 4. 장치관리자에 인식된 넷두이노]

그러면 장치관리자에서 넷두이노가 정상적으로 인식 되었을 것 입니다.


[그림 5. 프로젝트 속성]

프로젝트의 속성에서 프로그램을 탑재할 기기를 설정해 줘야 합니다.

프로젝트를 마우스 오른쪽 버튼을 누른 후 속성을 클릭합니다.


[그림 6. .NET Micro Framework 탭의 Deployment]

.NET Micro Framework 탭을 클릭하면 Deployment 부분에 탑재 유형과 장치를 설정할 수 있습니다. USB를 선택하시면 장치 부분에 넷두이노가 뜹니다.

위 설정까지 끝나고 나면 F5를 눌러서 프로그램을 넣습니다. (컨트롤 + F5도 가능)


프로그램이 정상적으로 들어간다면 아래 동영상과 같이 LED가 깜빡이게 됩니다.



소스코드





[Need a translation?]

English Korean Japanese Chinese (Simplified) Chinese (Traditional) French German Russian Spanish Ukrainian


복사했습니다!