Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Using ADC for button arrays?

Status
Not open for further replies.

thecritic

Member
I am working on a Project with PIC16F676. I need several input buttons but I am falling short of input pins. I have one plan.
**broken link removed**

I think I should be able to use the PIC's ADC channel to read several buttons by utilizing only 1 pin. Do you think this is plausible? What are the troubles I may run into doing this?
Is this a general practice or I am trying to do something out of the box?
Also, can you think of better options?
 
Last time I used the same value resistor for every resistor. (1k). I would change "64R through R" to all 1k. Then make the switches short to ground. The right switch shorts out 1k. The next switch shorts out 2k (1+1). Then next switch takes out 3k.............
If you want to stay with the idea of no switches = 1/2 supply then 128R should be 7k.
 
Last time I used the same value resistor for every resistor. (1k). I would change "64R through R" to all 1k. Then make the switches short to ground. The right switch shorts out 1k. The next switch shorts out 2k (1+1). Then next switch takes out 3k.............
If you want to stay with the idea of no switches = 1/2 supply then 128R should be 7k.

Oh yeah. That is of course a better technique, no need of R,2R,4R... . Single value would do.
Provided that I have 10-bit ADC, how many buttons do you think I can use in this way?
2^10 = 1024? Don't think so!
 
The resistors are +/-5% or maybe 1%. The DAC is not good all the way to 10 bits. There are some errors in the DAC. I have used 10, 5% resistors in high volume products.
 
Ok, the hardware part seems fine using ronsimpson's technique. (Couln't undersant upand_at-thems's). Any tips for the software part? Will denouncing/averaging be necessary or since only 10 discrete levels are involved quick reading will be sufficient.? I need Poll the buttons really fast, the PIC has lot other things to do.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top