임베디드 개발보드‎ > ‎mbed‎ > ‎

[ARM mbed 강좌] 05. 디지털 출력 (DigitalOut, LED 이용)

mbed (ARM Core + Online tools + Community)



1. 디지털 출력 (DigitalOut)


: mbed의 디지털 출력 핀을 이용한 디지털 신호 출력이 가능하다. mbed NXP NPC1768 은 총 26개의 핀으로 구성되어있다. 이는 uart, sci, can, spi, i2c, AnalogIn, AnalogOut, PwmOut 등의 특수 목적으로도 이용가능하지만 범용적으로 사용자가 자유롭게 디지털 출력핀으로도 사용 가능하다.









2. 학습내용


: 이번 강좌에서는 mbed의 디지털 출력을 이용하여, 정해진 시간을 간격으로 LED를 On/Off 하는 디지털 출력 테스트를 해보도록 하겠다.


3. 회로도


아래의 부품을 이용하여 아래의 회로도 처럼 구성하기로 하자.

  • 필요부품 : LED 4개, 330옴 저항 4개, 여분의 배선, 브래드보드
  • 회로도(오픈 소스 fritzing 프로그램 이용, 첨부파일 다운로드 가능)


4. 배선도


회로의 배선도이다. 브래드보드에 아래와 같이 mbed 보드와 구성품을 배치, 배선 후 mbed를 PC에 연결하도록 하자.
(※ 참고로 LED는 아래 그림과 깉이 다리가 짧은 쪽이 Cathode - , 긴 쪽이 Anode + 이다. )





5. 프로그램 소스


0.2초 간격으로 LED가 순차적으로 점멸하는 프로그램이다. 프로그램의 세부 설명은 소스에 기재되어 있는 설명을 참고하도록 하자.

▶ mbed.org 컴파일러에서 직접 코딩하여, 컴파일하기를 추천한다. 아무리 간단한 코딩이라도 할 수록 늘고, 자신감도 붙기 마련이다.아래의 소스를 복사/붙여넣기도 가능하지만, 꼭 직접 코딩하고, 컴파일해보고, 결과를 눈으로 직접 보기를 강력 추천한다.

▶ mbed 소스작성, 컴파일, 업로드 방식은 "mbed 기초 강좌 : 03. mbed 소스작성, 컴파일, 업로드" 를 참고하도록 하자.


#include "mbed.h"

DigitalOut led1(p21); // Digital Out Pin
DigitalOut led2(p22);
DigitalOut led3(p23);
DigitalOut led4(p24);

int main()
{
    led1=0; led2=0; led3=0; led4=0; // LED Init

    while(1)
    {
        led1=1; led2=0; led3=0; led4=0; // LED1 ON, other LED Off
        wait(0.2); // wait 0.2 second
        led1=0; led2=1; led3=0; led4=0; // LED2 ON, other LED Off
        wait(0.2);
        led1=0; led2=0; led3=1; led4=0; // LED3 ON, other LED Off
        wait(0.2);
        led1=0; led2=0; led3=0; led4=1; // LED4 ON, other LED Off
        wait(0.2);
    }
}


6. 사용한 라이브러리





7. 실행 결과


실행 결과는 아래와 같다.



참고자료


[1] mbed, http://mbed.org
작성자: 표윤석(http://robotpilot.net/)

Comments