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

[ARM mbed 강좌] 08. 버스 입력 (BusIn, Switch, LED 이용)

mbed (ARM Core + Online tools + Community)

 



 1. 버스 입력 (BusIn)


: 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 소스작성, 컴파일, 업로드 방식은 "mbed 기초 강좌 : 03. mbed 소스작성, 컴파일, 업로드" 를 참고하도록 하자.


#include "mbed.h"

BusIn  buttons(p17,p18,p19,p20);// Bus In Pin
BusOut leds(p21,p22,p23,p24);   // Bus Out Pin

int main() 
{
    leds=0; // LED Init    
      
    while(1) 
    {
        leds=buttons.read(); // button[n] On/Off = led[n] Off/On
    }
}
 


 6. 사용한 라이브러리


▶ BusOut
▶ BusIn



 7. 실행 결과


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



 참고자료


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