/*
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