아두이노/출력

LED 11개를 이용해서, 빛이 중심에서 갈라졌다 모였다 하기

youjin.A 2016. 2. 8. 22:48

부품:

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