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은 디지털 입출력으로 사용할 핀 번호이며, mode는 INPUT, INPUT_PULLUP, OUTPUT과 같이 동작할 모드 값입니다.
설명
pin 값으로 디지털 핀들은 0 ~ 13 값으로 할당되고, 아나로그 A0 ~ A5 핀들은 14 ~ 19로 할당되어 사용됩니다. A0와 A5는 상수로 정의되어 있어 mode 값으로 같이 사용할 수 있습니다. A0 혹은 14를 사용하여도 같은 결과를 얻을 수 있습니다. mode는 INPUT, INPUT_PULLUP, OUTPUT 3가지 모드를 지원하고 있습니다. OUTPUT은 핀을 출력 용으로 사용하고자 할 때 , INPUT과 INPUT_PULLUP은 둘 모두 입력 용으로 사용하고자 할 때 필요한 것이며, INPUT_PULLUP은 내부적으로 PULLUP 저항을 사용하여 외부에서 신호 값을 넣지 않을 경우에는 PULLUP 저항을 통하여 +5V가 공급되어 "1"로 읽히게 됩니다. 이를 간단한 회로도를 통하여 설명하는 것이 이해가 쉬울 것입니다. |
digitalWrite() : digitalWrite(pin, value)는 디지털 출력 핀 pin에 정수 0(LOW) 혹은 정수 1(HIGH) 값을 써 출력 핀의 전압을 0V 혹은 아두이노 보드의 동작 전압에 따라 +3.3V 혹은 +5V로 만드는 함수
문법
아두이노에서 사용되는 모든 디지털 핀들의 번호 값을 pin에 넣고, 핀의 출력 전압을 0로 하고자 하면, 0 혹은 LOW를 value에 넣고, 출력 전압을 VCC로 하고자 하면 1 혹은 HIGH를 넣고 호출하면 됩니다. 아날로그 A0 ~A5 핀들도 디지털 핀들로 사용될 수 있으며, pin에 A0와 같은 값을 넣으면 됩니다.
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); // HIGH는 1과 같습니다
digitalWrite(4, 1); // 출력 핀을 VCC로 만듭니다
digitalWrite(5, HIGH); // 내부 풀업 저항으로 사용
// pinMode(5, INPUT_PULLUP)과 같은 효과
digitalWrite(A0, LOW); // LOW는 0와 같습니다
digitalWrite(A1, 0); // 출력 핀을 0volt로 만듭니다
또한 analogWrite(pin, value) 함수로 PWM을 신호를 발생하고 있는 출력 핀에 사용하면 당연히 PWM 신호 발생이 중단되게 됩니다.
'Study Note > SBC' 카테고리의 다른 글
[라즈베리파이] RasberryPi TOF센서 사용 (0) | 2016.12.20 |
---|---|
[아두이노] 초음파센서(HC-SR04) 사용하기 (0) | 2016.12.19 |
[아두이노] 온도센서(LM35) 사용 (0) | 2016.12.19 |
[아두이노] Tool 설치 및 기본 정보 (0) | 2016.12.19 |
[라즈베리파이] LED 제어 (C언어) (1) | 2016.11.03 |