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本のみになります。