プログラム例)
//電子サイコロ
//7セグメント表示器にランダムに1~6を表示する
//SW1(右側)で停止,SW2(左側)で再スタート
//配列を使用→{a,b,c,d,e,f,g}
int i,kazu ; //整数型の宣言
int j = 10 ;
int k = 10 ;
int num0[]={1,1,1,1,1,1,0}; //配列の宣言
int num1[]={0,1,1,0,0,0,0};
int num2[]={1,1,0,1,1,0,1};
int num3[]={1,1,1,1,0,0,1};
int num4[]={0,1,1,0,0,1,1};
int num5[]={1,0,1,1,0,1,1};
int num6[]={1,0,1,1,1,1,1};
int num7[]={1,1,1,0,0,0,0};
int num8[]={1,1,1,1,1,1,1};
int num9[]={1,1,1,0,0,1,1};
void setup() {
pinMode(8,INPUT);
pinMode(9,INPUT);
for (i=0;i<=7;i++){
pinMode(i,OUTPUT); //D0からD7までを出力に設定
}
for (i=10;i<=13;i++){
pinMode(i,OUTPUT); //D10からD13までを出力に設定
}
}
void loop() {
tone(0,280,10) ;
kazu=random(1,7);
switch (kazu) {
case 0:
for (int i=1;i<=7;i++){ //「0」を表示。aからgまで7回繰り返し処理
if(num0[i-1]==1){ //「1」の時はそのセグメントを点灯させる
digitalWrite(i,HIGH);
}
}
break;
case 1:
for (int i=1;i<=7;i++){ //「1」を表示
if(num1[i-1]==1){
digitalWrite(i,HIGH);
}
}
break;
case 2:
for (int i=1;i<=7;i++){ //「2」を表示
if(num2[i-1]==1){
digitalWrite(i,HIGH);
}
}
break;
case 3:
for (int i=1;i<=7;i++){ //「3」を表示
if(num3[i-1]==1){
digitalWrite(i,HIGH);
}
}
break;
case 4:
for (int i=1;i<=7;i++){ //「4」を表示
if(num4[i-1]==1){
digitalWrite(i,HIGH);
}
}
break;
case 5:
for (int i=1;i<=7;i++){ //「5」を表示
if(num5[i-1]==1){
digitalWrite(i,HIGH);
}
}
break;
case 6:
for (int i=1;i<=7;i++){ //「6」を表示
if(num6[i-1]==1){
digitalWrite(i,HIGH);
}
}
break;
case 7:
for (int i=1;i<=7;i++){ //「7」を表示
if(num7[i-1]==1){
digitalWrite(i,HIGH);
}
}
break;
case 8:
for (int i=1;i<=7;i++){ //「8」を表示
if(num8[i-1]==1){
digitalWrite(i,HIGH);
}
}
break;
case 9:
for (int i=1;i<=7;i++){ //「9」を表示
if(num9[i-1]==1){
digitalWrite(i,HIGH);
}
}
break;
}
digitalWrite(j, HIGH); // LED点灯(右から左へ)
j++ ;
if(j==14) j=10;
delay (100); //待機
if(digitalRead(8)==LOW){ //ストップボタンが押された場合
tone(0,280,1000) ; //停止時のビープ音(1秒間)
while(digitalRead(9)==HIGH){ //待ちうけループ
if(digitalRead(9)==LOW) break; //スタートボタンでbreakして先に進む
}
}
for (k=10;k<=13;k++){
digitalWrite(k,LOW); //全LED消灯
}
for (i=1;i<=7;i++){ //全セグメントを一旦消灯する
digitalWrite(i,LOW);
}
}
//ここまで
こんにちは。
私も最近Arduino Dueを使ってますが、使い勝手も良く、何でも出来て便利ですよね。