Quiz Game Show zumbador (4 / 8 paso)

Paso 4: El código

So... Estoy incluyendo mi código, pero no estoy explicando todo... y sí, sé que hay no hay comentarios... Si tienes preguntas, no dude en preguntarme, pero no hago esto para hacer un tutorial de programación.

Primero necesita incluir "pitches.h"... pero para poder incluirlo, tiene que partir de aquí... Tutorial de Arduino tono

#include "pitches.h"

A continuación vamos a definir algunas matrices para ayudarnos a nosotros mismos para más adelante cuando necesitamos utilizar los 8 dígitos 7 segmentos Mostrar

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

También debemos definir algunas constantes que nos ayudará a identificar los pines de entrada y salidas más adelante en el código

 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; 

También es necesario mantener algunas variables para saber lo que está sucediendo en el programa

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

Luego configuramos los modos de pin y la pantalla

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

Y creamos la función de bucle que se ejecutará después de la instalación

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

Como ves, he creado funciones para separar mi código un poco mejor... así que vamos a crear las funciones

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

Artículos Relacionados

LittleBits + Arduino Game Show zumbador

LittleBits + Arduino Game Show zumbador

Nuestra tienda, TechShop Chandler tuvo la suerte de haber sido seleccionados para junio construir de noche de Instructables, patrocinado por littleBits!Fuimos enviados cuatro littleBits Kits de lujoy varios de sus nuevo Arduino en módulos de corazón.
Fácil tutorial botón Hack - Wireless Game Show zumbador -

Fácil tutorial botón Hack - Wireless Game Show zumbador -

Hola chicos,Creé una trivia basado flash juego para uno de mis escépticos en los eventos de Pub. Se utiliza para conectar hasta un viejo teclado, cables, botones de mano, sólo tres concursantes en un momento. Algo exclusivo para el resto de las perso
Buzz game show en sistema

Buzz game show en sistema

Este proyecto fue originalmente un desafío de un amigo que tiene algunos compañeros de trabajo muy competitivo. Preguntó si podría ser más barato a DIY un sistema de juego del peligro de comprar uno fuera de uno mismo y enviarlo a Suecia. Bueno la ún
Sistema de bajo costo DIY Wireless Game Show para fiestas

Sistema de bajo costo DIY Wireless Game Show para fiestas

¿No quieres una fiesta aburrida? ¿Por qué no añadir diversión juego de trivia para tu fiesta sin que te cueste mucho dinero? Contamos con una solución de sistema de popper de demostración del juego inalámbrico $15 para usted, basado en un Pop de dúo
Kit Gamer DIY - Tutorial zumbador

Kit Gamer DIY - Tutorial zumbador

Este tutorial mostrará a que usted tiene que utilizar piezoeléctrico zumbador del Gamer Kit de DIY en sus programas. El timbre es lo que utilizamos para hacer todo tipo de pitidos y chirridos, usando funciones inteligentes ya creadas en la biblioteca
Zumbador de quiz 8 candidato utilizando el microcontrolador 8051 (AT89C51)

Zumbador de quiz 8 candidato utilizando el microcontrolador 8051 (AT89C51)

el concurso zumbador sistemas son ampliamente utilizados en escuela, colegios y programas de televisión. El equipo que presiona el timbre más temprano tiene derecho a dar la respuesta. A veces resulta muy difícil identificar qué equipo ha presionado
Simple clase Quiz zumbadores

Simple clase Quiz zumbadores

es fácil para hacer el aula simple quiz zumbadores. Usar un interruptor, dos stopwatches(including batteries) electrónica, alambre de cuatro metros y algunas herramientas eléctricas. Es un circuito en paralelo.Pero tiene baja exactitud.
Zumbador infrarroja Quiz (wireless)

Zumbador infrarroja Quiz (wireless)

¡ Hola gente!Prepárate explorar el rincón y la esquina de las señales IR y hacen alarde de los códigos de Arduino. Zumbador de IR utiliza un circuito similar de un mando a distancia TV (Abra el control remoto y echar un vistazo!). Tenemos una sección
Quiz sistema de... Hackeado de luces de pared

Quiz sistema de... Hackeado de luces de pared

Esta es una guía sobre cómo construir realmente barato y atractivo buscando Systrem Quiz basado en luces de pared hackeado y placa Arduino. El video muestra el proceso de diseño y montaje y si parece interesante por favor Bienvenido a la página sigui
El Tutorial más simple del zumbador; Usando Arduino

El Tutorial más simple del zumbador; Usando Arduino

Hey los fabricantes,Vamos a hacer un Simple timbre Quiz usando Arduino!¿Paso 1: Lo que podemos hacer con él?¿Qué podemos hacer con él?> quiz juego Buzzer> tocar melodías y mucho más...Paso 2:Cosas necesarias> Arduino Uno (comprar de Amazon.in) (c
Médico interactivo que Quiz ordenador.

Médico interactivo que Quiz ordenador.

Doctor Who video de prueba para dispositivos móviles.Bienvenida.En este Instructable le mostrará cómo hacer tu propio interactivo juego de preguntas opción múltiple que utiliza reconocimiento de voz, síntesis de voz, archivos .exe, una paz de softwar
Juego de Show de televisión interactiva

Juego de Show de televisión interactiva

Interactivo TV es un canal de tamil, donde tenemos mucho de programas y juegos interactivos por llamar al número y utilice el botón móvil para jugar al juego en la televisión. Quiero hacer algo como eso para TV por cable local para mi amigo.Así que u
Transferencia de energía inalámbrica zumbador piezoeléctrico

Transferencia de energía inalámbrica zumbador piezoeléctrico

Intro:En este instructable mostraré cómo lograr la transferencia de energía sin hilos con el circuito muy simple.Dispositivo es capaz de transmitir energía sin cables, a gama muy limitada de alrededor de pocos centímetros.Este dispositivo es, constru
El guante de zumbador

El guante de zumbador

este es un proyecto súper sencillo usando piezas de la placa Lilypad Arduino Protosnap desarrollo. Esencialmente, toca diferentes partes del guante y el zumbador hace ruidos diferentes. Este proyecto es ideal para principiantes ya que la programación