달력

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

회로:

코드1:
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};
int wait = 100;
 
void setup()
{
for(int i=0; i<6; i++)
   pinMode(ledpins[i], OUTPUT);
 
//first of all, make ledpins[0] HIGH
digitalWrite(ledpins[0], HIGH);
delay(wait);
}
 
 void loop()
{
  //moving left
  for(int i =1; i<=5; i++)
  {
    digitalWrite(ledpins[i], HIGH);
    digitalWrite(ledpins[i-1], LOW);
    delay(wait);
   }
  //moving right
  for(int i =4; i>=0 ; i--)
   {
    digitalWrite(ledpins[i], HIGH);
    digitalWrite(ledpins[i+1], LOW);
    delay(wait);
   }
}

 

코드1 설명:

우선, setup()부분에서 ledpins[0]가 켜집니다.

그 다음, loop()부분에서

첫번째 for문에 의해서 ledpins[1]~ledpins[5]까지 순서대로 왼쪽으로 켜지고,

두번째 for문에 의해서 ledpins[4]~ledpins[0]까지 순서대로 오른쪽으로 켜집니다.  

아래의 두 코드도 코드1과 원리는 같습니다~ 

 

기타코드:

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
32
const int ledpins[] = {2, 3, 4, 5, 6, 7};
const int wait = 20;
 
void setup()
{
  for(int led = 0; led <N; led++)
    pinMode(ledpins[led], OUTPUT);
}
 
void loop()
{
  //moving left
  for(int led = 0; led <=4 ; led++)
     {
      digitalWrite(ledpins[led], HIGH);
      delay(wait);
      digitalWrite(ledpins[led+1], HIGH);
      delay(wait);
      digitalWrite(ledpins[led], LOW);
      delay(wait*2);
      }
  //moving right 
   for(int led = 5; led >=1; led--)
      {  
      digitalWrite(ledpins[led], HIGH);
      delay(wait);
      digitalWrite(ledpins[led-1], HIGH);
      delay(wait);
      digitalWrite(ledpins[led], LOW);
      delay(wait*2);
      }
}

 

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
32
33
34
35
const int ledpins[] = {2, 3, 4, 5, 6, 7};
int wait = 50;
 
 
void setup()
{
  for(int led = 0; led < SIZE; led++)
  {
    pinMode(ledpins[led], OUTPUT);
  }
  
 digitalWrite(ledpins[0], HIGH);
 delay(wait);  
}
 
 
void loop()
{
  //moving left  
  for(int led = 0; led <=4 ; led++)
     {
     digitalWrite(ledpins[led+1], HIGH);
     delay(wait);
     digitalWrite(ledpins[led], LOW);
     delay(wait*3);
     }
   //moving right
   for(int led = 5; led >= 1; led--)
     {
     digitalWrite(ledpins[led-1], HIGH);
     delay(wait);
     digitalWrite(ledpins[led], LOW);
     delay(wait*3);
     }

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


:
Posted by youjin.A