« Arduinoで作ろう(4) 秋月電子の7セグLED基板 | トップページ | Arduinoで作ろう(6) LM35DZで温度計 »

2018年6月 7日 (木)

Arduinoで作ろう(5) 電子サイコロ

Arduino5

昨日のブレッドボードにタクトスイッチをつけて電子サイコロにしてみました。
randomSeedは乱数を初期化する関数で,A0ピンに加わっているノイズの電圧で乱数を初期化しています。
random(m,n)はmとn-1の間の乱数を返す関数です。

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


/*
秋月AE-7SEG-BOARDで電子サイコロ
*/

#include<SPI.h>
#define SW 12
#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() {
if (digitalRead(SW) == LOW)
{
for (int i = 0; i < 30; i ++) {

digitalWrite(latch, 0);
SPI.transfer (digits[i % 7]);
digitalWrite(latch, 1);

delay(50);
}
randomSeed(analogRead(A0));
int randnumber = random(1, 7);

digitalWrite(latch, 0);
SPI.transfer (digits[randnumber]);
digitalWrite(latch, 1);

}
}

| |

« Arduinoで作ろう(4) 秋月電子の7セグLED基板 | トップページ | Arduinoで作ろう(6) LM35DZで温度計 »

Arduino」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: Arduinoで作ろう(5) 電子サイコロ:

« Arduinoで作ろう(4) 秋月電子の7セグLED基板 | トップページ | Arduinoで作ろう(6) LM35DZで温度計 »