Using the Sparkfun 12 Button Keypad, With the Arduino

76,206

49

18

Introduction: Using the Sparkfun 12 Button Keypad, With the Arduino

About: I will try my best to provide cheap and easy intructables!

 Hi guys, well bought this keypad, and wasn't exactly sure how to wire it up, because the pins aren't in order!

well, I will give you a schematic, and code to have it up and running in no time...



Step 1: Wiring

The image says it all...
the resistors can be anything betwen 1Kohm, and 10Kohm.
they go from pin 3, 5, 6 and 7 to +5V.

Step 2: Code

 Removed directly from the arduino.cc website, the only mod, was the pins i chose...
the code is attached, instructables won't let me paste it onto here for some reason...

The code will print the numbers of they keys you pressed, to the COM port.
also, be sure to have the library ''keypad'' in your libraries folder, or this code will not compile.

To use similar, but not equal keypads, just grab your continuity tester, and press those buttons, you will easily find wich pins are for the rows, and wich are for the columns.


IF you need any help, just ask in the comments :)





Be the First to Share

    Recommendations

    • Battery Powered Contest

      Battery Powered Contest
    • Plywood Challenge

      Plywood Challenge
    • Plastic Contest

      Plastic Contest

    18 Discussions

    0
    RicardoNS
    RicardoNS

    2 years ago

    i have this error:
    In file included from C:\Users\Ricardo\Documents\Arduino\libraries\Keypad\Examples\CustomKeypad\CustomKeypad.pde:10:0:
    C:\Users\Ricardo\Documents\Arduino\libraries\Keypad/Keypad.h:36:22: fatal error: WProgram.h: No such file or directory
    #include
    ^
    compilation terminated.
    exit status 1

    0
    jcameron-1
    jcameron-1

    7 years ago on Step 2

    Thank you for this tutorial. I'm a Arduino newbie, so it was exactly what I was looking for to continue my vending project for my son. I was wondering if you had any examples of how to make a servo rotate if a correct "code" is put into the keypad? I've been searching like crazy but haven't come across any examples.

    0
    SamuelF5
    SamuelF5

    Reply 5 years ago

    hi! have you found the answer? I can help you, just email me: samukafranco@gmail.com

    0
    amando96
    amando96

    Reply 7 years ago on Step 2

    Put the keys into an array, compare the array to a predefined array of the "correct" code with an if statement, if equal then rotate servo, if not beep or whatever, take things by parts, break down big algorithms into small algorithms and you have no trouble doing anything.

    0
    network41
    network41

    10 years ago on Introduction

    I know little electronics than I should for what I'm doing but why do you say to wire contacts 3, 5, 6, 7 to resistors then 5v when you also say to connect them to pins on the Arduino. Surely you don't mean to connect it like that? I'd be much appreciated if you could clear my confusion.

    0
    clancylight
    clancylight

    Reply 8 years ago on Introduction

    hello, I'm wondering did you get this question answered? plug it into arduino pin and 5 volts? how?

    0
    amando96
    amando96

    Reply 10 years ago on Introduction

    Aye, look: http://www.arduino.cc/en/Tutorial/Button A resistor is needed, it might work without resistors, but they are keeping all the buttons high, without them the buttons will float and caus bad readings.

    0
    cavingboy92
    cavingboy92

    8 years ago on Introduction

    I have a problem where the arduino program says, 'byte' does not name a type. If you know, how can I fix this problem?

    0
    amando96
    amando96

    Reply 8 years ago on Introduction

    Which board/program version do you have? probably something that changed, try uint8_t instead of byte

    0
    cavingboy92
    cavingboy92

    Reply 8 years ago on Introduction

    I have the Arduino UNO SMD board. The arduino program that I have is Arduino 1.0.

    0
    nlepka
    nlepka

    9 years ago on Introduction

    on my keypad the pullup resistors are placed on 2, 4, 6, and 7... not 3, 5, 6, and 7
    the keypads look identical, but after examining the circuitboard itself, it's clear to see where the resistors should be placed...

    even though I managed to get power into my keypad, I still can't make my microprocessor react to it...

    any idea why?

    0
    ble2nk
    ble2nk

    9 years ago on Introduction

    excuse me, datasheet show that key 2:1+2 and 0:1+4, with your pull-up connection both of that keys (2 and 0) will not connected to pull-up, what do you think?

    0
    dcloud102
    dcloud102

    10 years ago on Introduction

    How did you know to put the resistor in the pins that you mentioned? Why not from pin 1 to 7? Thanks.

    0
    amando96
    amando96

    Reply 10 years ago on Introduction

    not exactly sure what I was thinking at the time, but it seems okay, keypads tend to be wired like this: http://www.o-digital.com/uploads/2179/2191-1/12_Key_Membrane_Switch_Keypad_848.jpg

    so pins 3, 5, 6 and 7 are for the horizontal connections, so no matter what button I press it will always have a resistor, I could have put the resistors on the vertical connection side, it would work, It even worked without resistors, but you never know, it's not good to leave floating pins.

    0
    dcloud102
    dcloud102

    Reply 10 years ago on Introduction

    Thanks for the help Amando96. Working great now.

    0
    dcloud102
    dcloud102

    10 years ago on Introduction

    I have question, so how did you know to connect the resistors to pin 3,5,6 and 7? Why not pin 1,2,3,4,5,6, and 7? What is the logic to putting the resistor in place where it is?

    0
    shyguy567
    shyguy567

    10 years ago on Introduction

    This is probably a stupid question, but Pins 3, 5, 6, and 7 should be connected to the 5V power supply and the Arduino or will the Arduino supply the power?

    0
    amando96
    amando96

    Reply 10 years ago on Introduction

    The arduino will read which one has a resistance of 0ohm(not 0ohm, it's not a super conductor, but yeah) If they where connected to 5v the readings would be wrong.