for() 문이란?
오늘 for()을 배우기 위해 led로 진행해보려 합니다.
led 켜고 끄기 알아보기 링크는 아래 링크로 이동하시면 됩니다.
2023.01.03 - [아두이노(arduino)] - 아두이노 digitalWrite (디지털 출력)와 delay로 led 제어 심화
아두이노 digitalWrite (디지털 출력) 와 delay로 led 제어 심화
delay 함수를 이용한 led 제어 이전 포스팅에서는 아두이노보드에 내장되어 있는 led를 이용해 간단하게 켜고 끄는 걸 진행해 봤습니다. 2023.01.02 - [아두이노(arduino)] - 아두이노 digitalWrite(디지털라
ronco.tistory.com
그전에 for() 문을 알아야 수월하게 원하는 행동을 제어할 수 있습니다.
for() 문은 어떠한 행동을 반복하기 위해 사용됩니다.
현실생활에서 예를 한번 들어볼까요?
내가 물류회사 직원이라고 가정해 볼게요.
오늘 오전에 들어오는 옷이 10벌이라고 보고를 받고 옷이 들어올 때마다 노트에 숫자를 표기합니다.
내가 보고받은 옷이 총 10벌 들어온다고 했으니 10벌이 다 들어올 때까지 지속적으로 노트에 숫자를 표기하게 되는 거겠죠?
코드로 표현해 보면 이러합니다.
for( ① 입고되는 옷의 수 = 10벌 ; ② 입고된 옷의 숫자 <= 10 ; ④ 옷이 한벌씩 입고 )
{
③ 노트에 들어온 옷의 수를 표기한다.
}
①을 보면 처음 보고 받은 옷의 수를 나타냅니다. 옷의 수의 더 많으면 해당 수를 수정하면 되겠죠? for()에서 제일 먼저 하는 행동입니다. 반복해야 될 수를 지정하는 일인 거죠.
②는 현재 내가 파악한 옷의 수가 보고받은 숫자가 넘어서지 않았는지 체크하는 단계입니다. 10벌이 입고된다고 했으니 10보다 넘으면 이상한 거겠죠?
(<= 는 이하라는 뜻입니다. < 미만, > 초과, >= 이상, ==같다,!= 같지 않다)
③은 입고된 옷의 수를 노트에 표기합니다.
그런 다음 ④는 옷이 입고되는 것을 뜻합니다.
이런 식으로 반복되는데 여기서 중요한 점은 다시 ①번으로 돌아가지 않는다는 것입니다. 최초 옷이 몇 벌 들어온다고 설정하는 단계에기 때문에 다시 ①번으로 돌아갈 필요가 없는 것이며, ②번부터 시작해 ④번까지 계속 반복하게 됩니다.
언제까지 반복하게 될까요??
입고된 옷이 최초 보고받은 옷의 수량이랑 동일해질 때까지 반복하는 것입니다.
즉, 내가 원하는 횟수만큼 반복하기 위해 많이 사용됩니다.
횟수반복이란 뜻이죠!!
for() 문 이용해 led 밝기 조절해 보기
void setup()
{
pinMode(13, OUTPUT); // 13번 핀에 led를 연결했고 출력핀으로 설정
Serial.begin(9600); // 시리얼모니터를 사용하기 위해 설정 (데이터 송수신 속도 설정)
}
void loop()
{
for( int brightness = 0; brightness <= 255 ; brightness++){ // led 밝기를 최대한(255) 밝히고 다시 0에서 다시 시작
analogWrite(13, brightness); // led불을 켠다(brightness의 숫자 크기만큼)
delay(20); // 0.02초만큼 기다린다.
Serial.println(brightness); // 시리얼모니터에 brightness의 수를 출력한다.
}
}
잘 구동되는지 확인해 볼까요?
led의 밝기가 다시 아쉬운 부분이네요 ㅠㅠ
실제로는 점점 밝아지는 모습을 선명하게 볼 수 있습니다.
사용된 저항은 220옴인데 좀 낮은 저항을 사용하니 밝아지는 걸 확인할 수 있었습니다. 보통 아두이노로 led제어할 때 220옴을 많이 사용하는데 팅커캐드에서 사용하니 밝아지는 모습을 잘 볼 수가 없네요.
아래 시리얼모니터에서 밝기가 0.02초 단위로 올라가는 걸 확인할 수 있습니다.
'아두이노(arduino)' 카테고리의 다른 글
아두이노 기본 문법 if()문을 배워봅시다. (0) | 2023.02.23 |
---|---|
아두이노 기본 문법 while()문을 배워봅시다. (0) | 2023.02.15 |
아두이노 적외선센서 원리와 사용방법 / 예제 (1) | 2023.02.01 |
아두이노 부저(BUZZER) 사용 / 능동부저 , 수동부저 차이점 (0) | 2023.01.25 |
아두이노 조도센서(빛 센서 / 포토레지스터) 알아보기 / 사용법 (1) | 2023.01.18 |