Components and supplies
I2C 16x2 Arduino LCD Display Module
keypad
Jumper wires (generic)
5 mm LED: Red
Power Relay, SPDT
Arduino Nano R3
5V 2.5A Switching Power Supply
Tools and machines
Multitool, Screwdriver
Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires
Hot glue gun (generic)
Apps and platforms
Arduino IDE
Project description
Code
Arduino Code
c_cpp
The Code For Keypad Lock System
1//feel free to contact 2//sreeramaj53@gmail.com 3//www,youtube.com/ZenoModiff 4 5#include <Wire.h> 6#include <Keypad.h> 7#include <LiquidCrystal_I2C.h> 8#include<EEPROM.h> 9LiquidCrystal_I2C liquid_crystal_display(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); 10 11char password[4]; 12 13char initial_password[4],new_password[4]; 14 15int i=0; 16 17int Led_pin = 12; 18 19char key_pressed=0; 20 21const byte rows = 4; 22const byte columns = 4; 23 24char hexaKeys[rows][columns] = { 25 26{'1','2','3','A'}, 27 28{'4','5','6','B'}, 29 30{'7','8','9','C'}, 31 32{'*','0','#','D'} 33 34}; 35 36byte row_pins[rows] = {5,4,3,2}; 37 38byte column_pins[columns] = {6,7,8,9}; 39 40Keypad keypad_key = Keypad( makeKeymap(hexaKeys), row_pins, column_pins, rows, columns); 41 42byte locked[8] = { 43 B01110, 44 B01010, 45 B01010, 46 B01010, 47 B11111, 48 B11111, 49 B11111, 50 B00000, 51}; 52byte unlocked[8] = { 53 B01110, 54 B01010, 55 B00010, 56 B00010, 57 B11111, 58 B11111, 59 B11111, 60 B00000, 61}; 62 63byte key[8] = { 64 B11111, 65 B10001, 66 B10001, 67 B11111, 68 B00100, 69 B01100, 70 B00100, 71 B01100 72}; 73 74void setup() 75 76{ 77 78 pinMode(Led_pin, OUTPUT); 79 80 liquid_crystal_display.begin(16,2); 81 liquid_crystal_display.createChar(0, locked); 82 liquid_crystal_display.createChar(1, unlocked); 83 liquid_crystal_display.createChar(2, key); 84 85 liquid_crystal_display.setCursor(1,0); 86 87 liquid_crystal_display.print(" ZenoModiff"); 88 89 liquid_crystal_display.setCursor(0,1); 90 91 liquid_crystal_display.write(byte(2)); 92 93 liquid_crystal_display.print(" Arduino Lock "); 94 95 liquid_crystal_display.write(byte(2)); 96 97 delay(2000); 98 99 liquid_crystal_display.clear(); 100 101 liquid_crystal_display.print(" Enter Password"); 102 103 liquid_crystal_display.setCursor(0,1); 104 105 initialpassword(); 106 107} 108 109 110 111 112void loop() 113 114{ 115 116 digitalWrite(Led_pin, LOW); 117 118 key_pressed = keypad_key.getKey(); 119 120 if(key_pressed=='#') 121 122 change(); 123 124 if (key_pressed) 125 126 { 127 128 password[i++]=key_pressed; 129 130 liquid_crystal_display.print(key_pressed); 131 132 } 133 134 if(i==4) 135 136 { 137 138 delay(200); 139 140 for(int j=0;j<4;j++) 141 142 initial_password[j]=EEPROM.read(j); 143 144 if(!(strncmp(password, initial_password,4))) 145 146 { 147 148 liquid_crystal_display.clear(); 149 150 liquid_crystal_display.print(" Pass Accepted"); 151 152 liquid_crystal_display.setCursor(7,1); 153 154 liquid_crystal_display.write(byte(1)); 155 156 157 digitalWrite(Led_pin, HIGH); 158 159 delay(2000); 160 161 liquid_crystal_display.clear(); 162 163 liquid_crystal_display.setCursor(0,1); 164 165 liquid_crystal_display.print("Pres # to change"); 166 167 delay(2000); 168 169 liquid_crystal_display.clear(); 170 171 liquid_crystal_display.print(" Enter Password:"); 172 173 liquid_crystal_display.setCursor(0,1); 174 175 i=0; 176 177 178 179 180 } 181 182 else 183 184 { 185 186 digitalWrite(Led_pin, LOW); 187 188 189 190 191 liquid_crystal_display.clear(); 192 193 liquid_crystal_display.print(" Wrong Password"); 194 195 liquid_crystal_display.setCursor(7,1); 196 197 liquid_crystal_display.write(byte(0)); 198 199 delay(2000); 200 201 liquid_crystal_display.clear(); 202 203 liquid_crystal_display.setCursor(0,1); 204 205 liquid_crystal_display.print("Pres # to change"); 206 207 delay(2000); 208 209 liquid_crystal_display.clear(); 210 211 liquid_crystal_display.print(" Enter Password:"); 212 213 liquid_crystal_display.setCursor(0,1); 214 215 i=0; 216 217 218 219 220 221 } 222 223 } 224 225} 226 227void change() 228 229{ 230 231 int j=0; 232 233 liquid_crystal_display.clear(); 234 235 liquid_crystal_display.print("Current Password"); 236 237 liquid_crystal_display.setCursor(0,1); 238 239 while(j<4) 240 241 { 242 243 char key=keypad_key.getKey(); 244 245 if(key) 246 247 { 248 249 new_password[j++]=key; 250 251 liquid_crystal_display.print(key); 252 253 254 255 } 256 257 key=0; 258 259 } 260 261 delay(500); 262 263 264 265 266 if((strncmp(new_password, initial_password, 4))) 267 268 { 269 270 liquid_crystal_display.clear(); 271 272 liquid_crystal_display.print("Wrong Password"); 273 274 liquid_crystal_display.setCursor(0,1); 275 276 liquid_crystal_display.print("Try Again"); 277 278 delay(1000); 279 280 } 281 282 else 283 284 { 285 286 j=0; 287 288 liquid_crystal_display.clear(); 289 290 liquid_crystal_display.print("New Password:"); 291 292 liquid_crystal_display.setCursor(0,1); 293 294 while(j<4) 295 296 { 297 298 char key=keypad_key.getKey(); 299 300 if(key) 301 302 { 303 304 initial_password[j]=key; 305 306 liquid_crystal_display.print(key); 307 308 EEPROM.write(j,key); 309 310 j++; 311 312 313 314 } 315 316 } 317 318 liquid_crystal_display.print("Pass Changed"); 319 320 delay(1000); 321 322 } 323 324 liquid_crystal_display.clear(); 325 326 liquid_crystal_display.print("Enter Password"); 327 328 liquid_crystal_display.setCursor(0,1); 329 330 key_pressed=0; 331 332} 333 334 335 336 337void initialpassword(){ 338 339 for(int j=0;j<4;j++) 340 341 EEPROM.write(j, j+49); 342 343 for(int j=0;j<4;j++) 344 345 initial_password[j]=EEPROM.read(j); 346 347} 348 349 350 // Coded With <3 ZenoModiff 351 // sreeramzeno@gmail.com 352 // www.youtube.com/ZenoModiff
Downloadable files
Schematics
Arduino Keypad Lock Circuit
Schematics
Schematics
Arduino Keypad Lock Circuit
Schematics
Comments
Only logged in users can leave comments