はじめに
子供がすごろくをもらってきたので家族でやろうとしたらうちにさいころがありませんでした。パソコンで乱数を発生させて画面に表示するとか、6角形の鉛筆に数字を書いて転がすとか方法はいろいろ考えられたのですが・・・。
そんなんじゃ子供が喜ばないと思いLEDを6個並べてさいころの代わりになるものを作りました。
結果
スイッチは以前作ったものを流用しました。
touch-sp.hatenablog.com
スイッチを押したらただLEDが光るだけです。
Arduino Nano Everyを使用しています。
Arduinoスケッチ
long randNumber; const int buttonON = LOW; // ボタンが押されているとピンの値はLOW const int buttonPin = 12; const int LED1 = 2; const int LED2 = 3; const int LED3 = 4; const int LED4 = 5; const int LED5 = 6; const int LED6 = 7; void setup() { randomSeed(analogRead(0)); pinMode(LED1, OUTPUT); digitalWrite(LED1, LOW); pinMode(LED2, OUTPUT); digitalWrite(LED2, LOW); pinMode(LED3, OUTPUT); digitalWrite(LED3, LOW); pinMode(LED4, OUTPUT); digitalWrite(LED4, LOW); pinMode(LED5, OUTPUT); digitalWrite(LED5, LOW); pinMode(LED6, OUTPUT); digitalWrite(LED6, LOW); pinMode(buttonPin, INPUT_PULLUP); } void loop() { if (digitalRead(buttonPin) == buttonON) { randNumber = random(1, 7); // 1から6の乱数を生成 digitalWrite(LED1, LOW); digitalWrite(LED2, LOW); digitalWrite(LED3, LOW); digitalWrite(LED4, LOW); digitalWrite(LED5, LOW); digitalWrite(LED6, LOW); digitalWrite(LED1, HIGH); delay(100); digitalWrite(LED1, LOW); digitalWrite(LED2, HIGH); delay(100); digitalWrite(LED2, LOW); digitalWrite(LED3, HIGH); delay(100); digitalWrite(LED3, LOW); digitalWrite(LED4, HIGH); delay(100); digitalWrite(LED4, LOW); digitalWrite(LED5, HIGH); delay(100); digitalWrite(LED5, LOW); digitalWrite(LED6, HIGH); delay(100); digitalWrite(LED6, LOW); switch(randNumber){ case 1: digitalWrite(LED1, HIGH); break; case 2: digitalWrite(LED1, HIGH); digitalWrite(LED2, HIGH); break; case 3: digitalWrite(LED1, HIGH); digitalWrite(LED2, HIGH); digitalWrite(LED3, HIGH); break; case 4: digitalWrite(LED1, HIGH); digitalWrite(LED2, HIGH); digitalWrite(LED3, HIGH); digitalWrite(LED4, HIGH); break; case 5: digitalWrite(LED1, HIGH); digitalWrite(LED2, HIGH); digitalWrite(LED3, HIGH); digitalWrite(LED4, HIGH); digitalWrite(LED5, HIGH); break; case 6: digitalWrite(LED1, HIGH); digitalWrite(LED2, HIGH); digitalWrite(LED3, HIGH); digitalWrite(LED4, HIGH); digitalWrite(LED5, HIGH); digitalWrite(LED6, HIGH); break; default: break; } } }
最後に
子供の感想は・・・
「いやだ、こんなの!」