Arduino Resistor-less Keypad Access Control




Introduction: Arduino Resistor-less Keypad Access Control

This instructable uses the internal ATMEGA resistors to drive a 4x4 keypad for access control. Most of the information comes from, I also used sources from here and there.

Using external resistors is cumbersome and totally unneeded because the ATMEGA has resistors to pull the digital pins up. Then, programmatically we'll put them down one column at a time to determine which key was pressed.

Parts list:

        - Arduino UNO R3 (Feel free to use a different one).

        - Flat keypad from amazon ( The code allows us to use any size keypads just changing the numRows, numCols and keymap varibales. The only limit is the number of pins in your Arduino.

        - Servo, I'm using "Servo Hitec HS-422HD Standard Deluxe" bought from a local electronics store.

        - Wires.

You set your password in the variable password. If the keyed password is correct, the motor will action for 2 seconds and the led in pin 13 will light up. If the password is wrong the led on pin 13 will blink 5 times rapidly.

See it in action:


Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

1 Person Made This Project!


  • LED Strip Speed Challenge

    LED Strip Speed Challenge
  • Sculpting Challenge

    Sculpting Challenge
  • Clocks Contest

    Clocks Contest

9 Discussions


3 years ago

Everything is connected as shown , loaded libraries, and sketch in the standby mode, the servo drive is constantly twitches , if the code is activated and pressed again continues drebizzhat


4 years ago on Introduction

explain how can i change password(user defined)?

step:1 enter default password

step:2 enter 'A' check password

step3: password correct then go light up led if not blink led 5 times

step4: enter 'B' change password (( how can i change password) i need some explanation here)


Reply 6 years ago on Introduction

I just uploaded both libraries. Tested in 1.0.5