

This circuit is designed around an Arduino UNO microcontroller and includes a variety of components to demonstrate a simple security system. The system uses a 4x4 membrane matrix keypad for input, a servo motor as a locking mechanism, and two LEDs (red and green) to indicate the lock status. The Arduino UNO controls the servo based on the input from the keypad and lights up the corresponding LED. The circuit is powered by a USB power source or a 9V battery.
5V and GND are used to power the Servo.D2 to D9 are connected to the 4x4 membrane matrix keypad.D11, D12, and D13 are used to control the Servo and LEDs.Cathode connected to Arduino UNO pin D12.Anode connected to a 200 Ohm resistor.Cathode connected to Arduino UNO pin D13.Anode connected to the same 200 Ohm resistor as the red LED.GND connected to Arduino UNO GND.VCC connected to Arduino UNO 5V.Pulse connected to Arduino UNO pin D11.R1 to R4 connected to Arduino UNO pins D8 to D9.C1 to C4 connected to Arduino UNO pins D5 to D2.GND.+ of both power sources are connected together.- of both power sources are connected together.#include <Servo.h>
#include <Keypad.h>
Servo ServoMotor;
char* password = "427"; // change the password here, just pick any 3 numbers
int position = 0;
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = { 8, 7, 6, 9 };
byte colPins[COLS] = { 5, 4, 3, 2 };
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
int RedpinLock = 12;
int GreenpinUnlock = 13;
void setup()
{
pinMode(RedpinLock, OUTPUT);
pinMode(GreenpinUnlock, OUTPUT);
ServoMotor.attach(11);
LockedPosition(true);
}
void loop()
{
char key = keypad.getKey();
if (key == '*' || key == '#')
{
position = 0;
LockedPosition(true);
}
if (key == password[position])
{
position ++;
}
if (position == 3)
{
LockedPosition(false);
}
delay(100);
}
void LockedPosition(int locked)
{
if (locked)
{
digitalWrite(RedpinLock, HIGH);
digitalWrite(GreenpinUnlock, LOW);
ServoMotor.write(11);
}
else
{
digitalWrite(RedpinLock, LOW);
digitalWrite(GreenpinUnlock, HIGH);
ServoMotor.write(90);
}
}
This code is responsible for controlling the servo motor based on the input from the keypad. It also controls the red and green LEDs to indicate the lock status. When the correct password is entered, the green LED lights up, and the servo moves to the unlock position. If an incorrect key is pressed, the red LED lights up, and the servo remains in the locked position.