Instructables

Analog Keypad Backpack

Picture of Analog Keypad Backpack
You know those ole 12 button keypads which are very easy to use but eat microcontroller IOs like they are candy? Well now you can have your cake and eat it with this simple backpack board which will convert one of these hungry beasts down to consuming only a single analog input rather than 12 digital inputs.

You will need:
  • 12 button common terminal keypad. 1x
  • 1k ohm resistor, 12x
  • 12k ohm resistor, 1x
  • Protoboard (approx 1.5" x 1.5"), 1x
  • Soldering iron & solder
  • Hookup wire (red - approx 2"), x1
  • Hookup wire (black - approx 2"), x12
  • Hookup wire (red,black,yellow - approx 5"), x3
Optional:
  • Molex crimp pins, 3x
  • Molex female connector, 1x
  • Molex male connector, 1x
  • Hot glue gun
  • Mini vise

 
Remove these adsRemove these ads by Signing Up

Step 1: Circuit Design

Picture of Circuit Design
board.png
The circuit is a simple series resistor ladder + voltage divider.
The common terminal of the keypad is held high through a 12k pullup resistor.
Each key terminal of the keypad is connected to a 1k resistor.
That resistor is in turn connected in series with its neighbor in a ladder twoards the common terminal.
The end of the resistor ladder is tied to ground.
The signal line is a voltage divider with its reference point between the 12K resistor and the resistor ladder.
Depressing a key causes a chain of resistors with a unique value to be introduced into the voltage divider, giving each key a unique analog value.

Eagle schematic files are attached for ease of reproduction on a protoboard or single sided etched copper board.

Step 2: Connect Protoboard to keypad

Picture of Connect Protoboard to keypad
  1. Insert the keypad into the vise.
  2. Strip both ends of the 2" red wire and the 2" black wire.
  3. Solder the red wire to the common terminal of the keypad.
  4. Solder the 12 black wires to the button terminals of the keypad.
  5. Glue the underside of the wires to provide stress relief to the solder joints.
  6. Thread all 13 wires into the protoboard in a straight line and solder them in place.
acheide7 months ago
Very ingenious implementation!
Here's an image of my DIY keypad

http://dominion-network.co.uk/projectstuff/keypad.jpg

I'm currently in the process of neatening it up so it looks a lot better, and so I'm also able to 'waterproof' it with a diy membrane.
Hey, it's me again, I'm trying to get your library to work with this library
http://www.arduino.cc/playground/Code/Password
But I'm not having any luck, could you give me a hand?
Sure, send me your code - declan@shanaghy.com

Also, are you 100% sure you have a common terminal keypad?
Sorry but i have to start with the basic questions, some people do try to use this library with a matrix keypad and it wont work with that.
I don't have a fancy one like you, I've scratch built mine (Working on turning it into an instructable) and it works perfectly (All the buttons match up with the keys) and I've not really got any code (None that work anyway) other than the two separate libraries, I've tried combining the "PasswordKeypad" example with the analog keypad library but doesn't seem to want to work and I'm currently at a loss.
OK Send me the code you have anyway.
I cant help without seeing what you're working with.

Also send me some pics of the hardware physical
hardware setup or eagle schematics.

Im also a little unclear on what you mean by combining both.
I assume you want to capture input from the keypad and pass it onto
the password library. Is this correct?
I sent the stuff you requested, it'll be from "webmaster[at]dominion-network[dot]co[dot]uk"
I haven't been able to make it into a solder board project yet (the board hasn't been delivered yet), I've currently got buttons 1 through 9 on a solderless breadboard at the moment.

But yeah I'm trying to capture input from the analog keypad and pass it through to the password library and so far everything I've attempted has failed...

Once I've had my dinner I will take the required photos and I will email them as well as the code I've got.
By any chance would you be able to take some more photos of the resistors? I'm trying to design a PCB and some of the steps are a little confusing for example the placement of the black, red and yellow wires, a diagram would be great.
declanshanaghy (author) 3 years ago
HEADS UP!
All the source is avaiable on github:
https://github.com/declanshanaghy/KeypadBackpack

I've started implementing the Arduino Library to read the keys (see here)
https://raw.github.com/declanshanaghy/KeypadBackpack/master/AnalogKeypad/AnalogKeypad.pde


However, the code doesn't include any debouncing logic yet. I should get that implemented within the next week. (busy with some other stuff)

Feel free to fork and send me a pull request if you implement it yourself.
declanshanaghy (author)  declanshanaghy3 years ago
Added debouncing and repeat rate options to the code. Files are pasted above.
Thank you for this!, I've read an instructable (look for Arduino 3 wire Matrix Keypad) saying how to do this, but it never gave any actual step by step instructions with images, I've bookmarked this and when I get one of these keypads I'll be doing this.

Where did you get your keypad from? was it Maplins? (UK) or Sparkfun? (USA)
This approach won't work with a Matrix keypad (such as the one sparkfun sells)

The keypad must be the type that has 13 terminals.
1 for each of the 12 keys and 1 common termal

I got this "common terminal" keypad at allelectronics.com
http://www.allelectronics.com/make-a-store/item/KP-12/12-BUTTON-KEYPAD//1.html

Most people use matrix keyds because it saves pins compared to a common terminal keypad. However, i think the common terminal approach is much easier since you can get it down to only using 1 pin with a few measly resistors.


I have another question about that keypad, do you have a datasheet for it? I'm looking at creating a disposable one for a project (Don't want to pay money for a keypad that may get damaged in this particular project)
Sorry, I dont have a datasheet.
AllElectronics is pretty bad when it comes to datasheets - basically non existent for any of their products.

Thanks for the link and the information, I can't wait to do/use this for my project
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!