スコアカウンター付きバズワイヤー
コンポーネントと消耗品
> | | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| > TexasInstrumentsシフトレジスタ-シリアルからパラレル | | × | 1 | |
| | × | 1 | |
| | × | 10 | |
| | × | 1 | |
このプロジェクトについて
しばらく時間を過ごすためにArduinoで遊んだ後、失敗をカウントし、ワイヤーを10回叩くと失敗する、古き良きバズワイヤーゲームの拡張バージョンを作成することにしました!
これが自分のゲームを吸っている自分のビデオです:
ソースコードは3つのファイルに分かれています。
コードでは、各障害の後に500msの「猶予期間」が設定されています。これを変更して、各バズの後にプレーヤーに大きな休憩を与えることができます。
また、最後に気付いたのは、LEDが少し明るすぎることです。それらに使用されている2つの抵抗器をより強力な抵抗器と自由に交換してください。鉱山はわずか約100オームです。
リングにはキーホルダーの先を使用しました。それの良いところは、それを開くだけで、ネットワーク上をずっと戻る必要がないことです。
私のプロジェクトを楽しんでいただければ幸いです!
コード
- nervous_meter_score.ino
- score_display.ino
- game.ino
nervous_meter_score.ino Arduino
intラッチピン=3; // 74HC595のST_CP [RCK] int clockPin =4; // 74HC595int dataPin =2のSH_CP [SCK]; // DS [S1] on 74HC595const int STOP_LED =6; const int GO_LED =7; const int BUZZ =8; const int TOUCH =10; const int fail_threshold =9; enum Status {STOP =0、GO =1}; void setup(){Serial.begin(9600); displayInitialSetup(); gameInitialSetup();}ステータスステータス=GO; int failCounter =0; void loop(){while(failCounter> fail_threshold){gameover(); }スイッチ(ステータス){ケースGO:digitalWrite(GO_LED、HIGH); digitalWrite(STOP_LED、LOW); digitalWrite(BUZZ、LOW); if(digitalRead(TOUCH)==HIGH){status =STOP; } 壊す;ケースSTOP:digitalWrite(GO_LED、LOW); failCounter ++; if(failCounter> fail_threshold)break; displayDigit(failCounter); Serial.println(failCounter); failAlarm();ステータス=GO;壊す; }} byte seg_spin [6] ={B10000000、B01000000、B00100000、B00010000、B00001000、B00000100}; void gameover(){for(int i =0; i <6; i ++){digitalWrite(BUZZ、HIGH); delay(5); digitalWrite(BUZZ、LOW); delay(50); digitalWrite(latchPin、LOW); shiftOut(dataPin、clockPin、LSBFIRST、seg_spin [i]); digitalWrite(latchPin、HIGH); delay(10); }}
score_display.ino Arduino
byte seg_digits [10] ={B11111100、// =0 B01100000、// =1 B11011010、// =2 B11110010、// =3 B01100110、// =4 B10110110、// =5 B10111110、// =6 B11100000、// =7 B11111110、// =8 B11100110 // =9}; void displayDigit(int x){digitalWrite(latchPin、LOW); shiftOut(dataPin、clockPin、LSBFIRST、seg_digits [x]); digitalWrite(latchPin、HIGH);} void displayInitialSetup(){pinMode(latchPin、OUTPUT); pinMode(dataPin、OUTPUT); pinMode(clockPin、OUTPUT); displayDigit(0);}
game.ino Arduino
void gameInitialSetup(){pinMode(STOP_LED、OUTPUT); pinMode(GO_LED、OUTPUT); pinMode(BUZZ、OUTPUT); pinMode(TOUCH、HIGH); digitalWrite(TOUCH、LOW);} void failAlarm(){digitalWrite(STOP_LED、HIGH);ビープ(); delay(150); digitalWrite(STOP_LED、LOW); digitalWrite(BUZZ、LOW); delay(500);} void beep(){for(int i =0; i <3; i ++){digitalWrite(BUZZ、HIGH); delay(50); digitalWrite(BUZZ、LOW); delay(50); }}
回路図
D10が5Vに接続されると、ブザーが鳴り、カウンターがカウントされる原因となる障害が発生することに注意してください。回路図では、それを示す方法がありませんでした。
したがって、それに応じてワイヤと構造を構築します:)