들어가며
반복문은 프로그래밍에서 아주 중요한 개념 중 하나 입니다. 이번 글에서는 반복문의 기본 구조와 사용 방법을 알아보고, 간단한 예제를 통해 아두이노 반복문 활용 방법에 대해 알아보겠습니다.
반복문을 배우면 반복적인 작업을 손쉽게 처리할 수 있습니다. 예를 들어, LED를 여러 번 깜빡이게 하거나 센서 값을 여러 번 읽는 작업을 자동화할 수 있죠. 이번 포스팅의 목표는 반복문을 이해하고, 이를 통해 아두이노로 다양한 작업을 자동화할 수 있는 지식을 쌓는 것 입니다.
준비물
이번 프로젝트에서는 추가적인 부품 없이 내장 LED를 사용할 거예요.
- 아두이노 보드
- 아두이노 IDE
반복문을 사용하는 방법
반복문은 특정 코드를 여러 번 반복해서 실행할 때 사용됩니다. 반복문은 for 문과 while 문이 있으며, 각각의 구조와 사용 방법을 살펴볼게요.
for 문
for 문은 반복 횟수가 명확할 때 주로 사용됩니다. 기본 구조는 다음과 같습니다:
for (초기화; 조건; 증감) {
// 실행할 코드
}
예를 들어, 내장 LED를 10번 깜빡이게 하려면 다음과 같이 작성할 수 있습니다:
for (int i = 0; i < 10; i++) {
digitalWrite(LED_BUILTIN, HIGH); // LED 켬
delay(500); // 0.5초 대기
digitalWrite(LED_BUILTIN, LOW); // LED 끔
delay(500); // 0.5초 대기
}
while 문
while 문은 조건이 참인 동안 계속 실행됩니다. 기본 구조는 다음과 같습니다:
while (조건) {
// 실행할 코드
}
예를 들어, LED를 조건이 참인 동안 계속 깜빡이게 하려면 다음과 같이 작성할 수 있습니다:
int counter = 0;
while (counter < 10) {
digitalWrite(LED_BUILTIN, HIGH); // LED 켬
delay(500); // 0.5초 대기
digitalWrite(LED_BUILTIN, LOW); // LED 끔
delay(500); // 0.5초 대기
counter++; // counter를 1씩 증가시킴
}
반복문 탈출 방법
반복문을 사용할 때 특정 조건을 만족하면 반복을 중단하고 싶을 때가 있어요. 이런 경우 break 문과 continue 문을 사용할 수 있습니다.
break 문
break 문은 반복문을 즉시 탈출하는 데 사용됩니다. 주로 특정 조건이 만족되면 반복을 중단하기 위해 사용하죠.
예를 들어, 내장 LED를 10번 깜빡이되, 중간에 i가 5가 되면 반복을 중단하려면 다음과 같이 작성할 수 있습니다:
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // i가 5일 때 반복문 종료
}
digitalWrite(LED_BUILTIN, HIGH); // LED 켬
delay(500); // 0.5초 대기
digitalWrite(LED_BUILTIN, LOW); // LED 끔
delay(500); // 0.5초 대기
}
continue 문
continue 문은 현재 반복을 건너뛰고 다음 반복으로 넘어갑니다. 특정 조건을 건너뛰고 싶을 때 사용해요.
예를 들어, 내장 LED를 10번 깜빡이되, i가 5일 때는 LED를 깜빡이지 않으려면 다음과 같이 작성할 수 있습니다:
for (int i = 0; i < 10; i++) {
if (i == 5) {
continue; // i가 5일 때는 아래 코드를 실행하지 않고 다음 반복으로 넘어감
}
digitalWrite(LED_BUILTIN, HIGH); // LED 켬
delay(500); // 0.5초 대기
digitalWrite(LED_BUILTIN, LOW); // LED 끔
delay(500); // 0.5초 대기
}
아두이노 반복문, 아두이노로 예제 확인하기
이번 예제에서는 내장 LED를 반복문을 사용하여 깜빡이는 예제를 만들어 보겠습니다. 추가 부품 없이 간단한 코드를 통해 반복문의 작동 원리를 이해해 봅시다.
예제 코드 소개
다음 코드는 for 문을 사용하여 내장 LED를 10번 깜빡이게 합니다.
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // 내장 LED를 출력 모드로 설정
}
void loop() {
for (int i = 0; i < 10; i++) {
digitalWrite(LED_BUILTIN, HIGH); // LED 켬
delay(500); // 0.5초 대기
digitalWrite(LED_BUILTIN, LOW); // LED 끔
delay(500); // 0.5초 대기
}
while (true); // 프로그램 종료
}
코드 설명
setup함수에서 내장 LED를 출력 모드로 설정합니다.loop함수에서for문을 사용하여 LED를 10번 깜빡이게 합니다.for문이 끝난 후while (true);문을 사용하여 프로그램을 종료를 표현했습니다.
코드 실행 결과 확인
코드를 실행하면 내장 LED가 10번 깜빡입니다. 깜빡임이 끝나면 LED는 꺼진 상태로 유지됩니다.

영상 촬영하고 옮기는 과정이 쉽지 않아서 시뮬레이션으로 대체했습니다…
주의점
반복문을 사용할 때 조건을 잘못 설정하면 무한 루프에 빠질 수 있습니다. 무한 루프에 빠지면 아두이노가 응답하지 않게 될 수 있으므로, 조건 설정에 주의해야 합니다.
마무리
이번 프로젝트에서는 아두이노를 통해 반복문을 배우고, 이를 활용하여 내장 LED를 깜빡이는 간단한 예제를 만들어 보았습니다. 반복문을 이해하면 더 복잡한 작업도 손쉽게 자동화할 수 있습니다. 앞으로 다양한 프로젝트에서 반복문을 활용할 수 있게 되었군요.