본문 바로가기

프로그래밍/Arduino

카운터 만들기

  1. 준비물
    - 7segment 1개
    - 220Ω 저항 1개


  2. 코드
  3. //카운터 출력을 위한 값
    byte digits[10][7] =
    {
      {1, 1, 1, 1, 1, 1, 0}, //0
      {0, 1, 1, 0, 0, 0, 0}, //1
      {1, 1, 0, 1, 1, 0, 1}, //2
      {1, 1, 1, 1, 0, 0, 1}, //3
      {0, 1, 1, 0, 0, 1, 1}, //4
      {1, 0, 1, 1, 0, 1, 1}, //5
      {0, 0, 1, 1, 1, 1, 1}, //6
      {1, 1, 1, 0, 0, 0, 0}, //7
      {1, 1, 1, 1, 1, 1, 1}, //8
      {1, 1, 1, 0, 0, 1, 1}  //9
    };
    
    void setup() {
      //핀모드 설정
      for (int i = 2 ; i < 10 ; i++) {
        pinMode(i, INPUT);
      }
    
      //dot를 끄기 위함
      digitalWrite(9, LOW);
    }
    
    void loop() {
      //순서대로 출력
      for (int i = 0 ; i < 10 ; i++) {
        displayDigit(i);
        delay(1000);
      }
    }
    
    void displayDigit(int num) {
      int pin = 2;
      for (int i = 0 ; i < 7 ; i++) {
        digitalWrite(pin + i, digits[num][i]);
      }
    }
    


  4. 영상



  5. 알게된 점
    - anode / cathod 구별 법
       1) 가운데 pin(VCC) 5V에 연결, 나머지 pin GND에 연결, LED에 불이 켜지면 anode
       2) 가운데 pin(GND) GND에 연결, 나머지 pin 5V에 연결, LED에 불이 켜지면 cathod 

    - anode 타입
       1) 가운데 pin(VCC) 5V에 연결
       2) 가운데 pin(VCC)에서 각 pin으로 전류 이동
       3) 각 pin의 출력값에 따른 LED ON/OFF
          1] LOW(0) → LED ON
          2] HIGH(1) → LED OFF

  6. <그림1. anode 타입 회로도>


    - cathod 타입
       1) 가운데 pin(GND)을 GND에 연결
       2) 각 pin에서 가운데 pin(GND)으로 전류 이동
       3) 각 pin의 출력값에 따른 LED ON/OFF
          1] LOW(0) → LED OFF
          2] HIGH(1) → LED ON


    <그림2. cathod 타입 회로도>


    - 7 Segment의 핀마다 담당하는 LED 및 역할


    - 타입 별 counter를 위한 pin 값

     

    common - anode

    common - cathod

     pin 
    num

    A

    B

    C

    D

    E

    F

    G

    Dot

    VCC

    A

    B

    C

    D

    E

    F

    G

    Dot

    GND

    0

    0

    0

    0

    0

    0

    0

    1

     1

    5V

    1

    1

    1

    1

    1

    1

    0

    0

    GND

    1

    1

    0

    0

    1

    1

    1

    1

    0

    1

    1

    0

    0

    0

    0

    2

    0

    0

    1

    0

    0

    1

    0

    1

    1

    0

    1

    1

    0

    1

    3

    0

    0

    0

    0

    1

    1

    0

    1

    1

    1

    1

    0

    0

    1

    4

    1

    0

    0

    1

    1

    0

    0

    0

    1

    1

    0

    0

    1

    1

    5

    0

    1

    0

    0

    1

    0

    0

    1

    0

    1

    1

    0

    1

    1

    6

    1

    1

    0

    0

    0

    0

    0

    0

    0

    1

    1

    1

    1

    1

    7

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1

    0

    0

    0

    0

    8

    0

    0

    0

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1

    9

    0

    0

    0

    1

    1

    0

    0

    1

    1

    1

    0

    0

    1

    1

    Dot

     상관없음

    상관없음