1주차 LED제어하기

아두위키 : Arduwiki
ArduWiki (토론 | 기여)님의 2023년 12월 27일 (수) 13:10 판

1. 아두이노 디지털 핀

# 아두이노 Digital Pin
# 아두이노 Digital Pin

아두이노 디지털 입출력 pin은 보드의 digital pin 0 ~ 13을 사용할 수 있습니다. 0, 1번 pin은 컴퓨터와 아두이노가 통신할 때 주로 사용하기 때문에 우리는 2 ~ 13 핀을 사용하여 디지털 입출력을 사용할 수 있습니다.

디지털 입출력은 LOW(0V)와 HIGH(3.3V) 중 하나의 값을 사용할 수 있습니다.

2. 브레드보드

브레드보드의 구조를 살펴봅시다. 브레드보드는 위의 그림처럼 각각 가로, 세로 방향으로 연결되어 있습니다.

아두이노의 GND, 5V pin이 부족한 경우 브레드보드를 이용해 확장하여 사용할 수 있습니다.

3. LED

LED
LED

LED(5mm) 일반적으로 2개의 전극단자로 구성되어 있습니다. 긴 단자가 [+], 짦은 단자가 [-]입니다.

3-1. LED 회로도

LED 회로도
LED 회로도

3-2. 변수 선언과 초기화 방법

// 자료형 변수명;
// 자료형 변수명 = 값;
int led1;
int led2 = 9;

[int]은 2 byte 정수(-32,768 ~ 32,767)를 저장할 수 있는 자료형입니다.

[led1] 변수를 선언하였고 [led2] 변수는 선언하고 9라는 값으로 초기화하였습니다.

3-3. 초기 설정 함수 setup()

LED 제어를 위해 setup() 함수에 디지털 입출력 설정 함수를 사용해봅시다.

int led = 9;
void setup() {
    pinMode(led, OUTPUT);
}

pinMode() 함수는 led 핀 번호를 디지털 출력으로 사용하겠다는 의미입니다.

3-4. 반복 함수 loop()

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

loop() 함수는 반복 함수입니다. 아두이노가 동작하는 동안 loop() 함수 내의 코드가 계속해서 반복됩니다.

digitalWrite() 함수는 디지털 출력 함수입니다. led 변수에 저장된 9번 digital pin의 상태를 HIGH 또는 LOW로 설정하는 함수입니다.

delay() 함수는 대기 함수입니다. 원하는 시간만큼 대기한 후 다음 코드를 진행할 수 있습니다. 매개변수로는 밀리초(ms) 단위의 시간을 넣습니다. 따라서 delay(1000)은 1초동안 대기할 수 있습니다.

3-5. 전체 코드

int led = 9;
void setup() {
  pinMode(led, OUTPUT);
}
void loop() {
  digitalWrite(led, HIGH);
  delay(1000);
  digitalWrite(led, LOW);
  delay(1000);
}

위의 코드를 실행해보면 1초 간격으로 LED가 켜지고 꺼지는 모습을 볼 수 있습니다.