Arduino LED 제어하기





모든 제어동작할 때 항상 기본적으로 시작하는 LED제어를 해보았다.




LED의 회로는 항상 간단하다.


소스

void setup() {

//LED 핀 설정을 해줍니다.

pinMode(11,OUTPUT);

}

 

void loop() {

//1개씩 순차적으로 켭니다.

digitalWrite(11,HIGH);

delay(500);

 

//1개씩 순차적으로 끕니다.

digitalWrite(11,LOW);

delay(500);

}

 

이 함수들을 간단히 이용한다면 사용자가 원하는 다양한 패턴을 사용할 수 있다.



=========================================================================


pinmode() : Arduino 보드의 pin을 입력 핀으로 사용할지 아니면 출력 핀으로 사용할지 설정하기 위하여 사용한다.

 

아두이노 우노에서는 20개의 디지털 입/출력 핀들이 제공되고 있습니다. 디지털 14 (D0 ~ D13), 아나로그 6(A0 ~ A5) 20개를 지원합니다. 즉 디지털 입출력 핀이 모자라면, 아나로그 핀들도 디지털 핀들로 사용 가능하다는 것입니다.

우선 사용할 핀들을 어떻게 사용할 것인지를 결정하는 명령이 바로 pinMode입니다.

문법

void pinMode(pin, mode)

pin은 디지털 입출력으로 사용할 핀 번호이며, modeINPUT, INPUT_PULLUP, OUTPUT과 같이 동작할 모드 값입니다.

설명

pin 값으로 디지털 핀들은 0 ~ 13 값으로 할당되고, 아나로그 A0 ~ A5 핀들은 14 ~ 19로 할당되어 사용됩니다. A0A5는 상수로 정의되어 있어 mode 값으로 같이 사용할 수 있습니다. A0 혹은 14를 사용하여도 같은 결과를 얻을 수 있습니다.

modeINPUT, INPUT_PULLUP, OUTPUT 3가지 모드를 지원하고 있습니다. OUTPUT은 핀을 출력 용으로 사용하고자 할 때 , INPUTINPUT_PULLUP은 둘 모두 입력 용으로 사용하고자 할 때 필요한 것이며, INPUT_PULLUP은 내부적으로 PULLUP 저항을 사용하여 외부에서 신호 값을 넣지 않을 경우에는 PULLUP 저항을 통하여 +5V가 공급되어 "1"로 읽히게 됩니다. 이를 간단한 회로도를 통하여 설명하는 것이 이해가 쉬울 것입니다.



digitalWrite() : digitalWrite(pin, value)는 디지털 출력 핀 pin에 정수 0(LOW) 혹은 정수 1(HIGH) 값을 써 출력 핀의 전압을 0V 혹은 아두이노 보드의 동작 전압에 따라 +3.3V 혹은 +5V로 만드는 함수

 

문법

아두이노에서 사용되는 모든 디지털 핀들의 번호 값을 pin에 넣고, 핀의 출력 전압을 0로 하고자 하면, 0 혹은 LOWvalue에 넣고, 출력 전압을 VCC로 하고자 하면 1 혹은 HIGH를 넣고 호출하면 됩니다. 아날로그 A0 ~A5 핀들도 디지털 핀들로 사용될 수 있으며, pinA0와 같은 값을 넣으면 됩니다.

void digitalWrite(uint8_t pin, uint8_t value)

주의하여야 할 사항으로 먼저 pinMode(...) 함수를 사용하여 핀의 동작 모드를 출력 모드로 설정한 후에 digitalWrite(...) 함수를 사용하여야 원하는 동작 결과를 얻을 수 있습니다. 물론 내부 풀업 저항으로 사용하기 위한 용도일 경우, 필요치 않습니다:

// 사용하는 3, 4, A0, A1 핀들을 출력 핀으로 설정합니다:

pinMode(3, OUTPUT);

pinMode(4, OUTPUT);

pinMode(A0, OUTPUT);

pinMode(A1, OUTPUT);

 

digitalWrite(3, HIGH); // HIGH1과 같습니다

digitalWrite(4, 1); // 출력 핀을 VCC로 만듭니다

digitalWrite(5, HIGH); // 내부 풀업 저항으로 사용

// pinMode(5, INPUT_PULLUP)과 같은 효과

digitalWrite(A0, LOW); // LOW0와 같습니다

digitalWrite(A1, 0); // 출력 핀을 0volt로 만듭니다

또한 analogWrite(pin, value) 함수로 PWM을 신호를 발생하고 있는 출력 핀에 사용하면 당연히 PWM 신호 발생이 중단되게 됩니다.

 


+ Recent posts