본문 바로가기

아두이노(arduino)

아두이노 기본 문법 for()문을 배워봅시다. led 밝기 조절해보기.

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초 단위로 올라가는 걸 확인할 수 있습니다.