プッチ神父回路
はじめに
これは素数を表示させるだけの回路です。
つなぎかた
こんなかんじ。
ぷろぐらむ
//参考 LED site:(http://happy-arduino.blogspot.jp/2012/08/17_27.html) //ブッチ神父回路 #include <MsTimer2.h> // タイマー割り込みを利用する為に必要なヘッダファイル const int led_1 = 9; // 7segLED the one's place const int led_10 = 10; // 7segLED the ten's place const int led_100 = 11; const int led_1000 = 12; int state = 2; // LEDの状態(0ならオフ、1ならオン) int state_1=2; // the one's digit int state_10 =0; // the ten's digit int state_100 =0; int state_1000 =0; int j=2; void setup(){ //1~8番ピン デジタル出力へセット for (int i=1; i<=8; i++){ pinMode(i,OUTPUT); } pinMode(led_10, OUTPUT); // 7segLED はoutput pinMode(led_1, OUTPUT); pinMode(led_100, OUTPUT); pinMode(led_1000, OUTPUT); MsTimer2::set(1000, count_up); // 1000ms毎に割込み関数を呼び出す様に設定 MsTimer2::start(); // タイマー割り込み開始 } //LEDレイアウトを定義 boolean Num_Array[11][8]={ {1,1,1,0,1,0,1,1},{0,0,1,0,1,0,0,0},{1,0,1,1,0,0,1,1},{1,0,1,1,1,0,1,0}, {0,1,1,1,1,0,0,0},{1,1,0,1,1,0,1,0},{1,1,0,1,1,0,1,1},{1,1,1,0,1,0,0,0}, {1,1,1,1,1,0,1,1},{1,1,1,1,1,0,1,0},{0,0,0,0,1,0,0} }; //LED表示関数を定義 void NumPrint(int Number){ for (int w=0; w<=7; w++){ digitalWrite(w+1,Num_Array[Number][w]); } } void count_up(){ state=state+1; while(state!=j){ while(state % j !=0){ j=j+1; } if(state==j){ j=2; break; } state=state+1; j=2; } state = state % 10000; state_1 = state % 10; state_10 = state /10 % 10; state_100 = state /100 % 10; state_1000 = state /1000 % 10; } void loop(){ digitalWrite(led_1000,1); digitalWrite(led_100,1); digitalWrite(led_10,1); digitalWrite(led_1,0); NumPrint(state_1); delay(3); digitalWrite(led_1000,1); digitalWrite(led_100,1); digitalWrite(led_10,0); digitalWrite(led_1,1); NumPrint(state_10); delay(3); digitalWrite(led_1000,1); digitalWrite(led_100,0); digitalWrite(led_10,1); digitalWrite(led_1,1); NumPrint(state_100); delay(3); digitalWrite(led_1000,0); digitalWrite(led_100,1); digitalWrite(led_10,1); digitalWrite(led_1,1); NumPrint(state_1000); delay(3); }