Quiz Game Show Summer (4 / 8 steg)

Steg 4: Koden

So... Jag är även min kod, men jag förklara inte det... och ja jag vet det finns inga kommentarer... om du har frågor, inte tveka att fråga mig, men jag gjorde inte detta för att en programmering handledning.

Först måste du "pitches.h"... men för att kunna ta med den, du behov till få den här... Arduino tonen Tutorial

#include "pitches.h"

Så låt oss definiera några matriser för att hjälpa oss för senare när vi behöver använda de 8 siffror 7 segment visar

matrisen till aktivera särskild siffra på den 8x7segment modulen < br > / / är det gemensamma anoden av 7 segment
byte siffror [8] = {
0b10000000, //digit 1 från höger
0b01000000, //digit 2 från höger
0b00100000, //digit 3 från höger
0b00010000, //digit 4 från höger
0b00001000, //digit 5 från höger
0b00000100, //digit 6 från höger
0b00000010, //digit 7 från höger
0b00000001 //digit 8 från höger
};
matris för decimaltal, det är katoden, se databladet.
Därför kommer en logik låg activete visst segment
PGFEDCBA, segmentet 7-segment, P är pricken
byte nummer [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
};

Vi bör också definiera vissa konstanter som hjälper oss att identifiera indata- och stift senare i koden

CONST int blueLEDPin = 12;
CONST int greenLEDPin = 11;
CONST int redLEDPin = 10;
CONST int yellowLEDPin = 9;

CONST int teamPinDiff = 5; att hjälpa till med beräkningar senare <

CONST int blueButton = 17;
CONST int greenButton = 16.
CONST int knappen = 15.
CONST int yellowButton = 14.
CONST int acceptButton = 18;
CONST int refuseButton = 19.

CONST int speakerPin = 8;

CONST int latchPin = 7. ansluta till RCK 8x7segment modul
CONST int clockPin = 6; ansluta till SCK av 8x7segment modul
CONST int dataPin = 5; ansluta till DIO 8x7segment modul

CONST int multiplexDelay = 1;

CONST int dotNumber = 10;
CONST int blankNumber = 11;

Vi måste också hålla vissa variabler för att veta vad som pågår i programmet

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

Sedan setup vi pin lägen och displayen

void setup()
{
pinMode (blueLEDPin, produktionen);
pinMode (greenLEDPin, produktionen);
pinMode (redLEDPin, produktionen);
pinMode (yellowLEDPin, produktionen);
pinMode (blueButton, ingång);
pinMode (greenButton, ingång);
pinMode (röda, ingång);
pinMode (yellowButton, ingång);
pinMode (acceptButton, ingång);
pinMode (refuseButton, ingång);
pinMode (speakerPin, produktionen);

digitalWrite (blueLEDPin, låg);
digitalWrite (greenLEDPin, låg);
digitalWrite (redLEDPin, låg);
digitalWrite (yellowLEDPin, låg);

pinMode (latchPin, produktionen);
pinMode (clockPin, produktionen);
pinMode (dataPin, produktionen);
digitalWrite (latchPin, hög);
}

Och vi skapar loop funktion som ska köras efter installationen

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

Som ni ser, jag har skapat funktioner för att separera min kod lite bättre... så låt oss skapa dessa funktioner

void ProgramLoop()
{
om (currentTeam == 0) {
om (digitalRead(blueButton) == hög) {
currentTeam = blueLEDPin;
PlayAnswerBlue();
}
annat if (digitalRead(greenButton) == hög) {
currentTeam = greenLEDPin;
PlayAnswerGreen();
}
annat if (digitalRead(redButton) == hög) {
currentTeam = redLEDPin;
PlayAnswerRed();
}
annat if (digitalRead(yellowButton) == hög) {
currentTeam = yellowLEDPin;
PlayAnswerYellow();
}
}
annat
{
digitalWrite (currentTeam, hög);
om (digitalRead (currentTeam + teamPinDiff) == låg) {
om (digitalRead(acceptButton) == hög) {
PlayAccept();
IncrementScore();
}
annat if (digitalRead(refuseButton) == hög) {
PlayDeny();
ResetState();
}
}
}
}

void ResetState()
{
currentTeam = 0;
digitalWrite (blueLEDPin, låg);
digitalWrite (greenLEDPin, låg);
digitalWrite (redLEDPin, låg);
digitalWrite (yellowLEDPin, låg);
}

void IncrementScore()
{
växel (currentTeam) {
fall blueLEDPin:
blueScore ++;
om (blueScore > 9) {
om (blueScore > 99) {
blueScore = 0;
}
blueDigit1 = antal [blueScore / 10];
}
blueDigit2 = antal [blueScore % 10];
bryta;
fall greenLEDPin:
greenScore ++;
om (greenScore > 9) {
om (greenScore > 99) {
greenScore = 0;
}
greenDigit1 = antal [greenScore / 10];
}
greenDigit2 = antal [greenScore % 10];
bryta;
fall redLEDPin:
redScore ++;
om (redScore > 9) {
om (redScore > 99) {
redScore = 0;
}
redDigit1 = antal [redScore / 10];
}
redDigit2 = antal [redScore % 10];
bryta;
fall yellowLEDPin:
yellowScore ++;
om (yellowScore > 9) {
om (yellowScore > 99) {
yellowScore = 0;
}
yellowDigit1 = antal [yellowScore / 10];
}
yellowDigit2 = antal [yellowScore % 10];
bryta;
}
ResetState();
}

