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

[ARM mbed 강좌] 06. 디지털 입력 (DigitalIn, LED, Switch 이용)

mbed (ARM Core + Online tools + Community)

 


 1. 디지털 입력 (DigitalIn)


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









 2. 학습내용


: 이번 강좌에서는 mbed의 디지털 입력을 이용하여, Switch를 On/Off 하여 이를 디지털 입력으로서 받고, 이에 대응하도록 LED를 On/Off 하는 디지털 입/출력 테스트를 해보도록 하겠다.


 3. 회로도


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

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



 4. 배선도


▶ 회로의 배선도이다. 브래드보드에 아래와 같이 mbed 보드와 구성품을 배치, 배선 후 mbed를 PC에 연결하도록 하자.




 5. 프로그램 소스


▶ 버튼1을 누르면, LED1이 켜지고, 버튼2를 누르면 LED2가 켜지는 식으로 버튼 입력에 대응하도록 LED를 On/Off 하는 프로그램이다. 프로그램의 세부 설명은 소스에 기재되어 있는 설명을 참고하도록 하자. 

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

▶  mbed 소스작성, 컴파일, 업로드 방식은 이전강좌를 참고하도록 하자.


#include "mbed.h"

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

DigitalIn button1(p17); // Digital In Pin
DigitalIn button2(p18);
DigitalIn button3(p19);
DigitalIn button4(p20);

int main() 
{
    button1.mode(PullUp);   // Setting Pullup Mode 
    button2.mode(PullUp);
    button3.mode(PullUp);
    button4.mode(PullUp);

    led1=0; led2=0; led3=0; led4=0; // LED Init    
      
    while(1) 
    {
        if(button1 == 0)                    // if button1 is On
        {
            led1=1; led2=0; led3=0; led4=0; // LED1 ON, other LED Off 
        }
        if(button2 == 0)                    // if button2 is On
        {
            led1=0; led2=1; led3=0; led4=0; // LED2 ON, other LED Off
        }
        if(button3 == 0)                    // if button3 is On
        {
            led1=0; led2=0; led3=1; led4=0; // LED3 ON, other LED Off
        }
        if(button4 == 0)                    // if button4 is On
        {
            led1=0; led2=0; led3=0; led4=1; // LED4 ON, other LED Off
        }
    }
}
 


 6. 사용한 라이브러리





 7. 실행 결과


▶ 실행 결과는 아래와 같다.




 참고자료


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