
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);
}