7segduino Application (4) 8桁化

2012年10月20日

7segduinoは標準で4桁ですが、自分で配線することで8桁化することが出来ます。

8桁化の方法を紹介します。

8桁の7segduino

8桁の7segduino

1. パーツ

7segduinoキット一式

同色のLED 1個

2. 組み立て方

・4桁の普通の7segduinoを組み立てて、動作の確認をしておきます。

・4桁の7segモジュールを接着します。その際に正面から見て右にモジュールを持って来るようにします。

・次の実態配線図に従って配線します。

7segdgino 8桁配線図

7segdgino 8桁配線図

3. 利用方法

ssegライブラリは8桁までサポートしていますので、初期化部分を変更するだけで利用出来ます。


/*** Hello 7seg 2digit

SEG-A(11)    PD4    4
SEG-B(7)     PB0    8
SEG-C(4)     PB3    11
SEG-D (2)    PB5    13
SEG-E(1)     PC0    14
SEG-F(10)    PD2    2
SEG-G(5)     PB2    10
SEG-DP(3)    PB4    12

DIG-1(12)    PD3    3
DIG-2(9)     PD6    6
DIG-3(8)     PD7    7
DIG-4(6)     PB1    9
DIG-5(12)    PC1    15
DIG-6(9)     PC2    16
DIG-7(8)     PC3    17
DIG-8(6)     PC4    18
 */

#include <Sseg.h>

Sseg mySseg = Sseg(4, 8, 11, 13, 14, 2, 10, 12, 3, 6, 7, 9, 15, 16, 17, 18);

uint8_t hello[] = {
 0b00000000,
 0b00000000,
 0b00000000,
 0b00000000,
 0b01101110, // H
 0b10011110, // E
 0b00011100, // L
 0b00011100, // L
 0b00111010, // o
 0b00000000, //
 NUM_PAT_7,  // 7
 0b10110110, // S
 NUM_PAT_E,  // E
 0b11110110, // G
 0b00000001
};

int p = 0;
void setup()
{
 mySseg.begin();
}

#define OVERWRAP(a, x) (((x) < sizeof(a)) ? (a[(x)]) : a[((x) - sizeof(a))])
void loop()
{
 uint8_t i;
 if ((++p) > sizeof(hello))
 p = 0;
 for (i = 0 ; i <4; i++) {
 mySseg.writeRawData(
 OVERWRAP(hello, p),
 OVERWRAP(hello, p+1),
 OVERWRAP(hello, p+2),
 OVERWRAP(hello, p+3),
 OVERWRAP(hello, p+4),
 OVERWRAP(hello, p+5),
 OVERWRAP(hello, p+6),
 OVERWRAP(hello, p+7));
 }

 mySseg.updateWithDelay(300);

}

4. 制限事項

A1-A4を利用してしまいますので、残りで使えるピンが2本のみになります。

7segduino 8digits 裏面

7segduino 8digits 裏面

コメントは受け付けていません。