Quiz-Game-Show Buzzer (4 / 8 schritt)


Schritt 4: Den Code

So... Ich bin auch meinen Code bin ich nicht erklären, es... und ja, ich weiß, es gibt keine Kommentare... Wenn Sie Fragen haben, zögern Sie nicht, mich zu Fragen, aber ich habe es nicht hier, um eine Programmierung Tutorial machen.

Zuerst müssen Sie "pitches.h" enthalten, sondern es zählen zu können, muss man es von hier aus... Arduino Ton Tutorial

#include "pitches.h"

Dann definieren wir einige Arrays, um uns später helfen, wenn wir die 8 Ziffern verwenden 7 Segmente angezeigt

 // array to activate particular digit on the 8x7segment module<br>// it is the common anode of 7 segment byte digit[8] = { 0b10000000, //digit 1 from right 0b01000000, //digit 2 from right 0b00100000, //digit 3 from right 0b00010000, //digit 4 from right 0b00001000, //digit 5 from right 0b00000100, //digit 6 from right 0b00000010, //digit 7 from right 0b00000001 //digit 8 from right }; //array for decimal number, it is the cathode, please refer to the datasheet. //therefore a logic low will activete the particular segment //PGFEDCBA, segment on 7 segment, P is the dot byte number[12] = { 0b11000000, // 0 0b11111001, // 1 0b10100100, // 2 0b10110000, // 3 0b10011001, // 4 0b10010010, // 5 0b10000010, // 6 0b11111000, // 7 0b10000000, // 8 0b10010000, // 9 0b01111111, //dot 0b11111111 //blank }; 

Wir sollten auch einige Konstanten definieren, die hilft uns, Input- und Output-Pins später im Code zu identifizieren

 const int blueLEDPin = 12; const int greenLEDPin = 11; const int redLEDPin = 10; const int yellowLEDPin = 9; const int teamPinDiff = 5; //to help with computations later< const int blueButton = 17; const int greenButton = 16; const int redButton = 15; const int yellowButton = 14; const int acceptButton = 18; const int refuseButton = 19; const int speakerPin = 8; const int latchPin = 7; //connect to RCK of 8x7segment module const int clockPin = 6; //connect to SCK of 8x7segment module const int dataPin = 5; //connect to DIO of 8x7segment module const int multiplexDelay = 1; const int dotNumber = 10; const int blankNumber = 11; 

Wir müssen auch halten einige Variablen, die wissen was los ist in das Programm

 int currentTeam = 0; int blueScore = 0; int greenScore = 0; int redScore = 0; int yellowScore = 0;byte blueDigit1 = number[blankNumber]; byte blueDigit2 = number[0]; byte greenDigit1 = number[blankNumber]; byte greenDigit2 = number[0]; byte redDigit1 = number[blankNumber]; byte redDigit2 = number[0]; byte yellowDigit1 = number[blankNumber]; byte yellowDigit2 = number[0]; 

Dann richten wir die Pin-Modi und die Anzeige

 void setup() { pinMode(blueLEDPin, OUTPUT); pinMode(greenLEDPin, OUTPUT); pinMode(redLEDPin, OUTPUT); pinMode(yellowLEDPin, OUTPUT); pinMode(blueButton, INPUT); pinMode(greenButton, INPUT); pinMode(redButton, INPUT); pinMode(yellowButton, INPUT); pinMode(acceptButton, INPUT); pinMode(refuseButton, INPUT); pinMode(speakerPin, OUTPUT); digitalWrite(blueLEDPin, LOW); digitalWrite(greenLEDPin, LOW); digitalWrite(redLEDPin, LOW); digitalWrite(yellowLEDPin, LOW); pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); digitalWrite(latchPin, HIGH); } 

Und wir schaffen die Loop-Funktion, die nach dem Setup ausgeführt wird

 void loop() { ProgramLoop(); WriteScore(); } 

