Is there a keypad membrane with 4 arrows?

Looked around as I wanted to get a keypad membrane with 4 buttons and I'd like to have arrows so I can stick the membrane on the outside of the project box. The clear box (an old iPod store case) will be able to show LCD but I didn't want to cut hole for buttons if I can find buttons.

All I found were buttons 1-4 and it doesn't look like it'd be easy to wipe the number off. I found one place that had 4 arrows membrane panel but I am not shelling out $20 for that! I could also go with blank ones but I have the drawing skill of an average kindergartner so I'd need to print something out to apply on the blank membrane.

It does not matter if the buttons were arranged in 1x4 or in cross style.

Any idea? Preferably one that ships to USA and doesn't cost a lot (under $10 shipped)

Have you considered an IR remote?


Changing my sketch from keypad to remote may not be difficult but 1600 lines of code, lots of variables, there may not be much memory left to add a library. I'd have to check in the morning to see what my sketch uses, and what the library requires.

I wrote a library here for both remotes show.

Here is the sketch example for the 17 button remote.
About 2,000 bytes (no tone or Serial) for the library and this sketch:

eBay Remotes

//17 button IR remote
//NEC - IR code
//By: LarryD 
//This sketch demonstrates interfacing to a 17 button IR remote.
//These are commonly available on eBay for $2 USD.
//The remote usually comes with a controller. 
//It is an all in one IR detector/amplifier similar to TSOP38238, yours may vary
//**Always confirm the detector/amplifier you have is wired as per YOUR data sheet**
//Remove the detector from the controller for this discussion and wire it to +5V and GND.
//Datasheet for the IR detector:
//For wiring, see:     
//Interrupt 0 (pin D2) is used to achieve fast receive response.
//See also:            


#include <IRremoteNEC.h>
//We must use an interrupt pin, 2 or 3 on an UNO, Ethernet or ATmega1284
//connect this pin to the IR Receiver Module
//#define interruptPin 3  

#define interruptPin 2 

//confirm the correct interrupt pin has been selected
#if interruptPin != 2 && interruptPin != 3
#error interruptPin must be 2 or 3!
IRremoteNEC myRemote(interruptPin); //create the object using this pin


#define tonePin 7            //Piezo speaker is connected to this pin

//17 button Keypad
const byte buttonCode[18] = {
  0x43,0x15,0x00, //0X00 is not defined
}; //END of buttonCode Array

const byte ASCIIcode[18] = {
  // ^    <   New line  
  // >    v  nul 
  // 1    2    3 
  // 4    5    6 
  // 7    8    9 
  // *    0    # 
}; //END of ASCIIcode Array 


void setup(void) 


//************************** E N D   s e t u p ( ) *****************************

void loop(void) 
  //Check if we have received a valid IR code yet. 
    byte byteRX = myRemote.checkCode();
    //If we get a verified button code, convert it to an ASCII code.
      //Scan through the buttonCode Array.
      //NOTE: IR remote repeat codes are not returned.
      for (int i = 0; i < 18; i++) 
        if (buttonCode[i] == byteRX)
          Serial.print(char(ASCIIcode[i])); //get the ASCII code

          //We found it, no need to continue looking.
    } // END of if(byteRX)

    //Get ready for the next falling edge.

  } // END of if(myRemote.getIRflag())

  // Other loop stuff goes here

//************************** E N D   l o o p ( ) *****************************

//                             END OF CODE


I'll try it, I'd need to order the remote and IR receiver.

wilykat: I'll try it, I'd need to order the remote and IR receiver.

Available cheaply as a kit on eBay.

Here they are on eBay.