아두이노 프로토쉴드(ProtoShield) 퀵스타트 가이드

아두이노 프로토쉴드(ProtoShield) 퀵스타트 가이드

만약 어떤 프로젝트 아이디어가 있고 아두이노 보드를 가지고 있다면 프로젝트에 필요한 외부 부품들을 연결하고 실제적으로 구축할 어떤 플랫폼이 필요합니다. 프로토쉴드는 이러한 용도에 적합합니다.

프로토쉴드는 무엇?

프로토쉴드는 프로토타이핑을 용이하게 하기 위해서 디자인 된 제품입니다. 브레드보드와 아두이노간 연결을 쉽게 하여 주죠. 프로토쉴드는 아두이노에게 프로토타이핑 공간과 두개의 범용 LED, BlueSMiRF소켓, 푸쉬버튼, 그리고 아두이노 리셋버튼을 제공합니다. 작은 미니 브레드보드를 프로토쉴드 위에 올려 놓아 설치한다면 프로토쉴드는 재사용도 가능합니다.

쉴드를 어떻게 조립하나요?

프로토쉴드는 키트형태로 출고되기 때문에 납땜을 하여 필요한 부품을 적절하게 조립하여야 합니다. 조립방법은 제품페이지의 조립 튜토리얼을 참고하세요.

프로토쉴드 사용법

그럼 프토로쉴드 사용법에 대해 알아보겠습니다.

LED사용하기
조립가이드에도 언급되지만 두개의 LED를 원하는 아두이노 핀에 연결하여야 합니다. LED를 연결하면 "Blink" 스케치를 실행할 수 있습니다. (File->Examples->Digital->Blink):

int ledPin =  13;

void setup()   {                
  pinMode(ledPin, OUTPUT);     
}

void loop()                     
{
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
  delay(1000);
}

위의 코드에서 ledPin은 LED를 실제로 연결한 디지털 핀의 값으로 변경하여 주어야 합니다. 위의 예제코드가 동작되기 위해서는 LED를 13번 핀에 연결하여야 합니다. 위의 스케치는 LED를 1초에 한번씩 on/off하는 코드입니다.

프로토쉴드에 장착되는 두개의 LED의 한쪽 다리는 330오옴 저항을 통해 그라운드로 연결이 되어야 하고 다른쪽 다리는 JC2이나 JC3으로 연결된 후 원하는 아두이노 핀에 연결되어야 합니다. 그렇게 하면 digitalWrite로 핀을 HIGH했을때 LED는 on되게 됩니다. 330오옴 저항을 사용하는 이유는 LED에 들어가는 전류의 양을 제한하기 위해 사용됩니다. 대부분의 LED는 20mA등급으로 이보다 많은 저항이 들어갈 시 LED는 고장나게 됩니다.

버튼 사용하기
버튼을 사용하기 전에 버튼도 아두이노의 디지털 핀에 연결합니다. 아래는 Button 스케치 예제 코드입니다.(File->Examples->Digital->Button):

const int buttonPin = 2;
const int ledPin =  13;

int buttonState = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);     
}

void loop(){
  buttonState = digitalRead(buttonPin);

  if (buttonState == HIGH) {
    digitalWrite(ledPin, HIGH);  
  }
  else {
    digitalWrite(ledPin, LOW);
  }
}

buttonPin은 실제로 아두이노에 어떤 핀에 연결했느냐에 따라 변경하여 주어야 합니다. 여기서는 2번핀에 연결하였습니다.

프로토쉴드상의 버튼은 풀업된 high상태입니다. 다시말하면 버튼의 한쪽은 저항을 통해 +5V 그리고 JC1(JC1은 와이어를 통해 아두이노 핀으로 연결됩니다)으로 연결되어 있다는 의미입니다. 버튼의 다른 한쪽은 단순히 그라운드에 연결되어 있습니다. 그래서 버튼이 눌리면 LOW로 읽히고 그렇지 않을때는 HIGH입니다. 본 예제에서는 버튼이 눌리지 않으면 LED는 켜져 있게 됩니다.

BlueSMiRF port 사용하기
블루투스는 매우 간단하면서 효과적으로 무선 통신을 프로젝트에 추가 할 수 있는 방법입니다. BlueSMiRF Gold 블루투스 모듈은 선이 없는 시리얼 케이블과 같이 동작합니다. 동작을 위해서는 5V, GND, TX, RX의 4개의 연결이 필요합니다. BlueSMiRF의 VCC, GND, TX-O, RX-I를 프로토쉴드의 5V, GND, D0, D1과 연결하셔야 합니다.

표준 Serial.print와 Serial.read 명령을 통해 시리얼 데이터를 주고 받을 수 있습니다. 아래는 예제 코드입니다.

int ledPin = 13;
int buttonPin = 2;

int buttonState = LOW;
int oldButtonState = HIGH;
char serInput;

void setup()
{
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
  digitalWrite(ledPin, HIGH);
 
  Serial.begin(115200);
}

void loop()
{
  buttonState = digitalRead(buttonPin);
 
  if (Serial.available() > 0)
  {
    serInput = Serial.read();
    Serial.println("Miny, Moe.");
  }
  if (buttonState != oldButtonState)
  {
    if (buttonState == HIGH)
    {
      digitalWrite(ledPin, HIGH);
      Serial.print("Meeny, ");
    }
    else
    {
      digitalWrite(ledPin, LOW);
      Serial.print("Eeny, ");
    }
  }
 
  oldButtonState = buttonState;
}

이 예제코드는 BlueSMiRF 뿐아니라 표준 USB-Serial통신에서도 동작이 가능합니다. 보오드레이트는 115200bps입니다. 버튼을 누르면 LED는 off되고 "Eeny"를 시리얼 포트에 보냅니다. 버튼을 놓아주면 LED가 다시 켜지면서 "Meeny"가 프린트 됩니다. 아두이노에게 보내는 문자는 "Miny, Moe."로 프린트되게 됩니다.

다른 사람들의 프로토쉴드 사용법

아래의 링크는 다른 사람들이 프로토쉴드를 사용하는 방법을 보여주는 링크입니다. 확인하여 보세요~

Comments