« Arduinoで作ろう(3) 7セグLEDでカウントアップ | トップページ | Arduinoで作ろう(5) 電子サイコロ »

2018年6月 6日 (水)

Arduinoで作ろう(4) 秋月電子の7セグLED基板

Arduino4

 普通の7セグLEDは配線がタイヘンなので,74HC595を基板に実装したシリアル信号接続の7セグLED基板(秋月電子)を使ってみました。
SDI,SCK,LATCHの3信号で表示ができますから 配線もスッキリです。
 この7セグLEDを使うために,まずSPIライブラリを読み込んでやります。 SPI通信で使うピンは,10(SS),11(MOSI),12(MISO),13(SCK)です。
 通信を始めるときに10ピンをHIGH→LOWにし,11ピンからデータを送り終えたらHIGHに戻します。ライブラリを使うとSPItransfer()でデータを送ると同時に13ピンからクロックも送られます。今回は0~Fをランダムに表示させてみましょう。

スケッチはこちら→ 20180606.ino


あと,今回はArduino nano(中国製の互換ボードですが)を使ってみました。400円弱で手に入りますからたくさん買ってしまいそう(^^;)


/*
秋月電子AE-7SEG-BOARD 0~Fをランダム表示
*/

#include<SPI.h>
#define sck 13
#define latch 10
#define sdi 11

const byte digits[16] = {
0b11111100, // 0
0b01100000, // 1
0b11011010, // 2
0b11110010, // 3
0b01100110, // 4
0b10110110, // 5
0b10111110, // 6
0b11100000, // 7
0b11111110, // 8
0b11110110, // 9
0b11101110, // a
0b00111110, // b
0b10011100, // c
0b01111010, // d
0b10011110, // e
0b10001110, // f
};

void setup() {
pinMode(latch, OUTPUT);
pinMode(sck, OUTPUT);
pinMode(sdi, OUTPUT);
SPI.begin();
SPI.setBitOrder(LSBFIRST);
SPI.setDataMode(0);
}

void loop() {
randomSeed(analogRead(A0));
int randnumber = random(1, 7);
digitalWrite(latch, 0);
SPI.transfer (digits[randnumber]);
digitalWrite(latch, 1);
delay(500);
}

|

« Arduinoで作ろう(3) 7セグLEDでカウントアップ | トップページ | Arduinoで作ろう(5) 電子サイコロ »

Arduino」カテゴリの記事

トラックバック


この記事へのトラックバック一覧です: Arduinoで作ろう(4) 秋月電子の7セグLED基板:

« Arduinoで作ろう(3) 7セグLEDでカウントアップ | トップページ | Arduinoで作ろう(5) 電子サイコロ »