달력

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

부품:

LED11개, 330옴 저항 11개

 

회로:

아두이노 디지털 핀 2~12에 각 각 저항과 함께 LED를 연결합니다.

코드:

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
const int ledpins[]={2,3,4,5,6,7,8,9,10,11,12};
int wait = 50;
 
void setup()
{
  for(int i=0; i<11; i++)
    pinMode(ledpins[i], OUTPUT);
}
 
void loop()
{
  digitalWrite(ledpins[5],HIGH);
  delay(wait*10);
 //separate light
  for(int n=6, m=4; m>=0 ; n++, m--)
   {digitalWrite(ledpins[n],HIGH);
    digitalWrite(ledpins[m],HIGH);
    digitalWrite(ledpins[n-1],LOW);
    digitalWrite(ledpins[m+1],LOW);
    delay(wait);}
 //combine light
  for(int n=9, m=1; m<=5 ;n--,m++)
   {digitalWrite(ledpins[n],HIGH);
    digitalWrite(ledpins[m],HIGH);
    digitalWrite(ledpins[n+1],LOW);
    digitalWrite(ledpins[m-1],LOW);
    delay(wait);} 
 
   digitalWrite(ledpins[5],LOW);
   delay(wait*10);
}

 

 

코드 설명:

loop()함수 내부에서,

우선, 중간에 있는 ledpins[5]하나가 켜집니다.

그 다음,  첫번째 for문에서 변수 n과 m에 의해서

n은 10<-5가 되고, m은 5->0가 되기 때문에 빛이 양 끝으로 갈라지게 됩니다.

그 다음, 두번째 for문에서 n과 m의 초기값은 각 각 9와 1이고

n은 9->5가 되고, m은 5<-1이 되기 때문에 빛이 중앙으로 모이게 됩니다.

중앙으로 모인 후에는, 5번 핀이 꺼집니다.

[출처] [디지털출력] 3|작성자 DEW


:
Posted by youjin.A