아두이노/출력
LED 11개를 이용해서, 빛이 중심에서 갈라졌다 모였다 하기
youjin.A
2016. 2. 8. 22:48
부품:
LED11개, 330옴 저항 11개
회로:
아두이노 디지털 핀 2~12에 각 각 저항과 함께 LED를 연결합니다.
코드:
12345678910111213141516171819202122232425262728293031 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 lightfor(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 lightfor(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번 핀이 꺼집니다.