| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • Stop wasting time looking for files and revisions. Connect your Gmail, DriveDropbox, and Slack accounts and in less than 2 minutes, Dokkio will automatically organize all your file attachments. Learn more and claim your free account.

View
 

WilsonTang_FinalProject(BuzzerSystem)

Page history last edited by Wilson Tang 7 years, 1 month ago

  Buzzer System

Introduction: 

            A buzzer system is a system designed to allow a certain number of players to determine the first one to answer by "buzzing in". Making a buzzer system according to the  http://science.energy.gov/wdts/nsb/high-school/high-school-regionals/hs-rules-forms-resources/make-your-own-competition-buzzer/ (plan for buzzer same to official one for National Science Bowl)  costs $300, a high price tag for up and coming clubs wanting to compete without sufficient funds. Thus I decided to make one for my school team/club. 

 

List of materials: 

      -Arduino Micro ( or other micro controller)

      - housing box ( made of multiple pieces of acrylic )

       - 8 buzzers

              Composed of

                - buzzer - momentary push button on top of cylinder

                - light - 10 mm LED housed on top of  small acrylic box

                - wires 

     - multiplexer

     - perfboards 

     - AC-DC power supply

     - switch 

     - buttons 

     - LEDs 

     - Molex 

 

Code : 

     Starts up, sets up pins, cycles through multiplexed pins 0-7 to see if buzzer was pressed. When a buzzer is pressed at that index it will go to a light the corresponding led and then wait for another button to be pressed on top of the box, when button is pressed the buzzer LED turns off, and the  button LED lights up to designate that the reset has happened and buzzer presses are now being looked for. 

 

//8 button goes to 0 led

//9 button goes to 1 led

//10 button goes to 2 led

//11 button goes to 3 led

//12 button goes to 4 led

//13 button goes to 5 led

//14 button goes to 6 led

//15 button goes to 7 led

int r0 = 0; //value of select pin at (s0)

int r1 = 0; //value of select pin at (s1)

int r2 = 0; //value of select pin at (s2)

int r3 = 0; //value of select pin at (s3)

int count; //which y pin we are selecting 

int buzzedPin;

 

 

void lightLED(){

  // sets multiplexer to be demultiplexer

  pinMode(12,OUTPUT);

  //lights corresponding LED

  switch(buzzedPin){

    case 0: r0 = 0 ;

    r1 = 0;

    r2 = 0;

    r3 = 0;

    break;

    case 1: r0 = 1 ;

    r1 = 0;

    r2 = 0;

    r3 = 0;

    break;

    case 2: r0 = 0 ;

    r1 = 1;

    r2 = 0;

    r3 = 0;

    break;

    case 3: r0 = 1 ;

    r1 = 1;

    r2 = 0;

    r3 = 0;

    break;

    case 4: r0 = 0 ;

    r1 = 0;

    r2 = 1;

    r3 = 1;

    break;

    case 5: r0 = 0 ;

    r1 = 0;

    r2 = 1;

    r3 = 1;

    break;

    case 6: r0 = 0 ;

    r1 = 1;

    r2 = 1;

    r3 = 1;

    break;

    case 7: r0 = 0 ;

    r1 = 1;

    r2 = 1;

    r3 = 1;

    break;

  }

  digitalWrite(A0, r0);

  digitalWrite(A1, r1);

  digitalWrite(A2, r2);  

  digitalWrite(A3, r3);

  digitalWrite(12, HIGH);

  while(digitalRead(2) == HIGH){

    delay(10);

  };

  digitalWrite(3,HIGH);

  digitalWrite(12,LOW); 

  delay(1000);

  digitalWrite(3,LOW);

}

 

void setup(){

  pinMode(A0, OUTPUT);    // s0

 

  pinMode(A1, OUTPUT);    // s1

 

  pinMode(A2, OUTPUT);    // s2

 

  pinMode(A3, OUTPUT);    // s3

 

  pinMode(2,INPUT); //nextQuestionButton

 

  pinMode(3,OUTPUT); //clicked button light

 

  pinMode(4,OUTPUT);//on light

 

  Serial.begin(9600);

}

 

void loop () {

  pinMode(4,HIGH); // shows that the system is on.

   for (count=0; count<=7; count++) {

     // resets the multiplexer to become input 

     pinMode(12, INPUT);

 

    // select the bit  

    r0 = bitRead(count,0);    // use this with arduino 0013 (and newer versions)     

 

    r1 = bitRead(count,1);    // use this with arduino 0013 (and newer versions)     

 

    r2 = bitRead(count,2);    // use this with arduino 0013 (and newer versions)     

 

    r3 = 1;

 

    //r0 = count & 0x01;      // old version of setting the bits

 

    //r1 = (count>>1) & 0x01;      // old version of setting the bits

 

    //r2 = (count>>2) & 0x01;      // old version of setting the bits

 

    digitalWrite(A0, r0);

 

    digitalWrite(A1, r1);

 

    digitalWrite(A2, r2);

 

    digitalWrite(A3, r3); 

 

    if(digitalRead(12) == LOW){

      Serial.println(count+8);

         buzzedPin = count;    

         lightLED();

    }

  }

}

 

 

Point of View : System is designed for a 8 players, 2 teams of 4 designated by different colored LEDs. (with one question reader). Used for practice for National Science Bowl. 

 

 

Paper Prototype:

See WilsonTang_FinalProject(PaperPrototype) picture

 

Verplank Diagram:

See WilsonTang_FinalProject(Verplank Diagram) picture

 

State Diagram:

See WilsonTang_FinalProject(StateDiagram) file

 

Sample Buzzer Picture: 

see WilsonTang_FinalProject(Buzzer) picture

 

Sample Wire Picture:

see WilsonTang_FinalProject(Wiring) picture

 

Video Link :

http://youtu.be/6qE3ZCRMvtY

 

 

 

 

Comments (1)

Jessica Faruque said

at 9:01 pm on Aug 19, 2013

Thank you for doing such a thorough job, both in implementation and in documentation, of this challenging project! You had a great design point of view: it immediately zoomed in to the specifics of why it is necessary ($300, wow!) and who would be using it.

We like your documentation of the parts used and your thorough explanation of the code. We wish you also had circuit diagrams for the system so that it could be documented in more detail.

We were quite impressed by all of the building you had to do for this project - deciding which wires to use, designing the boxes with LEDs and the housing for the buzzers, and putting together all that wiring into the main box. We would love to see more photos of the building process, and also of the design of each of your parts -- some of them were very cleverly made.

We are happy that this project worked successfully. We wish that you could have provided documentation of some of the challenges you faced, and any pitfalls and how to avoid them.

Thank you for your hard work and unique contribution to this course!

- Jessica, Matt, Kevin, David, Vivien

You don't have permission to comment on this page.