2016 :: 아두이노 기초

기본기:: GPIO

GPIO(General Purpose Input/Output)

 GPIO란 General Purpose Input/Ouput 의 줄임말로, 마이크로 컨트롤러의 핀을 입력 또는 출력 용도로 사용할 수 있게 하는 기능입니다. 기본적으로 아두이노는 5V 기준의 마이크로프로세서이며, 따라서 핀 헤더 소켓을 통해 0V 혹은 5V의 입/출력만이 가능합니다. 따라서 아두이노의 핀을 출력 모드로 설정하면 이 핀을 통해서 우리는 자유자재로 0V 혹은 5V 출력을 낼 수 있으며,  입력 모드로 설정하면 이 핀으로 들어오는 전압이 0V인지 5V인지 판단을 할 수 있습니다.

 

digitalWrite

 아두이노는 digitalWrite()라는 함수를 통해서 GPIO output 기능을 수행합니다. digitalWrite(pin numberHIGH)는 해당되는 핀에 5V를 출력하게 되고, digitalWrite(pin numberLOW)는 해당되는 핀에 0V를 출력하게 됩니다. 이 기능을 이용하여 일정 시간을 주기로 깜빡거리는 LED를 구현해 봅시다.

blink.ino 
int ledPin = 13;                 // LED connected to digital pin 13
 
void setup()
{
  pinMode(ledPin, OUTPUT);      // sets the digital pin as output
}
 
void loop()
{
  digitalWrite(ledPin, HIGH);   // sets the LED on
  delay(1000);                  // waits for a second
  digitalWrite(ledPin, LOW);    // sets the LED off
  delay(1000);                  // waits for a second
}

 

digitalRead

 GPIO의 input 기능은 digitalRead() 함수로 구현할 수 있습니다. digitalRead(pin number) 함수는 해당되는 핀에 0V가 걸리면 정수값 0을, 5V가 걸리면 정수값 1을 반환합니다. 이 기능을 이용하여 버튼으로 제어할 수 있는 LED를 구현해 봅시다.

digitalread.ino 
int ledPin = 13; // LED connected to digital pin 13
int inPin = 11;   // pushbutton connected to digital pin 11
int val = 0;     // variable to store the read value
 
void setup()
{
  pinMode(ledPin, OUTPUT);      // sets the digital pin 13 as output
  pinMode(inPin, INPUT);      // sets the digital pin 11 as input
}
 
void loop()
{
  val = digitalRead(inPin);   // read the input pin
  digitalWrite(ledPin, val);    // sets the LED to the button's value
}

참고자료

댓글

댓글 본문
버전 관리
YJ
현재 버전
선택 버전
graphittie 자세히 보기