/*
    14セグメントLED アノードコモン ドライバー
    Aitendo
      14セグLED表示器with基板 [IFB16SEG8D-A]
      2桁14セグLED表示器(赤色) [TDSN410542K]

    Arduino あちゃんでいいの 内臓クロック8MHz  PINアサイン

    PB0 14seg A
    PB1 14seg B
    PB2 14seg C
    PB3 14seg D
    PB4 14seg E
    PB5 14seg F
    PB6 14seg G1
    PB7 14seg G2

    PC0(A0) 74ACT138 Select A
    PC1(A1) 74ACT138 Select B
    PC2(A2) 74ACT138 Select C
    PC3(A3) 74ACT138 GA2
 

    PD0 14seg H
    PD1 14seg J
    PD2 14seg K
    PD3 14seg L
    PD4 14seg M
    PD5 14seg N
    PD6 14seg Dp
    PD7 NC


    Program By.Tsurutsuru
    Date 2023-12-08
 */


 //14SEGMENT
byte led14seg_07[62]  = {0xC0,0xF9,0x24,0x30,0x1F,0x12,0x02,0xD8,0x00,0x10,
0x08,0x86,0xC6,0x80,0x06,0x0E,0x42,0x09,0xF6,0xE6,0x8F,0xC7,0xC9,0xC9,0xC0,0x0C,0xC0,0x0C,0xF6,0xFE,0xC1,0xCF,0xC9,0xF6,0xFF,0xF6,
0x20,0x03,0x27,0x21,0x04,0x8E,0x70,0x8F,0xFF,0xE1,0xFF,0xCF,0x2B,0x7B,0x23,0x7C,0x9E,0x7F,0x77,0x3F,0xE3,0xEF,0xEB,0xFF,0xFF,0xB7};

byte led14seg_814[62] = {0x7F,0x7F,0x7F,0x7F,0xED,0x7F,0x7F,0x7F,0x7F,0x7F,
0x7F,0x5B,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x6D,0x6D,0x5B,0x7F,0x7A,0x5E,0x7F,0x7F,0x5F,0x5F,0x5E,0x6D,0x7F,0x73,0x57,0x52,0x6A,0x73,
0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7A,0x6F,0x6D,0x7F,0x49,0x7F,0x6F,0x6F,0x7F,0x6D,0x6D,0x6F,0x5F,0x6F,0x7F,0x77,0x57,0x52,0x72,0x77};

  byte dat = 0;
  byte ii;

void setup()
{
  pinMode( 8, OUTPUT); //8番ピンをOUTPUT(出力)に指定(PB0)
  pinMode( 9, OUTPUT); //9番ピンをOUTPUT(出力)に指定(PB1)
  pinMode(10, OUTPUT); //10番ピンをOUTPUT(出力)に指定(PB2)
  pinMode(11, OUTPUT); //11番ピンをOUTPUT(出力)に指定(PB3)
  pinMode(12, OUTPUT); // 12番ピンをOUTPUT(出力)に指定(PB4)
  pinMode(13, OUTPUT); //13番ピンをOUTPUT(出力)に指定(PB5)

  pinMode(20 , OUTPUT); //20番ピンをOUTPUT(出力)に指定(PB6)
  pinMode(21 , OUTPUT); //21番ピンをOUTPUT(出力)に指定(PB7)

  pinMode( 0 , OUTPUT);
  pinMode( 1 , OUTPUT);
  pinMode( 2 , OUTPUT);
  pinMode( 3 , OUTPUT);
  pinMode( 4 , OUTPUT);
  pinMode( 5 , OUTPUT);
  pinMode( 6 , OUTPUT);
  pinMode( 7 , OUTPUT);
/*
ピン番号14=A0
ピン番号15=A1
ピン番号16=A2
ピン番号17=A3
ピン番号18=A4
ピン番号19=A5
*/
  pinMode( 14 , OUTPUT);
  pinMode( 15 , OUTPUT);
  pinMode( 16 , OUTPUT);  
  pinMode( 17 , OUTPUT);

//LED全消灯
  PORTB = 0xFF;
  PORTD = 0x7F;

}



void loop()
{

  for( long wait = 0 ; wait < 2000 ; wait++)
  {
    for(ii=0 ; ii < 8 ; ii++)
    {
      digitalWrite(17, HIGH);

      if (ii == 0)  { digitalWrite(16, HIGH);  digitalWrite(15, HIGH); digitalWrite(14, HIGH);  }
      if (ii == 1)  { digitalWrite(16, HIGH);  digitalWrite(15, HIGH); digitalWrite(14,  LOW);  }
      if (ii == 2)  { digitalWrite(16, HIGH);  digitalWrite(15,  LOW); digitalWrite(14, HIGH);  }
      if (ii == 3)  { digitalWrite(16, HIGH);  digitalWrite(15,  LOW); digitalWrite(14,  LOW);  }
      if (ii == 4)  { digitalWrite(16,  LOW);  digitalWrite(15, HIGH); digitalWrite(14, HIGH);  }
      if (ii == 5)  { digitalWrite(16,  LOW);  digitalWrite(15, HIGH); digitalWrite(14,  LOW);  }
      if (ii == 6)  { digitalWrite(16,  LOW);  digitalWrite(15,  LOW); digitalWrite(14, HIGH);  }
      if (ii == 7)  { digitalWrite(16,  LOW);  digitalWrite(15,  LOW); digitalWrite(14,  LOW);  }


      PORTB = led14seg_07[ii+dat];
      PORTD = led14seg_814[ii+dat];
      digitalWrite(17, LOW);

      delayMicroseconds(500);
 
     }//for ii
  }//wait
  dat=dat+8;

  if(dat > 62) dat=0;

}//loop