How to make a Priority-less Quiz Buzzer?

Discussion in 'Embedded Systems and Microcontrollers' started by astrotom, Jul 15, 2012.

  1. astrotom

    Thread Starter New Member

    Jul 14, 2012
    16
    0
    My project: A priority-less quiz buzzer using a microcontroller which outputs the teams in order of their response instead of blocking their buzzers if a buzzer is already pressed.

    Hello everyone here! I am new to the forums and infact new to electronics. My school's looking for a student made electronic buzzer and the one who makes it gets a prize. We are allowed to take help from anywhere.

    I am just a high school student and have just the basic knowledge of circuits and electronics which are covered in the syllabus. However I quite expert in programming in c and c++. I have also taken the time to research the internet for how microcontrollers work.

    Well as my project title says, I wish to make a buzzer which tells which team pressed 1st, 2nd, 3rd and so on instead of block other teams' buzzers if a buzzer is already pressed. I searched the net but the best link which I could understand is this one: http://www.engineersgarage.com/microcontroller/8051projects/8-candidate-quiz-buzzer-AT89C51-circuit
    However that's a regular quiz buzzer and not priority-less.

    If someone could help me modify that project to my needs, I would be grateful. I am attaching the resources from that site such as circuit diagrams and the microcontroller embedded codes here for easy evaluation.

    I also found another site which has just what I want but it was too confusing and it used a PC to monitor the inputs ans show the result instead of activating a buzzer. The link is this: http://electrosofts.com/parallel/buzzer.html

    I hope you guys help. And a complete setup guide for the project if possible would be welcome.

    Thank You.
     
  2. astrotom

    Thread Starter New Member

    Jul 14, 2012
    16
    0
    UPDATE: I thought hard I came up with something that may just work. I already had the code for my microcontroller ready which shows the order of response of team members. The only problem was that I didn't know how to output that to a device like seven segment display.

    I thought about and I realized, I could use 4 separate seven segments to represent the four teams and output the order of buzzer press to these 4 displays. However, I don't think there are enough pins for 4 seven segments on a AT89C51-8051 microcontroller. So maybe I would require two of them. I wanted to know if this idea is good enough and whether I would have to burn the code to both the chips or whether I could connect the two chips and use a single program. Any help would be appreciated.
     
  3. KJ6EAD

    Senior Member

    Apr 30, 2011
    1,425
    363
    You don't need two controllers, just a better method. You could use shift registers or BCD to 7-segment decoders or a dedicated display driver, for a few examples.
     
  4. astrotom

    Thread Starter New Member

    Jul 14, 2012
    16
    0
    Thanks for the reply. As I understand, A BCD to 7-segment consists of 4 inputs as opposed to 8 inputs for the 7-segment. So could I interface 4 of these BCDs with an 89C51. And can 2 BCDs be interfaced to the same port. Eg: BCD1 interface to Port0.0 through 0.3 and BCD2 interfaced to Port 0.4 thru 0.7 ? Could you please provide a link on how to interface a BCD?

    I didn't quite get what you meant by display driver though. Could you please go into a bit more detail? Also how would I implement using shift registers?

    I know I am asking a lot from you. But your help is and will be highly appreciated. Thank you.
     
  5. ErnieM

    AAC Fanatic!

    Apr 24, 2011
    7,386
    1,605
    Of course, for under $11 you could get something like this:

    [​IMG]

    Horrible image, they really look much better IRL. They take only 6 lines to control and give a ton of output information. I got one off EBay.
     
    • LCD.bmp
      File size:
      81.9 KB
      Views:
      126
  6. KJ6EAD

    Senior Member

    Apr 30, 2011
    1,425
    363
    I don't know your microcontroller. I had to program one in school but never since.

    Using the BCD to 7-segment decoder, you should be able to get by with 2 outputs from your microcontroller for each contestant since you only need 0000-0011 (the 2 highest bits don't change and could be hard-wired to ground).

    One example of a dedicated display driver is a MAX7219, though it's kind of old and I'm sure there are plenty of better new options.

    You can research interfacing microcontroller outputs on your own. I know there are a lot of resources available.

    If you're not required to use a numeric display, you could simply use 4 large LEDs to indicate the placements; 1 LED lit for first, 2 for second, etc. To do that you'd need 16 output pins unless you used multiplexing, charlieplexing or shift registers.
     
  7. adrenalina

    Active Member

    Jan 4, 2011
    78
    3
  8. astrotom

    Thread Starter New Member

    Jul 14, 2012
    16
    0
    @KJ6EAD Thanks for the input. I have figured out how to interface the BCD with the microcontroller.

    @ErnieM Thanks for the suggestion. That looks like something useful. Are you sure it needs only 6 I/O pins?

    @adrenalina Nice idea. That would easily solve the problem of multiple I/O inputs required. Thanks.

    Right now I am looking for a programmer for the 89C51. I need something basic and cheap and if possible, an USB interface. I have found a couple of them on ebay: http://www.ebay.com/itm/USB-AT-51-P...642?pt=LH_DefaultDomain_0&hash=item2eb0b601ca and http://www.ebay.com/itm/Atmel-8051-...s51-89s52-89c2051-89c4051-CHEAP-/280756472163

    Could you guys please suggest which one is better or if you know any better ones? Thanks again.
     
  9. ErnieM

    AAC Fanatic!

    Apr 24, 2011
    7,386
    1,605
    Quite sure. That's how I use them:

    1- RS
    2- E
    3- D4
    4- D5
    5- D6
    6- D7

    Optionally, you can also use the RW (read/write) pin if you want to read out what you already wrote there, or read out a "busy" flag bit. Otherwise just ground that pin.

    D4-D7 are the data lines, when initializing the device you can tell it to ignore D0-D3. Most people do. (If you use the bottom 4 lines you save a very tiny amount of time when writing to the device. It takes twice as long since you have to write everything out twice but it's very fast anyway.)

    Finally, the device has a backlight. You may want to use an output pin to make the display blink when you wish. Usually you can read it anyway without the backlight but the blink can be useful.

    So a minimum of 6 pins, middle of 8 pins, or a maximum of 12 pins.

    There's tons of example code on the web for how to run these things.

    (Stuff from China off EBay gets to me in NY in about 2 weeks for minimal a9free) shipping.)
     
  10. astrotom

    Thread Starter New Member

    Jul 14, 2012
    16
    0
    Thanks a lot! That was useful. Can you also please suggest me a good cheap programmer for the 8051 AMTEl chip? I have posted links to couple of them I found on ebay in my previous post. Could you please go through them and tell me whether they are good and which one to chose.

    Thanks
     
  11. ErnieM

    AAC Fanatic!

    Apr 24, 2011
    7,386
    1,605
Loading...