Wie Sie sehen, ich habe Funktionen um meinen Code ein bisschen besser trennen... also lasst uns diese Funktionen erstellen

 void ProgramLoop() { if (currentTeam == 0) { if (digitalRead(blueButton) == HIGH) { currentTeam = blueLEDPin; PlayAnswerBlue(); } else if (digitalRead(greenButton) == HIGH) { currentTeam = greenLEDPin; PlayAnswerGreen(); } else if (digitalRead(redButton) == HIGH) { currentTeam = redLEDPin; PlayAnswerRed(); } else if (digitalRead(yellowButton) == HIGH) { currentTeam = yellowLEDPin; PlayAnswerYellow(); } } else { digitalWrite(currentTeam, HIGH); if (digitalRead(currentTeam + teamPinDiff) == LOW) { if (digitalRead(acceptButton) == HIGH) { PlayAccept(); IncrementScore(); } else if (digitalRead(refuseButton) == HIGH) { PlayDeny(); ResetState(); } } } } 
 void ResetState() { currentTeam = 0; digitalWrite(blueLEDPin, LOW); digitalWrite(greenLEDPin, LOW); digitalWrite(redLEDPin, LOW); digitalWrite(yellowLEDPin, LOW); } 
 void IncrementScore() { switch (currentTeam) { case blueLEDPin: blueScore++; if (blueScore > 9) { if (blueScore > 99) { blueScore = 0; } blueDigit1 = number[blueScore / 10]; } blueDigit2 = number[blueScore % 10]; break; case greenLEDPin: greenScore++; if (greenScore > 9) { if (greenScore > 99) { greenScore = 0; } greenDigit1 = number[greenScore / 10]; } greenDigit2 = number[greenScore % 10]; break; case redLEDPin: redScore++; if (redScore > 9) { if (redScore > 99) { redScore = 0; } redDigit1 = number[redScore / 10]; } redDigit2 = number[redScore % 10]; break; case yellowLEDPin: yellowScore++; if (yellowScore > 9) { if (yellowScore > 99) { yellowScore = 0; } yellowDigit1 = number[yellowScore / 10]; } yellowDigit2 = number[yellowScore % 10]; break; } ResetState(); } 
 void WriteScore() { display8x7segment(digit[0], number[dotNumber]); display8x7segment(digit[0], blueDigit2); display8x7segment(digit[1], blueDigit1); display8x7segment(digit[2], number[dotNumber]); display8x7segment(digit[2], greenDigit2); display8x7segment(digit[3], greenDigit1); display8x7segment(digit[4], number[dotNumber]); display8x7segment(digit[4], redDigit2); display8x7segment(digit[5], redDigit1); display8x7segment(digit[6], number[dotNumber]); display8x7segment(digit[6], yellowDigit2); display8x7segment(digit[7], yellowDigit1); } void display8x7segment(byte digit, byte number) { digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, digit); // clears the right display shiftOut(dataPin, clockPin, MSBFIRST, number); // clears the left display digitalWrite(latchPin, HIGH); delay(1); } 
 void PlayAnswerBlue() { display8x7segment(digit[7], number[blankNumber]); beep(speakerPin, NOTE_C5, 100); delay(25); beep(speakerPin, NOTE_C5, 100); delay(25); beep(speakerPin, NOTE_C5, 100); } void PlayAnswerGreen() { display8x7segment(digit[7], number[blankNumber]); beep(speakerPin, NOTE_D5, 100); delay(25); beep(speakerPin, NOTE_D5, 100); delay(25); beep(speakerPin, NOTE_D5, 100); } void PlayAnswerRed() { display8x7segment(digit[7], number[blankNumber]); beep(speakerPin, NOTE_E5, 100); delay(25); beep(speakerPin, NOTE_E5, 100); delay(25); beep(speakerPin, NOTE_E5, 100); } void PlayAnswerYellow() { display8x7segment(digit[7], number[blankNumber]); beep(speakerPin, NOTE_F5, 100); delay(25); beep(speakerPin, NOTE_F5, 100); delay(25); beep(speakerPin, NOTE_F5, 100); } void PlayAccept() { display8x7segment(digit[7], number[blankNumber]); beep(speakerPin, NOTE_C5, 75); delay(10); beep(speakerPin, NOTE_D5, 75); delay(10); beep(speakerPin, NOTE_E5, 75); delay(10); beep(speakerPin, NOTE_G5, 75); delay(10); beep(speakerPin, NOTE_E5, 75); delay(10); beep(speakerPin, NOTE_G5, 75); delay(10); beep(speakerPin, NOTE_C6, 75); } void PlayDeny() { display8x7segment(digit[7], number[blankNumber]); beep(speakerPin, NOTE_A4, 1000); } void beep (unsigned char speakerPin, int frequencyInHertz, long timeInMilliseconds) { int x; long delayAmount = (long)(1000000/frequencyInHertz); long loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2)); for (x=0; x < loopTime; x++) { digitalWrite(speakerPin, HIGH); delayMicroseconds(delayAmount); digitalWrite(speakerPin, LOW); delayMicroseconds(delayAmount); } } 

In Verbindung stehende Artikel

Game-Show Buzzer Lockout System

Game-Show Buzzer Lockout System

EinführungSie suchen eine preiswerte Alternative für eine GAME-SHOW-Summer-SPERRSYSTEM. In diesem Projekt verwenden wir Bau Helme für den Spaß Faktor statt einer Box Art Konsole und ein sehr erschwinglichen Gameshow-Summer-System zu erstellen. Die Ge
Einfach Taste Hack - Wireless Game Show Buzzer - Tutorial

Einfach Taste Hack - Wireless Game Show Buzzer - Tutorial

Hallo Leute,Ich habe eine Flash-basierte Trivia Spiel für eines meiner Skeptiker in der Pub-Veranstaltungen. Es verwendet, um bis zu einer alten Tastatur, lange Leitungen, Handheld-Tasten, nur drei Teilnehmer gleichzeitig angeschlossen werden. Ziemli
Game-Show Buzz im System