void WriteScore()
{
display8x7segment (siffran [0], number[dotNumber]);
display8x7segment (siffran [0], blueDigit2);
display8x7segment (siffran [1], blueDigit1);
display8x7segment (siffran [2], number[dotNumber]);
display8x7segment (siffran [2], greenDigit2);
display8x7segment (siffran [3], greenDigit1);
display8x7segment (siffran [4], number[dotNumber]);
display8x7segment (siffran [4], redDigit2);
display8x7segment (siffran [5], redDigit1);
display8x7segment (siffran [6], number[dotNumber]);
display8x7segment (siffran [6], yellowDigit2);
display8x7segment (siffran [7], yellowDigit1);
}

void display8x7segment (byte siffra, byte nummer)
{
digitalWrite (latchPin, låg);
shiftOut (dataPin, clockPin, MSBFIRST, siffran); rensar rätt display
shiftOut (dataPin, clockPin, MSBFIRST, antal); rensar den vänstra displayen
digitalWrite (latchPin, hög);
Delay(1);
}

void PlayAnswerBlue()
{
display8x7segment (siffran [7], number[blankNumber]);
pip (speakerPin, NOTE_C5, 100);
Delay(25);
pip (speakerPin, NOTE_C5, 100);
Delay(25);
pip (speakerPin, NOTE_C5, 100);
}

void PlayAnswerGreen() {
display8x7segment (siffran [7], number[blankNumber]);
pip (speakerPin, NOTE_D5, 100);
Delay(25);
pip (speakerPin, NOTE_D5, 100);
Delay(25);
pip (speakerPin, NOTE_D5, 100);
}

void PlayAnswerRed() {
display8x7segment (siffran [7], number[blankNumber]);
pip (speakerPin, NOTE_E5, 100);
Delay(25);
pip (speakerPin, NOTE_E5, 100);
Delay(25);
pip (speakerPin, NOTE_E5, 100);
}

void PlayAnswerYellow() {
display8x7segment (siffran [7], number[blankNumber]);
pip (speakerPin, NOTE_F5, 100);
Delay(25);
pip (speakerPin, NOTE_F5, 100);
Delay(25);
pip (speakerPin, NOTE_F5, 100);
}

void PlayAccept() {
display8x7segment (siffran [7], number[blankNumber]);
pip (speakerPin, NOTE_C5, 75);
Delay(10);
pip (speakerPin, NOTE_D5, 75);
Delay(10);
pip (speakerPin, NOTE_E5, 75);
Delay(10);
pip (speakerPin, NOTE_G5, 75);
Delay(10);
pip (speakerPin, NOTE_E5, 75);
Delay(10);
pip (speakerPin, NOTE_G5, 75);
Delay(10);
pip (speakerPin, NOTE_C6, 75);
}

void PlayDeny() {
display8x7segment (siffran [7], number[blankNumber]);
pip (speakerPin, NOTE_A4, 1000);
}

void beep (unsigned char speakerPin, int frequencyInHertz, lång timeInMilliseconds)
{
int x;
lång delayAmount = (long)(1000000/frequencyInHertz);
lång loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2));
för (x = 0; x < loopTime; x ++)
{
digitalWrite (speakerPin, hög);
delayMicroseconds(delayAmount);
digitalWrite (speakerPin, låg);
delayMicroseconds(delayAmount);
}
}

Se Steg
Relaterade Ämnen

LittleBits + Arduino Game Show Summer

Vår butik, TechShop Chandler hade turen att ha valts för Instructables' juni bygga natt, sponsrad av littleBits!Vi blev skickade fyra littleBits Deluxe kit, och flera av deras helt nya Arduino på hjärtat moduler. Detta är ett av många projekt vi gjor...

Enkel knapp hacka - Wireless Game Show Summer - handledning

Hi guys,Jag skapade en flash baserade trivia spel för en av min skeptiker i Pub händelser. Det brukade vara kopplad till en gammal tangentbord, långa sladdar, handheld knappar, endast tre tävlande i taget. Hellre exklusivt för resten av folket deltar...

Quiz Game Controller med hjälp av "Ljus och ljud Buzzers" och Arduino

fara stil frågesport spel är favoriter för att skapa spänning och pedagogiska instruktioner samtidigt. Lärare, summer camp rådgivare och även industrin pedagoger hitta denna typ av spel för att skapa intresse och engagemang från deltagarna.Tanken bak...

