Quiz spelshow zoemer (4 / 8 stap)

Stap 4: De Code

So... Ik ben met inbegrip van mijn code, maar ik ben niet uitleggen it... en ja ik weet dat er geen reacties... hebt u vragen, voel je vrij om te vragen, maar ik niet deed dit zodat een programmering tutorial.

Eerst moet u op te nemen van de "pitches.h"... maar te kunnen opnemen, moet u om het te krijgen vanaf hier... Toon van de Arduino Tutorial

#include "pitches.h"

Vervolgens laten we definiëren sommige reeksen om te helpen ons later wanneer moeten we gebruik van de 8 cijfers 7 segmenten weergeven

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

We moeten ook sommige constanten die zal ons helpen identificeren input en output pinnen verderop in de code definiëren

 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; 

We moeten ook blijven sommige variabelen om te weten wat er gaande is in het programma

 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]; 

Dan instellen we de pin-modi en de weergave

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

En we maken de lus-functie die wordt uitgevoerd nadat Setup is voltooid

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

Zoals u ziet, ik heb gemaakt, functies om te scheiden van mijn code een beetje beter... dus laten we deze functies maken

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

Gerelateerde Artikelen

Spelshow zoemer Lockout systeem

Spelshow zoemer Lockout systeem

IntroductieOp zoek naar een goedkoop alternatief voor een SPELSHOW ZOEMER LOCKOUT-systeem. In dit project we gebruiken bouw helmen voor de fun factor in plaats van een vak type console en maak een zeer betaalbare spelshow zoemer systeem. De totale ko
Quiz Show zoemer systeem met behulp van Staples Easy Button

Quiz Show zoemer systeem met behulp van Staples Easy Button

**UPDATE** het is mij ter ore gekomen dat het bestuur van de huidige Staples easy knop veranderd door de jaren heen en is niet langer hetzelfde als de een die ik voor dit Instructable gebruikte terug in 2009. Verschuldigde beide tijdsdruk en het feit
LittleBits + Arduino spelshow zoemer

LittleBits + Arduino spelshow zoemer

Onze shop, TechShop Chandler was gelukkig genoeg te zijn geselecteerd voor Instructables juni bouwen nacht, gesponsord door littleBits!We werden verzonden vier littleBits Deluxe Kits, en een aantal van hun gloednieuwe Arduino bij de Modules van het h
Easy Button Hack - Wireless spelshow zoemer - tutorial

Easy Button Hack - Wireless spelshow zoemer - tutorial

Hi guys,Ik heb een flash gebaseerde trivia game voor een van mijn sceptici in de Pub-gebeurtenissen. Het gebruikt tot een oude toetsenbord, lange draden, handbediende knoppen, slechts drie deelnemers tegelijk worden bedraad. Exclusief voor de rest va
De eenvoudigste zoemer Tutorial; Met behulp van Arduino

De eenvoudigste zoemer Tutorial; Met behulp van Arduino

Hey Makers,Laat maken van een eenvoudige Quiz zoemer met behulp van Arduino!Stap 1: Wat kunnen we ermee?Wat kunnen we ermee?> quiz Game zoemer> speel wijsjes en veel meer...Stap 2:Vereiste dingen> Arduino Uno (kopen van Amazon.in) (kopen van Amaz
Snelle Quiz: 5 Min No-soldeer Cap-Touch zoemer spel

Snelle Quiz: 5 Min No-soldeer Cap-Touch zoemer spel

Dit geeft u de plannen voor het opzetten van de snelste versie van een quiz-show type zoemer systeem die ik heb gezien. U hoeft alleen een paar LED's, sommige gator clips en een Arduino, en zul je een zoemer systeem klaar voor 4 personen in minder da
8 kandidaat-quiz zoemer met behulp van de 8051 microcontroller (AT89C51)

8 kandidaat-quiz zoemer met behulp van de 8051 microcontroller (AT89C51)

de quiz zoemer systemen worden veel gebruikt op school, hogescholen en TV-programma's. Het team dat de zoemer vroegst persen heeft het recht om het antwoord te geven. Soms wordt het zeer moeilijk om te identificeren welk team de knop heeft ingedrukt
Infrarood Quiz zoemer (draadloze)

Infrarood Quiz zoemer (draadloze)

Hey mensen!Maak je klaar om te verkennen de hoekje en hoek van de IR-signalen en pronken de Arduino-codes. IR zoemer maakt gebruik van een schakeling die vergelijkbaar is met die van een TV-afstandsbediening (openbreken van de afstandsbediening en ne
Arduino Leonardo Quiz zoemer spel

Arduino Leonardo Quiz zoemer spel

Dus waarom zou u een Buzzerquiz bouwen?Precies! Veel plezier en spelen met vrienden!In mijn geval was het ontworpen voor een verjaardagsfeestje. De gasten hadden te raden film en serie titels op basis van de Theme song.Mijn Buzzer Setup zal hebben de
Persoonlijke Arduino Quiz

Persoonlijke Arduino Quiz

Deze Arduino-Quiz is de kale elektronica die nodig is om een awesome, draagbare quiz! In dit Instructable leert u hoe kabellengte tot dit uitstekende educatieve project. Geen behuizing is opgenomen, omdat ik wil dat je om te denken van een koele behu
Quiz systeem gemaakt van... Wandverlichting gehackt

Quiz systeem gemaakt van... Wandverlichting gehackt

Dit is een gids over hoe te bouwen echt goedkoop en sfeervol op zoek Quiz Systrem gebaseerd op gehackte wandverlichting en Arduino board. De video toont ontwerpen en montage proces en als je het interessant vinden Gelieve Welkom op de volgende pagina
Quiz spelsysteem

Quiz spelsysteem

dit is de klassieke quiz game systeem, met drie grote rode drukknoppen.Het circuit is alleen gemaakt van Relais en diodes (en enkele extra onderdelen), er is geen geïntegreerde schakeling NOR MICROCONTROLLER, zodat dit project kan worden gemaakt door
AAN de slag met ARDUINO #3 zoemer

AAN de slag met ARDUINO #3 zoemer

Hallo, ben ik hier terug om uit te leggen van het gebruik van piëzo-zoemer met behulp van Arduino. Heb je je ooit afgevraagd van het creëren van een Toon van de muziek met behulp van Arduino? Deze tutorial zal je leren hoe te maken van een Toon van d
Draadloze Quiz Game

Draadloze Quiz Game

ik kreeg de opdracht om deze draadloze spelshow type systeem voor een evenement AWANA Bijbel quizzen quizzen te bouwen, maar het kan worden gebruikt voor elke soort quizzen spel.  Het systeem werd ontworpen toestaan voor drie keuzes voor multiple cho