Game-Show Buzz im System

Dieses Projekt war ursprünglich eine Herausforderung von einem Freund, der einige sehr wettbewerbsfähigen Arbeitskollegen hat. Er fragte, ob es billiger, DIY Jeopardy-Spiel-System sein könnte als einmalige selbst kaufen und verschicken es nach Schwed
Low-Cost drahtlose DIY-Game-Show-System für Ferienpartys

Low-Cost drahtlose DIY-Game-Show-System für Ferienpartys

Sie wollen keine langweilige Weihnachtsfeier? Warum nicht noch Spaß Trivia Game-Show für Ihre Weihnachtsfeier ohne es kostet Sie eine Menge Geld? Wir haben eine $15 drahtlose Gameshow Popper Systemlösung basierend auf einer aufgegebenen Pop-Duo für i
Game-Show Schaltung

Game-Show Schaltung

Meine Schwester und meine Frau sind in der Ausbildung, und die Schüler spielen ein "Jeopardy" wie Spiel im Unterricht. Ich wollte eine Schaltung dafür zu verwenden. Nach der Besichtigung mehrere Threads über Game-Show-Schaltungen und versucht (e
Quiz-Game-Controller mit "Lichter und Klänge Summer" und Arduino

Quiz-Game-Controller mit "Lichter und Klänge Summer" und Arduino

Jeopardy-Stil-Quiz-Spiele sind Favoriten für Aufregung und pädagogische Anleitung zur gleichen Zeit zu schaffen.  Lehrer, Sommer-camp-Betreuer und Erzieher auch in der Industrie finden diese Art von Spiel zu helfen, Interesse und die Beteiligung der
Quiz-Show Buzzer System mit Heftklammern Easy Button

Quiz-Show Buzzer System mit Heftklammern Easy Button

**UPDATE** es hat mir zu Ohren gekommen, dass der Vorstand des aktuellen Staples einfach Taste hat im Laufe der Jahre verändert und ist nicht mehr dasselbe wie habe ich für diese Instructable früher im Jahr 2009 zurück. Aufgrund Zeitmangel und die Ta
Batch-Skripte

Batch-Skripte

In diesem instructable I 'm gonna alle Batch-Code Liste ich finde so kann es leichter zu finden. Ich werde nicht jedes Quiz-Game-Show auf einer oder zwei wird ausreichen, aber wenn Sie haben einen Code Ich setzen soll hier in den Kommentaren zu Poste
Bausatz für die Gamer - Summer Tutorial

Bausatz für die Gamer - Summer Tutorial

Dieses Tutorial zeigt, haben Sie den Bausatz für Gamer Piezo Buzzer in Ihren Programmen verwenden. Der Summer ist was wir benutzen, um allerlei Bleeps und Quietschen, mit cleveren Funktionen bereits in der Gamer-Bibliothek erstellt!Das Programm stell
CO2-Laser, das Blech schneidet

CO2-Laser, das Blech schneidet

Bitte beachten Sie: Ich bin wirklich nicht im Wettbewerb um den Laser zu gewinnen, ein T-shirt wäre in Ordnung, danke.Ich sah die Konkurrenz und dachte, es wäre lustig, mein System zu zeigen.Einführung. Die Grundidee dieses CO2-Laser Systems ist, das
DIY große LED beleuchtet 7-Segment-Anzeige

DIY große LED beleuchtet 7-Segment-Anzeige

ein Freund von mir, die High School Wissenschaft lehrt beauftragte mich Gefahr Stil Quiz game-Controller mit einem großen Timer Display und Tasten für Spieler zu machen. Die beste Art des Timers, was ich denken konnte war eine große 7-Segment-Anzeige
Machen Sie Ihren Computer ein Staples einfach Button (tm)-Steuerelement

Machen Sie Ihren Computer ein Staples einfach Button (tm)-Steuerelement

Dieses Projekt ist inspiriert durch mehrere bestehende wirklich kreativ Easy Button-Hacks auf Instructables ich gesehen habe.  Dieses ist ein bisschen billiger als die anderen.  Es ist kein Wireless, noch eine Game-Show, und braucht ein wenig mehr Ar
Schieben, Licht-Taste momentane Hack

Schieben, Licht-Taste momentane Hack

ein Freund von mir, die High School Wissenschaft lehrt beauftragte mich Gefahr Stil Quiz game-Controller mit einem großen Timer Display und Tasten für Spieler zu machen. Der beste Weg, eine Schaltfläche für die Spieler zu machen, die ich denken konnt
Zwei Spieler Simon Memory-Spiel mit externen Schalter

Zwei Spieler Simon Memory-Spiel mit externen Schalter

Elektronik-Memory-Spiele wie Simon kann eine Menge Spaß. Aber es macht noch mehr Spaß, wenn Sie einen zweiten Spieler hinzufügen und machen es zu einen Wettbewerb. Also entwarf ich eine zwei-Spieler-Version des Spiels, die auf Arduino läuft. Auf dies