7segduino Application (4) 8桁化7segduino 8-digit
2012 年 10 月 20 日
7segduinoは標準で4桁ですが、自分で配線することで8桁化することが出来ます。
8桁化の方法を紹介します。
1. パーツ
7segduinoキット一式
同色のLED 1個
2. 組み立て方
・4桁の普通の7segduinoを組み立てて、動作の確認をしておきます。
・4桁の7segモジュールを接着します。その際に正面から見て右にモジュールを持って来るようにします。
・次の実態配線図に従って配線します。
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本のみになります。


