Arduino

디스플레이 : FND 4개 사용하기

작성자 임베디드코리아 작성일25-05-16 00:18 조회152회 댓글0건

첨부파일

<* FND 4개 사용 *>
-FND 4개를 선택하여 숫자를 나나낸다

---- < FND 4개 소스 코드 > -----------------------------------------------------
int FndA = 12;  //  12번 핀과 7세그먼트의 A핀이 연결
int FndB = 8;  //  8번 핀과 7세그먼트의 B핀이 연결
int FndC = 4;  //  5번 핀과 7세그먼트의 C핀이 연결
int FndD = 6;  // 6번 핀과 7세그먼트의 D핀이 연결
int FndE = 7;  // 7번 핀과 7세그먼트의 E핀이 연결
int FndF = 11;  //11번 핀과 7세그먼트의 F핀이 연결
int FndG = 3;  //3번 핀과 7세그먼트의 G핀이 연결
int FndDP = 5;  // 5번 핀과 7세그먼트의 DP핀이 연결

int FndD1 = 13;  // 13번 핀과 7세그먼트의 DP핀이 연결
int FndD2 = 10;  // 10번 핀과 7세그먼트의 DP핀이 연결
int FndD3 = 9;  // 9번 핀과 7세그먼트의 DP핀이 연결
int FndD4 = 2;  // 2번 핀과 7세그먼트의 DP핀이 연결

int delaytime =1;//FND 유지 시간

void DisplayNumber(int number) {
  if(number == 0) {     
    digitalWrite(FndA, HIGH);//아두이노 출력 HIGH
    digitalWrite(FndB, HIGH);//아두이노 출력 HIGH
    digitalWrite(FndC, HIGH);//아두이노 출력 HIGH
    digitalWrite(FndD, HIGH);//아두이노 출력 HIGH
    digitalWrite(FndE, HIGH);//아두이노 출력 HIGH
    digitalWrite(FndF, HIGH);//아두이노 출력 HIGH
    digitalWrite(FndG, LOW);//아두이노 출력 HIGH
  }
  else if(number == 1) { 
    digitalWrite(FndA, LOW);
    digitalWrite(FndB, HIGH);
    digitalWrite(FndC, HIGH);
    digitalWrite(FndD, LOW);
    digitalWrite(FndE, LOW);
    digitalWrite(FndF, LOW);
    digitalWrite(FndG, LOW);
  }
  else if(number == 2) { 
    digitalWrite(FndA, HIGH);
    digitalWrite(FndB, HIGH);
    digitalWrite(FndC, LOW);
    digitalWrite(FndD, HIGH);
    digitalWrite(FndE, HIGH);
    digitalWrite(FndF, LOW);
    digitalWrite(FndG, HIGH);
  }
  else if(number == 3) { 
    digitalWrite(FndA, HIGH);
    digitalWrite(FndB, HIGH);
    digitalWrite(FndC, HIGH);
    digitalWrite(FndD, HIGH);
    digitalWrite(FndE, LOW);
    digitalWrite(FndF, LOW);
    digitalWrite(FndG, HIGH);
  }
  else if(number == 4) { 
    digitalWrite(FndA, LOW);
    digitalWrite(FndB, HIGH);
    digitalWrite(FndC, HIGH);
    digitalWrite(FndD, LOW);
    digitalWrite(FndE, LOW);
    digitalWrite(FndF, HIGH);
    digitalWrite(FndG, HIGH);
  }
  else if(number == 5) { 
    digitalWrite(FndA, HIGH);
    digitalWrite(FndB, LOW);
    digitalWrite(FndC, HIGH);
    digitalWrite(FndD, HIGH);
    digitalWrite(FndE, LOW);
    digitalWrite(FndF, HIGH);
    digitalWrite(FndG, HIGH);
  }
  else if(number == 6) { 
    digitalWrite(FndA, LOW);
    digitalWrite(FndB, LOW);
    digitalWrite(FndC, HIGH);
    digitalWrite(FndD, HIGH);
    digitalWrite(FndE, HIGH);
    digitalWrite(FndF, HIGH);
    digitalWrite(FndG, HIGH);
  }
  else if(number == 7) { 
    digitalWrite(FndA, HIGH);
    digitalWrite(FndB, HIGH);
    digitalWrite(FndC, HIGH);
    digitalWrite(FndD, LOW);
    digitalWrite(FndE, LOW);
    digitalWrite(FndF, HIGH);
    digitalWrite(FndG, LOW);
  }
  else if(number == 8) { 
    digitalWrite(FndA, HIGH);
    digitalWrite(FndB, HIGH);
    digitalWrite(FndC, HIGH);
    digitalWrite(FndD, HIGH);
    digitalWrite(FndE, HIGH);
    digitalWrite(FndF, HIGH);
    digitalWrite(FndG, HIGH);
  }
  else if(number == 9) { 
    digitalWrite(FndA, HIGH);
    digitalWrite(FndB, HIGH);
    digitalWrite(FndC, HIGH);
    digitalWrite(FndD, LOW);
    digitalWrite(FndE, LOW);
    digitalWrite(FndF, HIGH);
    digitalWrite(FndG, HIGH);
  }
 
}

void ClearLed()
{
    digitalWrite(FndA, LOW);
    digitalWrite(FndB, LOW);
    digitalWrite(FndC, LOW);
    digitalWrite(FndD, LOW);
    digitalWrite(FndE, LOW);
    digitalWrite(FndF, LOW);
    digitalWrite(FndG, LOW);

  digitalWrite(FndD4, HIGH);
  digitalWrite(FndD3, HIGH);
  digitalWrite(FndD2, HIGH);
  digitalWrite(FndD1, HIGH);
}
void Display4Number(int number)
{
  ClearLed();//FND 모두 끄기
 
  DisplayNumber( (number / 1000) % 10);
  digitalWrite(FndD1, LOW);// FND_D1 켜기
  delay(delaytime); //유지 시간
  digitalWrite(FndD1, HIGH);// FND_D1 끄기
  DisplayNumber( (number / 100) % 10);
  digitalWrite(FndD2, LOW);// FND_D2 켜기
  delay(delaytime);
  digitalWrite(FndD2, HIGH);// FND_D1 끄기
  DisplayNumber((number / 10) % 10);
  digitalWrite(FndD3, LOW);
  delay(delaytime);
  digitalWrite(FndD3, HIGH);// FND_D3 끄기

  DisplayNumber( number % 10);
  digitalWrite(FndD4, LOW);
  delay(delaytime);
  digitalWrite(FndD4, HIGH);// FND_D4 끄기


}

void setup() {
    pinMode(FndA, OUTPUT);//아두이노 출력핀 설정
    pinMode(FndB, OUTPUT);//아두이노 출력핀 설정
    pinMode(FndC, OUTPUT);//아두이노 출력핀 설정
    pinMode(FndD, OUTPUT);//아두이노 출력핀 설정
    pinMode(FndE, OUTPUT);//아두이노 출력핀 설정
    pinMode(FndF, OUTPUT);//아두이노 출력핀 설정
    pinMode(FndG, OUTPUT);//아두이노 출력핀 설정
    pinMode(FndDP, OUTPUT);//아두이노 출력핀 설정
    pinMode(FndD1, OUTPUT);//아두이노 출력핀 설정
    pinMode(FndD2, OUTPUT);//아두이노 출력핀 설정
    pinMode(FndD3, OUTPUT);//아두이노 출력핀 설정
    pinMode(FndD4, OUTPUT);//아두이노 출력핀 설정
}

void loop() {
    Display4Number(1234);//4FND ==> i숫자 표시
}