반응형

a - 디지털 3번

b- 디지털 4번

c - 디지털 5번

d - 디지털 6번

e - 디지털 7번

f - 디지털 8번

g - 디지털 9번

dp - 디지털 10번

애노드형을 사용하기 때문에 '0'신호에 불이 켜지고 '1'신호에 불이 꺼집니다.

예를들어 세그먼트에 2를 표시하고 싶으면 a,b,g,e,d 에 '0'신호를 주고 나머지에는 '1'신호를 주게되면 2가 표시됩니다.

준비물

----------------------------------------------------------

아두이노 우노, 470옴 저항 (혹은 330옴 저항), 7-세그먼트

회로도

----------------------------------------------------------

소스코드

----------------------------------------------------------

int arr[]={3,4,5,6,7,8,9,10};
//arr{a,b,c,d,e,f,g,.}

void setup()
{

for(int i=0; i<8; i++)
{
pinMode(arr[i],OUTPUT);
}

digitalWrite(arr[0],0);
digitalWrite(arr[1],0);
digitalWrite(arr[2],0);
digitalWrite(arr[3],0);
digitalWrite(arr[4],1);
digitalWrite(arr[5],0);
digitalWrite(arr[6],0);
digitalWrite(arr[7],1);
}

void loop()
{
}

결과사진

----------------------------------------------------------

 

++<0부터 9까지 1씩 증가 예제>

소스코드

----------------------------------------------------------

int arr[]={3,4,5,6,7,8,9,10};
//arr{a,b,c,d,e,f,g,.}

int segment[10][7]={{0,0,0,0,0,0,1}, //0
                    {1,0,0,1,1,1,1}, //1
                    {0,0,1,0,0,1,0}, //2
                    {0,0,0,0,1,1,0}, //3
                    {1,0,0,1,1,0,0}, //4
                    {0,1,0,0,1,0,0}, //5
                    {0,1,0,0,0,0,0}, //6
                    {0,0,0,1,1,1,1}, //7
                    {0,0,0,0,0,0,0}, //8
                    {0,0,0,0,1,0,0}  //9
                   };
    
void setup()
{
  for(int i=0; i<8; i++)
  {
    pinMode(arr[i],OUTPUT);
  }

}

void loop()
{
  for(int i=0; i<10; i++)
  {
    for(int j=0; j<7; j++)
    {
      digitalWrite(arr[j],segment[i][j]);
    }
    delay(500);
  }
}

결과영상

----------------------------------------------------------

 

 

반응형

+ Recent posts