Arduinoで作ろう(35) 8x8ドットマトリクスLEDで電子サイコロ
MAX7219というLEDディスプレイドライバが載った8x8ドットマトリクスLEDモジュールを手に入れたので,試しに電子サイコロを作ってみました。
このサイトで手に入れた LedControl.h というライブラリを使います。
タクトスイッチを押すと,くるくる回っているサイコロが止まります。というか,ランダムでサイコロの数字が決まります。
スケッチはコレ→ max7219_8x8_dice.ino
/*
* MAX7219+8x8dotMatrixLED 電子サイコロ
*/
#include <LedControl.h>
int DIN = 8;
int CS = 9;
int CLK = 10;
byte dice[6][8]={
{0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00}, //1
{0x03,0x03,0x00,0x00,0x00,0x00,0xC0,0xC0}, //2
{0x03,0x03,0x00,0x18,0x18,0x00,0xC0,0xC0}, //3
{0xC3,0xC3,0x00,0x00,0x00,0x00,0xC3,0xC3}, //4
{0xC3,0xC3,0x00,0x18,0x18,0x00,0xC3,0xC3}, //5
{0xC3,0xC3,0x00,0xC3,0xC3,0x00,0xC3,0xC3} //6
};
LedControl lc=LedControl(DIN,CLK,CS,1);void setup(){
lc.shutdown(0,false);
lc.setIntensity(0,5);
lc.clearDisplay(0);
}void loop(){
if (digitalRead(12) == HIGH){
for (int i = 0; i < 6; i ++) {
printByte(dice[i]);
delay(50);
}
}
else{
randomSeed(analogRead(A0));
int randnumber = random(0, 5);
printByte(dice[randnumber]);
delay(3000);
}
}void printByte(byte character []){
int i = 0;
for(i=0;i<8;i++){
lc.setRow(0,i,character[i]);
}
}
| 固定リンク | 0
「Arduino」カテゴリの記事
- 大型7セグLEDを4個使った表示装置(2022.01.23)
- Arduinoで作ろう(61) Digisparkで7セグLED温度計(2022.01.16)
- Arduinoで作ろう(60) Digisparkでデジタル時計(2022.01.10)
- Arduinoで作ろう(59) DigisparkのP5を使えるようにした(2022.01.08)
- Arduinoで作ろう(58) DigisparkとLM35で温度計(2022.01.02)
コメント