본문 바로가기
IOT 로봇 아두이노/아두이노 기본센서 연결하기

[아두이노 기초] 세븐 세그먼트 4자리

by Jango_infoinno 2021. 6. 1.

이전에 했던 세븐 세그먼트 한자리를 보고오시면 세븐세그먼트 4자리를 이해하는데 도움이 됩니다.

 

[아두이노 기초] 14. 세븐 세그먼트

목차 1) 7 세그먼트란? 2) 출력 방식 3) 숫자 출력하기 4) 버튼 활용하기 1) 7 세그먼트란? 7세그먼트 표시 장치(Seven-segment display)는 표시 장치의 일종으로, 7개의 획으로 숫자나 문자를 나타낼 수

infoinno.tistory.com

목차
1) 세븐세그먼트 4자리
2) 코드 및 결선도

 

1) 세븐세그먼트 4자리

 

 

2) 코드 및 결선도

 

 

int digit_select_pin[] = {10,11,12,13};
int segment_pin[] = {2,3,4,5,6,7,8,9};
//자릿수 표현 사이의 지연 시간, ms 단위
int time_delay = 5;

byte digits_data[10]={0xFC, 0x60, 0xDA, 0xF2, 
0x66, 0xB6, 0xBE, 0xE4, 0xFE, 0xE6};
 
void setup()
{
  for(int i = 0; i < 4; i++)
  {
    pinMode(digit_select_pin[i], OUTPUT);
  }
  for(int i = 0; i < 8; i++)
  {
    pinMode(segment_pin[i], OUTPUT);
  }
}

void show_digit(int pos, int number)
{
  for(int i = 0; i < 4; i++)
  {
    if(i+1 ==pos)
      digitalWrite(digit_select_pin[i], LOW);
    else
      digitalWrite(digit_select_pin[i], HIGH);
  }
  for(int i = 0; i < 8; i++)
  {
    byte segment_data = (digits_data[number] 
    & (0x01 << i)) >> i;
    if(segment_data == 1)
      digitalWrite(segment_pin[7-i], HIGH);
    else
      digitalWrite(segment_pin[7-i], LOW);
  }
}
void loop()
{
  show_digit(1, 1);
  delay(time_delay);
  show_digit(2, 2);
  delay(time_delay);
  show_digit(3, 3);
  delay(time_delay);
  show_digit(4, 4);
  delay(time_delay);
}

 

 

반응형

댓글