Arduinoで乱数を使ったサイコロを作り方【解説あり】

どうも、なかしーです。

僕は自動車のマイコンにプログラミングをする組み込みエンジニアとして働きつつ、YouTubeでArduinoの使い方を解説しています。

Arduino初心者
Arduino初心者

Arduinoの乱数はどんな使い方をするの?

という疑問を解決します。

乱数を使うとランダムに数値を生成してくれます。

ソーシャルゲームのガチャなど、確率が絡む処理を行いたい時に使われます。

この記事では「Arduinoで乱数を使ったサイコロの作り方」について解説します。

動画でも解説しています!

Arduinoで使える乱数の関数

Arduinoには標準で乱数の関数が入っています。

使えるのはこちらの2つです。

  • randomSeed(seed)|乱数にシード値を与える関数
  • random(min, max)|生成する値を指定できる関数

詳しく解説します。

randomSeed(seed)の使い方

乱数を生成する元となる値を引数として渡します。

HTML
randomSeed(1);

random(min, max)の使い方

こちらはシード値を使わず、生成する数値の範囲を指定することができます。

引数minに下限値、maxに上限値を入力しますが、1つしか入力しなかった場合は上限値として処理されます。

入力した上限値から1を引いた値までの範囲となるので注意してください。

戻り値としてlong型の数値を返します。

HTML
long number = 0;
number = random(100);

Arduinoで乱数を使ったサイコロを作る

Arduinoにタクトスイッチと7セグメントLEDを繋いでサイコロを作りました。

使った部品はこちらです。

  • 7セグメントLED(カソードコモン)・・・1個
  • タクトスイッチ・・・1個
  • 抵抗(10kΩ)・・・1個
  • 抵抗(220Ω)・・・7個

回路図はこんな感じです。

プログラムはrandom関数を使いました。

HTML
long number = 0;
unsigned char data[10][7] = {
  {1,1,1,1,1,1,0},  //0
  {0,1,1,0,0,0,0},  //1
  {1,1,0,1,1,0,1},  //2
  {1,1,1,1,0,0,1},  //3
  {0,1,1,0,0,1,1},  //4
  {1,0,1,1,0,1,1},  //5
  {1,0,1,1,1,1,1},  //6
  {1,1,1,1,1,1,1},  //8
  {1,1,1,1,0,1,1}}; //9

void setup() {
  pinMode(2, INPUT);  //スイッチ
  pinMode(3, OUTPUT); //7セグa
  pinMode(4, OUTPUT); //7セグb
  pinMode(5, OUTPUT); //7セグc
  pinMode(6, OUTPUT); //7セグd
  pinMode(7, OUTPUT); //7セグe
  pinMode(8, OUTPUT); //7セグf
  pinMode(9, OUTPUT); //7セグg
}

void loop() {
  int i = 0;
  
  if(digitalRead(2) == 1) {
    number = random(1, 7);  //1から6の乱数を生成

    for (i = 0; i < 7; i++) {
      digitalWrite((3 + i),data[number][i]);  //7セグ表示
    }
    delay(10);
  }
}

7セグメントLEDの使い方について知りたい方はこちらの動画をご覧ください。

他にもArduinoの使い方を動画で解説しています!
>>なかしーの電子工作部

Arduinoで乱数を使ったサイコロを作り方|まとめ

この記事では「Arduinoで乱数を使ったサイコロを作り方」について解説しました。

乱数を使うとランダムな数値を生成することができます。

Arduinoには乱数を生成する関数が2つあります。

  • randomSeed(seed)|乱数にシード値を与える関数
  • random(min, max)|生成する値を指定できる関数

Arduinoの人気記事

>>【Arduino入門キット】電子工作の勉強におすすめ【こんなに安くていいの?】

>>Arduinoをゼロから勉強する方法を紹介【参考書は不要】

>>Arduinoのプログラムの書き方【基本的なルールは4つある】

当ブログで人気のArduino入門キット

第1位:Arduino UNO スターターキット
Arduino UNOのスタータキットです。電子工作でよく使う部品が一式揃っており、バラバラで購入するより格段に安いです。
第2位:ELEGOO Arduino用のUNO R3 最終版スタータキット
こちらも電子工作によく使う部品が第一位のスタータキットよりたくさん入っています。とてもお買い得です。
第3位:ELEGOO Arduino MEGA 2560 R3
UNOの上位互換版MEGAのスターターキットです。これだけ入っていれば十分に電子工作の基本をマスターできることでしょう。
エンジニアが教えるArduino入門講座のまとめ【解説動画付き】