DIY Gamer Kit - Summer handledning

Denna tutorial ska show du måste använda den DIY Gamer Kit Piezo summern i ditt program. Summern är vad vi använder för att göra allehanda bleeps och knarr, med smarta funktioner redan skapat i Gamer biblioteket!Programmet kommer vi att göra i den hä...

Game Show summern Lockout System

IntroduktionLetar du efter ett billigt alternativ för en GAME SHOW SUMMERN LOCKOUT SYSTEM. I detta projekt använder vi konstruktion hjälmar för skojs faktor istället för en låda typ konsol och skapa en mycket prisvärd spelet visar summern system. Den...

Game Show Circuit

Min syster och hustru är i utbildning, och eleverna spela en "Jeopardy" som spelet i klassrummet. Jag ville göra en krets för dem att använda. Efter att ha sett flera trådar om spelet visar kretsar och försöker (förgäves) att simulera många av d...

Låg kostnad trådlös DIY Game Show System för semester parter

Vill inte ha en tråkig semester part? Varför inte lägga lite trivia spelet visar kul till din semester part utan att det kostar dig mycket pengar? Vi har en $15 trådlös spelet visar popper systemlösning för dig utifrån en avvecklad Duo Pop för iPad s...

DIY Arduino Game Show knappar

Hur man gör en Game Show knappar med Arduino, Billigt och enkelt, för obegränsat kul!!Steg 1: delar 3 Led (valfri färg)3 10kΩ motstånd3 knapparArduinoenSkärbrädaHoppare ledningarSteg 2: Koppla upp Binda upp kretsen som schematiskt.Steg 3: Kod dags!La...

Arduino Game Show knappen

DIY spelet visar knappen, använda Arduino Uno.Komponenter som behövs:x2 Stripboard (25 x 55 hål-storlek 145 x 65 mm)X4 takt Switch (Single pole enda kast)X4 10 K ohm motståndX4 ledde (alla färger av ledde, rekommendera olika färger)x 2 singel ror 40...

Game show surr i systemet

Detta projekt var ursprungligen en utmaning från en vän som har några mycket konkurrenskraftiga arbetskamrater. Han frågade om det kunde bli billigare att DIY ett Jeopardy spel system än köpa en av sig själv och skickar den till Sverige. Det enda sät...

Quiz Show summern System med klammer enkel knapp

**uppdatering** det har kommit till min kännedom att nuvarande styrelsen Staples lätt knappen har förändrats genom åren och inte längre är densamma som den som jag använde för detta Instructable tillbaka i 2009. På grund av båda till tidsbrist och de...

KOMMA igång med ARDUINO #3 Summer

Hej, är jag tillbaka här att förklara användningen av Piezo Summer med Arduino. Har du du någonsin under skapa en musik ton med hjälp av Arduino? Denna ska tutorial undervisar dig hur man skapar en musik ton med hjälp av denna mest använda mikrokontr...

Hur man mars som en cyklon

The Iowa State University cyklonen Football "Varsity" Marching Band eller ISUCF "V" MB är marscherar premier band för Iowa State University i stora XII konferensen. För att upprätthålla denna högkvalitativa marscherar det är en utmanan...

DIY tyst bibliotek

i detta Instructable jag kommer att visa dig hur man sätter på din egen tyst bibliotek game show hemma, bra för partiets eller bara för skojs skull, låt oss komma igång!Steg 1: Leveranser Först ska jag visa dig hur du gör rutan som avslöjar utmaninge...

Mad Dog Robot

IntroduktionEfter ha sett IBM dator Watson slå två före detta mästare i fara tidigare i år, undrade jag om en enkel robot kunde konkurrera med människor i mer fysiska utmaningar.Här är en DIY robot för att tävla i "Mad Dog" utmaning som kan ses...

Göra en klammer enkel knapp (tm) kontroll din dator

Projektet är inspirerat av flera befintliga verkligen kreativ lätt knappen hacks jag har sett på Instructables. Här är lite billigare än de andra. Det är inte trådlös, inte heller en game show, och tar lite mer arbete, men det får ni snabbt :-)Steg 1...

BOJ

mina föräldrars stuga har inte drickbart kranvatten, så använder vi en massa flaskor vatten, juice flaskor och alla slags flaskor (min far föredrar ölflaskor). Det finns också inget återvinningssystem på detta område, så vi måste få alla dessa behåll...

En Microsoft PowerPoint Quiz

har du någonsin spelat The omöjlig frågesport av Splapp-mig-göra? Jag har, och jag ville göra en frågesport som det. Tyvärr, det är en flash-fil, och jag har inte råd en fotoblixt tillverkare. Men listat jag ut hur man gör en frågesport med Microsoft...

Lätt Carnival Loopz game

har du någonsin varit på en karneval och spelade ursprungliga Loopz game om och om igen tills du får slut på pengar? Förmodligen inte, men med denna DIY version av det ursprungliga spelet, du kan spela detta spel var du än är så många gånger du vill...