Arduino と抵抗(1kΩ茶黒赤金, 11本)とスイッチを用意し図のように配線します。 できればLEDを円形に並べるとルーレットの雰囲気が出ます。
このプログラムを実行している間にスイッチを押すと電子ルーレットがスタートします。 毎回違うところに止まります。
このプログラムは大きく分けると5つに分かれています。
ここでrandomSeedは乱数を初期化する関数です。A0ピンに加わっているノイズの電圧で乱数を初期化します。random()は1つめの引数と(2つめの引数)ー1の間の乱数を返す関数です。最初のrandomSeedがないとArduinoはrandom()関数を呼び出した回数が同じなら同じ値を返します。
int c; int i; void setup() { randomSeed(analogRead(0)); for(i=3; i<=12; i=i+1) { pinMode(i, OUTPUT); } } void loop() { while(digitalRead(2)==HIGH) { delay(10); } digitalWrite(i, LOW); c = random(3, 12+1); for(i=0; i<=20+c; i=i+1) { digitalWrite(((i%10)+3), HIGH); delay(200); digitalWrite(((i%10)+3), LOW); delay(200); } i = i - 1; digitalWrite(i, HIGH); delay(100); digitalWrite(i, LOW); delay(100); digitalWrite(i, HIGH); delay(100); digitalWrite(i, LOW); delay(100); digitalWrite(i, HIGH); }