달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2016. 2. 8. 22:42

기본 1개짜리 아날로그 출력 아두이노/출력2016. 2. 8. 22:42

문제:
LED를 점점 밝아졌다가 어두워졌다 하도록 만들고 싶어요.
 
회로:
 
 
코드1: 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const int led = 3;
int brightness = 0 , i;
 
void setup()
{
}
 
void loop()
{
 if(brightness  < 1)
 i = 1;
 else if(brightness > 254)
 i = -1;
 //light LED as brightness
 analogWrite(led, brightness);
 delay(10);
 
 brightness = brightness + i;
}

 

코드 설명:

loop()함수에서 맨 처음 brightness값은 0이지요?

그래서 if문에 의해서 i=0이 됩니다.

brightness = brightness + i에 의해서 brightness값이 점점 증가하다가,

brightness값이 255가 되면 i=-1이 되어,

brightness값이 점점 감소하게 됨니다.

그리고 다시 brightness값이 0이되면 i=1이되어,

brightness값이 점점 증가하게 됩니다.

 

코드2: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const int led = 3 ;
 
void setup()
{  
}
 
void loop()
{
 for(int i=0; i<255; i++)
  {analogWrite( led, i);
   delay(10);}
 
 for(int i= 255; i>0; i--)
  {analogWrite( led, i);
   delay(10);}

 

코드2 설명:

첫번째 for문에서 i값이 점점 증가합니다.

i가 255가 되면 첫번째 for문은 끝나고

두번째 for문이 시작됩니다.

두번째 for문에서 i값이 점점 감소합니다.

i가 0이 되면 두번째 for문은 끝나고

첫번째 for문이 시작됩니다. 


:
Posted by youjin.A