아두이노 POKE C 7세그먼트-0.5초마다 숫자 1 증가 프로그램

아두이노 POKE C 의 7세그먼트를 이용하여 0.5초마다 숫자가 1씩 증가 하는 프로그램이다.

<사진>

<코드>
int pin_FND[8] = {5, 6, 8, 9, 10, 11, 12, 13};
void FND_out(unsigned char);

void setup() {
  // put your setup code here, to run once:
  unsigned char i;
  for(i = 0; i < 8; i++)
  {
    pinMode(pin_FND[i], OUTPUT);
  }
}

void loop() {
  // put your main code here, to run repeatedly:
  FND_out(0);
  delay(500);
  FND_out(1);
  delay(500);
  FND_out(2);
  delay(500);
  FND_out(3);
  delay(500);
  FND_out(4);
  delay(500);
  FND_out(5);
  delay(500);
  FND_out(6);
  delay(500);
  FND_out(7);
  delay(500);
  FND_out(8);
  delay(500);
  FND_out(9);
  delay(500);
}

void FND_out(unsigned char data)
{
  switch (data) {
    case 0 :
      digitalWrite(pin_FND[7], 0);
      digitalWrite(pin_FND[6], 0);
      digitalWrite(pin_FND[5], 1);
      digitalWrite(pin_FND[4], 1);
      digitalWrite(pin_FND[3], 1);
      digitalWrite(pin_FND[2], 1);
      digitalWrite(pin_FND[1], 1);
      digitalWrite(pin_FND[0], 1);
      break;

    case 1 :
      digitalWrite(pin_FND[7], 0);
      digitalWrite(pin_FND[6], 0);
      digitalWrite(pin_FND[5], 0);
      digitalWrite(pin_FND[4], 0);
      digitalWrite(pin_FND[3], 0);
      digitalWrite(pin_FND[2], 1);
      digitalWrite(pin_FND[1], 1);
      digitalWrite(pin_FND[0], 0);
      break;

    case 2 :
      digitalWrite(pin_FND[7], 0);
      digitalWrite(pin_FND[6], 1);
      digitalWrite(pin_FND[5], 0);
      digitalWrite(pin_FND[4], 1);
      digitalWrite(pin_FND[3], 1);
      digitalWrite(pin_FND[2], 0);
      digitalWrite(pin_FND[1], 1);
      digitalWrite(pin_FND[0], 1);
      break;

    case 3 :
      digitalWrite(pin_FND[7], 0);
      digitalWrite(pin_FND[6], 1);
      digitalWrite(pin_FND[5], 0);
      digitalWrite(pin_FND[4], 0);
      digitalWrite(pin_FND[3], 1);
      digitalWrite(pin_FND[2], 1);
      digitalWrite(pin_FND[1], 1);
      digitalWrite(pin_FND[0], 1);
      break;

    case 4 :
      digitalWrite(pin_FND[7], 0);
      digitalWrite(pin_FND[6], 1);
      digitalWrite(pin_FND[5], 1);
      digitalWrite(pin_FND[4], 0);
      digitalWrite(pin_FND[3], 0);
      digitalWrite(pin_FND[2], 1);
      digitalWrite(pin_FND[1], 1);
      digitalWrite(pin_FND[0], 0);
      break;

    case 5 :
      digitalWrite(pin_FND[7], 0);
      digitalWrite(pin_FND[6], 1);
      digitalWrite(pin_FND[5], 1);
      digitalWrite(pin_FND[4], 0);
      digitalWrite(pin_FND[3], 1);
      digitalWrite(pin_FND[2], 1);
      digitalWrite(pin_FND[1], 0);
      digitalWrite(pin_FND[0], 1);
      break;

    case 6 :
      digitalWrite(pin_FND[7], 0);
      digitalWrite(pin_FND[6], 1);
      digitalWrite(pin_FND[5], 1);
      digitalWrite(pin_FND[4], 1);
      digitalWrite(pin_FND[3], 1);
      digitalWrite(pin_FND[2], 1);
      digitalWrite(pin_FND[1], 0);
      digitalWrite(pin_FND[0], 1);
      break;

    case 7 :
      digitalWrite(pin_FND[7], 0);
      digitalWrite(pin_FND[6], 0);
      digitalWrite(pin_FND[5], 1);
      digitalWrite(pin_FND[4], 0);
      digitalWrite(pin_FND[3], 0);
      digitalWrite(pin_FND[2], 1);
      digitalWrite(pin_FND[1], 1);
      digitalWrite(pin_FND[0], 1);
      break;

    case 8 :
      digitalWrite(pin_FND[7], 0);
      digitalWrite(pin_FND[6], 1);
      digitalWrite(pin_FND[5], 1);
      digitalWrite(pin_FND[4], 1);
      digitalWrite(pin_FND[3], 1);
      digitalWrite(pin_FND[2], 1);
      digitalWrite(pin_FND[1], 1);
      digitalWrite(pin_FND[0], 1);
      break;

    case 9 :
      digitalWrite(pin_FND[7], 0);
      digitalWrite(pin_FND[6], 1);
      digitalWrite(pin_FND[5], 1);
      digitalWrite(pin_FND[4], 0);
      digitalWrite(pin_FND[3], 1);
      digitalWrite(pin_FND[2], 1);
      digitalWrite(pin_FND[1], 1);
      digitalWrite(pin_FND[0], 1);
      break;

    default:
      break;
  }
}

댓글

댓글 쓰기