Arduino tranmiter
Arduino transmitter board using nrf24l01 & 2*16 lcd
Components and supplies
1
Buzzer
1
Analog joystick (Generic)
1
ATmega328PB microcontroller
Tools and machines
1
Soldering iron (generic)
1
Solder Wire, Lead Free
Apps and platforms
1
Arduino IDE
Project description
Code
Code
c_cpp
Enjoy IT :)
1//Every Arduino At least Like Arduino Uno This Code Designed And Enhanced By Seyed Miad Mirhaj. 2//variables 3boolean about = true ; // shows the information 4int Low_contrast = 0 ; 5int Time_About_Menu = 3000 ; // wait and pass the title 6 7 8 9//pins 10#define Vibre_Pin 1 11#define joyx1 A0 12#define joyx2 A2 13#define joyy1 A1 14#define joyy2 A3 15#define joys A4 16#define buzzer_pin 3 17const int rs = 8, en = 7, d4 = 4, d5 = 2, d6 = 0, d7 = A5; 18int bright = 6 ; 19int contrast = 5 ; 20 21 22//password part ( don not chage this part ) 23boolean password_check = false ; 24int wrong1 = 0 ; 25int wrong2 = 0 ; 26int wrong3 = 0 ; 27int pass = 0 ; 28int password_input_value_user = 0 ; 29int last_time_password = 0 ; 30int times_that_entered_wrong_password = 5 ; 31 32 33 34//to adjust the joystick sensivity you can change this items . 35int min_joyx = 200 , max_joyx = 850 ; 36int min_joyy = 200 , max_joyy = 850 ; 37 38 39//Attention !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 40// pass word is : 41int pas = 1888 ; 42// dont forget pass word , because it needs password 43//Attention !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 44 45 46//By adjusting this values you can choose where you want to use password 47boolean start_pass = true ; 48boolean new_pass_check_last_pass = true ; 49boolean entri_run = true ; 50 51 52 53 54//end pass 55int menu = 0 ; 56int y_menu1 = 0 ; 57int d = 0 ; 58int y_menu2 = 0 ; 59int menu2_child = 0 ; 60int nrf_init = 0 ; 61int lcd_contrast = 0 ; 62int lcd_bright = 255 ; 63int d_5 = 0 ; 64 65//end of variables 66 67//libraries 68 69 70/*if you are using an i2c lcd : 71 2-block lines : 77 & 78 & 79 & 116 72 3- unblock lines : 75 & 76 & 117 & 118 & 119 73 4-you are done . now you can use i2c 2*16 lcd :) 74*/ 75//#include<LiquidCrystal_I2C.h> 76//LiquidCrystal_I2C lcd(0x27 , 16 , 2); 77#include <LiquidCrystal.h> 78LiquidCrystal lcd(rs, en, d4, d5, d6, d7); 79 80 81 82 83#include <SPI.h> 84#include <nRF24L01.h> 85#include <RF24.h> 86RF24 radio(9, 10); // nRF24L01 (CE, CSN) 87 88//notice : chack out your address to be correct !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 89const byte address[6] = "00001"; // Address 90//notice : chack out your address to be correct !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 91struct Data_Package { 92 byte joy_x1; 93 byte joy_y1; 94 byte joy_x2; 95 byte joy_y2; 96}; 97Data_Package data; //Create a variable with the above structure 98 99//end of libraries 100 101 102//enable vibre or buzzer 103boolean buzzer_enable = true ; 104boolean vibre_enable = false ; 105void setup() { 106 pinMode(bright, OUTPUT); 107 pinMode(contrast, OUTPUT); 108 analogWrite(bright, lcd_bright); 109 analogWrite(contrast, lcd_contrast); 110 pinMode(joys, INPUT_PULLUP); 111 pinMode(buzzer_pin, OUTPUT); 112 pinMode(Vibre_Pin, OUTPUT); 113 buzzer(200, 255); 114 vibre(5000); 115 lcd.begin(16, 2); 116 // lcd.init(); 117 // lcd.init(); 118 // lcd.backlight(); 119 if (about == true) About_Menu(); 120 if (start_pass == true )password(pas); 121 lcd.setCursor(4, 0); 122 lcd.print("Welcome!"); 123 delay(Time_About_Menu); 124 lcd.clear(); 125} 126void loop() { 127 while (menu == 0) { 128 while (d == 0) { 129 lcd.clear(); 130 lcd.setCursor(0, 0); 131 lcd.print("Values :"); 132 lcd.setCursor(0, 1); 133 lcd.print("Run :"); 134 lcd.setCursor(15, y_menu1); 135 lcd.print("<"); 136 d = 1 ; 137 } 138 while (d == 1) { 139 if (analogRead(joyx1) > max_joyx)if (y_menu1 != 0 ) { 140 y_menu1 = 0 ; 141 lcd.clear(); 142 lcd.setCursor(0, 0); 143 lcd.print("Values :"); 144 lcd.setCursor(0, 1); 145 lcd.print("Run :"); 146 lcd.setCursor(15, y_menu1); 147 lcd.print("<"); 148 } 149 if (analogRead(joyx1) < min_joyx)if (y_menu1 != 1 ) { 150 y_menu1 = 1 ; 151 lcd.clear(); 152 lcd.setCursor(0, 0); 153 lcd.print("Values :"); 154 lcd.setCursor(0, 1); 155 lcd.print("Run :"); 156 lcd.setCursor(15, y_menu1); 157 lcd.print("<"); 158 } 159 if (y_menu1 == 0 && digitalRead(joys) == 0 ) { 160 menu = 1 ; 161 menu2_child = 0 ; 162 d = 0 ; 163 if (alarm == 0 )buzzer(200, 255); 164 else if (alarm == 1 )vibre(200); 165 else ; 166 break ; 167 } 168 if (y_menu1 == 1 && digitalRead(joys) == 0) { 169 menu = 2 ; 170 d = 0 ; 171 if (alarm == 0 )buzzer(200, 255); 172 else if (alarm == 1 )vibre(200); 173 else ; 174 break ; 175 } 176 } 177 } 178 while (menu == 1) { 179 while (d == 0) { 180 lcd.clear(); 181 lcd.setCursor(0, 0); 182 lcd.print("lcd brightness:"); 183 lcd.setCursor(0, 1); 184 lcd.print("lcd contrast :"); 185 lcd.setCursor(15, y_menu2); 186 lcd.print("<"); 187 lcd.setCursor(14, 1); 188 lcd.print("!"); 189 d = 1 ; 190 } 191 while (d == 1) { 192 while (menu2_child == 0) { 193 if (analogRead(joyx1) > max_joyx )if (y_menu2 != 0) { 194 y_menu2 = 0 ; 195 if (alarm == 0 )buzzer(200, 255); 196 else if (alarm == 1 )vibre(200); 197 else ; 198 lcd.clear(); 199 lcd.setCursor(0, 0); 200 lcd.print("lcd brightness:"); 201 lcd.setCursor(14, 1); 202 lcd.print("!"); 203 lcd.setCursor(0, 1); 204 lcd.print("lcd contrast :"); 205 lcd.setCursor(15, y_menu2); 206 lcd.print("<"); 207 } 208 if (analogRead(joyx1) < min_joyx ) { 209 if (y_menu2 == 1) { 210 y_menu2 = 0 ; 211 if (alarm == 0 )buzzer(200, 255); 212 else if (alarm == 1 )vibre(200); 213 else ; 214 lcd.clear(); 215 lcd.setCursor(0, 0); 216 lcd.print("lcd contrast :"); 217 lcd.setCursor(14, 1); 218 lcd.print("!"); 219 lcd.setCursor(14, 0); 220 lcd.print("^"); 221 lcd.setCursor(0, 1); 222 lcd.print("Change Pass :"); 223 lcd.setCursor(15, y_menu2); 224 lcd.print("<"); 225 menu2_child = 1 ; 226 break ; 227 } 228 if (y_menu2 != 1) { 229 y_menu2 = 1 ; 230 if (alarm == 0 )buzzer(200, 255); 231 else if (alarm == 1 )vibre(200); 232 else ; 233 lcd.clear(); 234 lcd.setCursor(0, 0); 235 lcd.print("lcd brightness:"); 236 lcd.setCursor(14, 1); 237 lcd.print("!"); 238 lcd.setCursor(0, 1); 239 lcd.print("lcd contrast :"); 240 lcd.setCursor(15, y_menu2); 241 lcd.print("<"); 242 } 243 } 244 if (y_menu2 == 0 && digitalRead(joys) == 0) { 245 lcd.clear(); 246 if (alarm == 0 )buzzer(200, 255); 247 else if (alarm == 1 )vibre(200); 248 else ; 249 lcd.setCursor(0, 0); 250 lcd.print("Brightness :"); 251 lcd.setCursor(12, 0); 252 lcd.print(lcd_bright); 253 lcd.setCursor(0, 1); 254 lcd.print("0-255 - Save:But"); 255 menu2_child = 3 ; 256 break ; 257 } 258 if (y_menu2 == 1 && digitalRead(joys) == 0) { 259 lcd.clear(); 260 if (alarm == 0 )buzzer(200, 255); 261 else if (alarm == 1 )vibre(200); 262 else ; 263 lcd.setCursor(0, 0); 264 lcd.print("contrast :"); 265 lcd.setCursor(12, 0); 266 lcd.print(lcd_contrast); 267 lcd.setCursor(0, 1); 268 lcd.print("0-255 - Save:But"); 269 menu2_child = 4 ; 270 break ; 271 } 272 } 273 while (menu2_child == 1) { 274 if (analogRead(joyx1) > max_joyx ) { 275 if (y_menu2 == 0) { 276 y_menu2 = 1 ; 277 if (alarm == 0 )buzzer(200, 255); 278 else if (alarm == 1 )vibre(200); 279 else ; 280 lcd.clear(); 281 lcd.setCursor(14, 1); 282 lcd.print("!"); 283 lcd.setCursor(0, 0); 284 lcd.print("lcd brightness:"); 285 lcd.setCursor(0, 1); 286 lcd.print("lcd contrast :"); 287 lcd.setCursor(15, y_menu2); 288 lcd.print("<"); 289 menu2_child = 0 ; 290 break ; 291 } 292 if (y_menu2 != 0) { 293 y_menu2 = 0 ; 294 if (alarm == 0 )buzzer(200, 255); 295 else if (alarm == 1 )vibre(200); 296 else ; 297 lcd.clear(); 298 lcd.setCursor(14, 1); 299 lcd.print("!"); 300 lcd.setCursor(14, 0); 301 lcd.print("^"); 302 lcd.setCursor(0, 0); 303 lcd.print("lcd contrast :"); 304 lcd.setCursor(0, 1); 305 lcd.print("Change Pass :"); 306 lcd.setCursor(15, y_menu2); 307 lcd.print("<"); 308 } 309 } 310 if (analogRead(joyx1) < min_joyx ) { 311 if (y_menu2 == 1) { 312 y_menu2 = 0 ; 313 if (alarm == 0 )buzzer(200, 255); 314 else if (alarm == 1 )vibre(200); 315 else ; 316 lcd.clear(); 317 lcd.setCursor(0, 0); 318 lcd.print("Change Pass :"); 319 lcd.setCursor(0, 1); 320 lcd.print("EXIT :"); 321 lcd.setCursor(15, y_menu2); 322 lcd.print("<"); 323 lcd.setCursor(14, 0); 324 lcd.print("^"); 325 menu2_child = 2 ; 326 break ; 327 } 328 if (y_menu2 != 1) { 329 y_menu2 = 1 ; 330 if (alarm == 0 )buzzer(200, 255); 331 else if (alarm == 1 )vibre(200); 332 else ; 333 lcd.clear(); 334 lcd.setCursor(0, 0); 335 lcd.print("lcd contrast :"); 336 lcd.setCursor(0, 1); 337 lcd.print("Change Pass :"); 338 lcd.setCursor(15, y_menu2); 339 lcd.print("<"); 340 lcd.setCursor(14, 1); 341 lcd.print("!"); 342 lcd.setCursor(14, 0); 343 lcd.print("^"); 344 } 345 } 346 if (y_menu2 == 0 && digitalRead(joys) == 0) { 347 lcd.clear(); 348 if (alarm == 0 )buzzer(200, 255); 349 else if (alarm == 1 )vibre(200); 350 else ; 351 lcd.setCursor(0, 0); 352 lcd.print("contrast :"); 353 lcd.setCursor(12, 0); 354 lcd.print(lcd_contrast); 355 lcd.setCursor(0, 1); 356 lcd.print("0-255 - Save:But"); 357 menu2_child = 4 ; 358 break ; 359 } 360 if (y_menu2 == 1 && digitalRead(joys) == 0) { 361 lcd.clear(); 362 if (alarm == 0 )buzzer(200, 255); 363 else if (alarm == 1 )vibre(200); 364 else ; 365 menu2_child = 5 ; 366 break ; 367 } 368 } 369 while (menu2_child == 2) { 370 if (analogRead(joyx1) > max_joyx ) { 371 if (y_menu2 == 0) { 372 y_menu2 = 1 ; 373 if (alarm == 0 )buzzer(200, 255); 374 else if (alarm == 1 )vibre(200); 375 else ; 376 lcd.clear(); 377 lcd.setCursor(0, 0); 378 lcd.print("lcd contrast :"); 379 lcd.setCursor(0, 1); 380 lcd.print("Change Pass :"); 381 lcd.setCursor(15, y_menu2); 382 lcd.print("<"); 383 lcd.setCursor(14, 1); 384 lcd.print("!"); 385 lcd.setCursor(14, 0); 386 lcd.print("^"); 387 menu2_child = 1 ; 388 break ; 389 } 390 if (y_menu2 != 0) { 391 y_menu2 = 0 ; 392 if (alarm == 0 )buzzer(200, 255); 393 else if (alarm == 1 )vibre(200); 394 else ; 395 lcd.clear(); 396 lcd.setCursor(0, 0); 397 lcd.print("Change Pass :"); 398 lcd.setCursor(0, 1); 399 lcd.print("EXIT :"); 400 lcd.setCursor(15, y_menu2); 401 lcd.print("<"); 402 lcd.setCursor(14, 0); 403 lcd.print("^"); 404 } 405 } 406 if (analogRead(joyx1) < min_joyx ) 407 if (y_menu2 != 1) { 408 y_menu2 = 1 ; 409 if (alarm == 0 )buzzer(200, 255); 410 else if (alarm == 1 )vibre(200); 411 else ; 412 lcd.clear(); 413 lcd.setCursor(0, 1); 414 lcd.print("EXIT :"); 415 lcd.setCursor(0, 0); 416 lcd.print("Change Pass :"); 417 lcd.setCursor(15, y_menu2); 418 lcd.print("<"); 419 lcd.setCursor(14, 0); 420 lcd.print("^"); 421 } 422 if (y_menu2 == 0 && digitalRead(joys) == 0) { 423 lcd.clear(); 424 if (alarm == 0 )buzzer(200, 255); 425 else if (alarm == 1 )vibre(200); 426 else ; 427 menu2_child = 5 ; 428 break ; 429 } 430 if (y_menu2 == 1 && digitalRead(joys) == 0) { 431 lcd.clear(); 432 if (alarm == 0 )buzzer(200, 255); 433 else if (alarm == 1 )vibre(200); 434 else ; 435 menu2_child = 10 ; 436 y_menu2 = 0 ; 437 y_menu1 = 0 ; 438 d = 0 ; 439 menu = 0 ; 440 break ; 441 } 442 } 443 while (menu2_child == 3) { 444 if (analogRead(joyx1) < min_joyx && lcd_bright > 0) { 445 lcd_bright -- ; 446 analogWrite(bright, lcd_bright); 447 if (alarm == 0 )buzzer(200, 255); 448 else if (alarm == 1 )vibre(200); 449 else ; 450 lcd.clear(); 451 lcd.setCursor(0, 0); 452 lcd.print("Brightness :"); 453 lcd.setCursor(12, 0); 454 lcd.print(lcd_bright); 455 lcd.setCursor(0, 1); 456 lcd.print("0-255 - Save:But"); 457 } 458 if (analogRead(joyx1) > max_joyx && lcd_bright < 255) { 459 lcd_bright ++ ; 460 analogWrite(bright, lcd_bright); 461 if (alarm == 0 )buzzer(200, 255); 462 else if (alarm == 1 )vibre(200); 463 else ; 464 lcd.clear(); 465 lcd.setCursor(0, 0); 466 lcd.print("Brightness :"); 467 lcd.setCursor(12, 0); 468 lcd.print(lcd_bright); 469 lcd.setCursor(0, 1); 470 lcd.print("0-255 - Save:But"); 471 } 472 if (digitalRead(joys) == 0) { 473 if (alarm == 0 )buzzer(200, 255); 474 else if (alarm == 1 )vibre(200); 475 else ; 476 lcd.clear(); 477 lcd.setCursor(0, 0); 478 lcd.print("lcd brightness:"); 479 lcd.setCursor(14, 1); 480 lcd.print("!"); 481 lcd.setCursor(0, 1); 482 lcd.print("lcd contrast :"); 483 lcd.setCursor(15, y_menu2); 484 lcd.print("<"); 485 menu2_child = 0 ; 486 break ; 487 } 488 } 489 while (menu2_child == 4) { 490 if (analogRead(joyx1) < min_joyx && lcd_contrast > Low_contrast) { 491 lcd_contrast -- ; 492 analogWrite(contrast, lcd_contrast); 493 if (alarm == 0 )buzzer(200, 255); 494 else if (alarm == 1 )vibre(200); 495 else ; 496 lcd.clear(); 497 lcd.setCursor(0, 0); 498 lcd.print("contrast :"); 499 lcd.setCursor(12, 0); 500 lcd.print(lcd_contrast); 501 lcd.setCursor(0, 1); 502 lcd.print("0-255 - Save:But"); 503 } 504 if (analogRead(joyx1) > max_joyx && lcd_contrast < 255) { 505 lcd_contrast ++ ; 506 analogWrite(contrast, lcd_contrast); 507 if (alarm == 0 )buzzer(200, 255); 508 else if (alarm == 1 )vibre(200); 509 else ; 510 lcd.clear(); 511 lcd.setCursor(0, 0); 512 lcd.print("contrast :"); 513 lcd.setCursor(12, 0); 514 lcd.print(lcd_contrast); 515 lcd.setCursor(0, 1); 516 lcd.print("0-255 - Save:But"); 517 } 518 if (digitalRead(joys) == 0) { 519 if (y_menu2 == 0) { 520 if (alarm == 0 )buzzer(200, 255); 521 else if (alarm == 1 )vibre(200); 522 else ; 523 lcd.clear(); 524 lcd.setCursor(0, 0); 525 lcd.print("lcd contrast:"); 526 lcd.setCursor(14, 1); 527 lcd.print("!"); 528 lcd.setCursor(14, 0); 529 lcd.print("^"); 530 lcd.setCursor(0, 1); 531 lcd.print("Change Pass :"); 532 lcd.setCursor(15, y_menu2); 533 lcd.print("<"); 534 menu2_child = 1 ; 535 break ; 536 } 537 if (y_menu2 == 1) { 538 if (alarm == 0 )buzzer(200, 255); 539 else if (alarm == 1 )vibre(200); 540 else ; 541 lcd.clear(); 542 lcd.setCursor(0, 0); 543 lcd.print("lcd brightness:"); 544 lcd.setCursor(14, 1); 545 lcd.print("!"); 546 lcd.setCursor(0, 1); 547 lcd.print("lcd contrast :"); 548 lcd.setCursor(15, y_menu2); 549 lcd.print("<"); 550 menu2_child = 0 ; 551 break ; 552 } 553 } 554 } 555 while (menu2_child == 5) { 556 while (d_5 == 0) { 557 if (new_pass_check_last_pass == true) password(pas); 558 pas = 0 ; 559 lcd.setCursor(0, 0); 560 lcd.print("New Pass:"); 561 lcd.setCursor(9, 0); 562 lcd.print(pas); 563 lcd.setCursor(2, 1); 564 lcd.print("Save :Button"); 565 d_5 = 1 ; 566 } 567 while (d_5 == 1) { 568 if (analogRead(joyx1) > max_joyx) { 569 pas ++ ; 570 if (alarm == 0 )buzzer(200, 255); 571 else if (alarm == 1 )vibre(200); 572 else ; 573 lcd.clear(); 574 lcd.setCursor(0, 0); 575 lcd.print("New Pass:"); 576 lcd.setCursor(9, 0); 577 lcd.print(pas); 578 lcd.setCursor(2, 1); 579 lcd.print("Save :Button"); 580 } 581 if (analogRead(joyx1) < min_joyx) { 582 pas -- ; 583 if (alarm == 0 )buzzer(200, 255); 584 else if (alarm == 1 )vibre(200); 585 else ; 586 lcd.clear(); 587 lcd.setCursor(0, 0); 588 lcd.print("New Pass:"); 589 lcd.setCursor(9, 0); 590 lcd.print(pas); 591 lcd.setCursor(2, 1); 592 lcd.print("Save :Button"); 593 } 594 if (analogRead(joyy1) > max_joyy)if (pas != 0) { 595 pas *= 10 ; 596 if (alarm == 0 )buzzer(200, 255); 597 else if (alarm == 1 )vibre(200); 598 else ; 599 lcd.clear(); 600 lcd.setCursor(0, 0); 601 lcd.print("New Pass:"); 602 lcd.setCursor(9, 0); 603 lcd.print(pas); 604 lcd.setCursor(2, 1); 605 lcd.print("Save :Button"); 606 } 607 if (analogRead(joyy1) < min_joyx)if (pas != 0) { 608 pas /= 10 ; 609 if (alarm == 0 )buzzer(200, 255); 610 else if (alarm == 1 )vibre(200); 611 else ; 612 lcd.clear(); 613 lcd.setCursor(0, 0); 614 lcd.print("New Pass:"); 615 lcd.setCursor(9, 0); 616 lcd.print(pas); 617 lcd.setCursor(2, 1); 618 lcd.print("Save :Button"); 619 } 620 if (digitalRead(joys) == 0) { 621 if (y_menu2 == 0) { 622 lcd.clear(); 623 if (alarm == 0 )buzzer(200, 255); 624 else if (alarm == 1 )vibre(200); 625 else ; 626 lcd.setCursor(0, 0); 627 lcd.print("Password Saved !"); 628 delay(Time_About_Menu); 629 lcd.clear(); 630 lcd.setCursor(0, 0); 631 lcd.print("Change Pass :"); 632 lcd.setCursor(0, 1); 633 lcd.print("Exit"); 634 lcd.setCursor(15, y_menu2); 635 lcd.print("<"); 636 lcd.setCursor(14, 0); 637 lcd.print("^"); 638 d_5 = 0 ; 639 menu2_child = 2 ; 640 break ; 641 } 642 if (y_menu2 == 1) { 643 lcd.clear(); 644 if (alarm == 0 )buzzer(200, 255); 645 else if (alarm == 1 )vibre(200); 646 else ; 647 lcd.setCursor(0, 0); 648 lcd.print("Password Saved !"); 649 delay(Time_About_Menu); 650 lcd.clear(); 651 lcd.setCursor(0, 1); 652 lcd.print("Change Pass :"); 653 lcd.setCursor(0, 0); 654 lcd.print("lcd contrast :"); 655 lcd.setCursor(15, y_menu2); 656 lcd.print("<"); 657 lcd.setCursor(14, 0); 658 lcd.print("^"); 659 lcd.setCursor(14, 1); 660 lcd.print("!"); 661 d_5 = 0 ; 662 menu2_child = 1 ; 663 break ; 664 } 665 } 666 } 667 } 668 } 669 } 670 while (menu == 2) { 671 while (d == 0) { 672 if (entri_run == true) password(pas); 673 if (nrf_init == 0) { 674 lcd.clear(); 675 lcd.setCursor(0, 0); 676 lcd.print("Initial The Nrf!"); 677 lcd.setCursor(0, 1); 678 lcd.print("Please Wait"); 679 radio.begin(); 680 radio.openWritingPipe(address); 681 radio.setAutoAck(false); 682 radio.setDataRate(RF24_250KBPS); 683 radio.setPALevel(RF24_PA_LOW); 684 lcd.clear(); 685 lcd.setCursor(5, 0); 686 lcd.print("Ready!"); 687 lcd.setCursor(1, 1); 688 lcd.print("Exit : Button"); 689 nrf_init = 1 ; 690 d = 1 ; 691 } 692 else { 693 lcd.clear(); 694 lcd.setCursor(1, 1); 695 lcd.print("Exit : Button"); 696 lcd.setCursor(5, 0); 697 lcd.print("Ready!"); 698 d = 1 ; 699 } 700 } 701 while (d == 1) { 702 data.joy_x1 = map(analogRead(joyx2), 0, 1023, 0, 255); 703 data.joy_y1 = map(analogRead(joyy2), 0, 1023, 0, 255); 704 data.joy_x2 = map(analogRead(joyx2), 0, 1023, 0, 255); 705 data.joy_y2 = map(analogRead(joyy2), 0, 1023, 0, 255); 706 radio.write(&data, sizeof(Data_Package)); 707 if (digitalRead(joys) == 0) { 708 menu = 0 ; 709 d = 0 ; 710 if (alarm == 0 )buzzer(200, 255); 711 else if (alarm == 1 )vibre(200); 712 else ; 713 break ; 714 } 715 } 716 } 717} 718void About_Menu() { 719 lcd.clear(); 720 lcd.setCursor(2, 0); 721 lcd.print("Hello World"); 722 delay(Time_About_Menu); 723 lcd.clear(); 724 lcd.setCursor(3, 0); 725 lcd.print("Transmiter"); 726 lcd.setCursor(3, 1); 727 lcd.print("Version 4"); 728 delay(Time_About_Menu); 729 lcd.clear(); 730 lcd.setCursor(3, 0); 731 lcd.print("Version 4"); 732 lcd.setCursor(4, 1); 733 lcd.print("By Seyed"); 734 delay(Time_About_Menu); 735 lcd.clear(); 736 lcd.setCursor(4, 0); 737 lcd.print("By Seyed"); 738 lcd.setCursor(2, 1); 739 lcd.print("Miad Mirhaj"); 740 delay(Time_About_Menu); 741 lcd.clear(); 742 lcd.setCursor(2, 0); 743 lcd.print("Notice :This"); 744 lcd.setCursor(0, 1); 745 lcd.print("Version Handles"); 746 delay(Time_About_Menu); 747 lcd.clear(); 748 lcd.setCursor(0, 0); 749 lcd.print("Version Handles"); 750 lcd.setCursor(1, 1); 751 lcd.print("2.4gh Signals"); 752 delay(Time_About_Menu); 753 lcd.clear(); 754 lcd.setCursor(1, 0); 755 lcd.print("2.4gh Signals"); 756 delay(Time_About_Menu); 757 lcd.clear(); 758 lcd.setCursor(0, 0); 759 lcd.print("So Lets Begin :)"); 760 delay(Time_About_Menu); 761 lcd.clear(); 762 for (int About_y = 0 ; About_y < 2 ; About_y ++) 763 for (int About_x = 0 ; About_x < 16 ; About_x ++ ) { 764 lcd.setCursor(About_x, About_y); 765 lcd.print("."); 766 delay(200); 767 lcd.clear(); 768 } 769} 770void vibre(int Time_Vibre) { 771 digitalWrite(Vibre_Pin , HIGH); 772 delay(Time_Vibre); 773 digitalWrite(Vibre_Pin , LOW ); 774} 775void buzzer(int time_buzzer , int value_buzzer) { 776 analogWrite(buzzer_pin , value_buzzer); 777 delay(time_buzzer); 778 digitalWrite(buzzer_pin , LOW); 779} 780void password(int Password_Input) { 781 lcd.clear(); 782 lcd.print("Pass:"); 783 lcd.setCursor(5, 0); 784 lcd.print(password_input_value_user); 785 lcd.setCursor(1, 1); 786 lcd.print("ENTER : Button"); 787 while (password_check != true) { 788 if (analogRead(joyx1) > max_joyx) { 789 password_input_value_user ++ ; 790 lcd.clear(); 791 lcd.print("Pass:"); 792 lcd.setCursor(5, 0); 793 lcd.print(password_input_value_user); 794 lcd.setCursor(1, 1); 795 lcd.print("ENTER : Button"); 796 if (alarm == 0 )buzzer(200, 255); 797 else if (alarm == 1 )vibre(200); 798 else ; 799 } 800 if (analogRead(joyx1) < min_joyx) { 801 password_input_value_user -- ; 802 lcd.clear(); 803 lcd.print("Pass:"); 804 lcd.setCursor(5, 0); 805 lcd.print(password_input_value_user); 806 lcd.setCursor(1, 1); 807 lcd.print("ENTER : Button"); 808 if (alarm == 0 )buzzer(200, 255); 809 else if (alarm == 1 )vibre(200); 810 else ; 811 } 812 if (analogRead(joyy1) > max_joyy) if (password_input_value_user != 0) { 813 password_input_value_user *= 10 ; 814 lcd.clear(); 815 lcd.print("Pass:"); 816 lcd.setCursor(5, 0); 817 lcd.print(password_input_value_user); 818 lcd.setCursor(1, 1); 819 lcd.print("ENTER : Button"); 820 if (alarm == 0 )buzzer(200, 255); 821 else if (alarm == 1 )vibre(200); 822 else ; 823 } 824 if (analogRead(joyy1) < min_joyy)if (password_input_value_user != 0) { 825 password_input_value_user /= 10 ; 826 lcd.clear(); 827 lcd.print("Pass:"); 828 lcd.setCursor(5, 0); 829 lcd.print(password_input_value_user); 830 lcd.setCursor(1, 1); 831 lcd.print("ENTER : Button"); 832 if (alarm == 0 )buzzer(200, 255); 833 else if (alarm == 1 )vibre(200); 834 else ; 835 } 836 if (password_input_value_user == Password_Input && digitalRead(joys) == 0) { 837 password_input_value_user = 0; 838 wrong1 = 0 ; 839 wrong2 = 0 ; 840 wrong3 = 0 ; 841 password_check = true ; 842 lcd.clear(); 843 if (alarm == 0 )buzzer(200, 255); 844 else if (alarm == 1 )vibre(200); 845 else ; 846 lcd.setCursor(3, 0); 847 lcd.print("True Pass!"); 848 delay(1000); 849 lcd.clear(); 850 break ; 851 } 852 else if (password_input_value_user != Password_Input && digitalRead(joys) == 0) { 853 password_input_value_user = 0; 854 lcd.clear(); 855 lcd.setCursor(2, 0); 856 lcd.print("Wrong Pass !"); 857 if (alarm == 0 )buzzer(200, 255); 858 else if (alarm == 1 )vibre(200); 859 else ; 860 wrong1 ++ ; 861 lcd.clear(); 862 lcd.print("Pass:"); 863 lcd.setCursor(5, 0); 864 lcd.print(password_input_value_user); 865 lcd.setCursor(1, 1); 866 lcd.print("ENTER : Button"); 867 } 868 if (wrong1 == times_that_entered_wrong_password) { 869 for (int time_wrong1 = 30 ; time_wrong1 > 0 ; time_wrong1 -- ) { 870 lcd.clear(); 871 lcd.setCursor(0, 1); 872 lcd.print("^ Time To Try: ^"); 873 lcd.setCursor(6, 0); 874 lcd.print("0:"); 875 lcd.setCursor(8, 0); 876 lcd.print(time_wrong1); 877 delay(980); 878 } 879 lcd.clear(); 880 lcd.print("Pass:"); 881 lcd.setCursor(5, 0); 882 lcd.print(password_input_value_user); 883 lcd.setCursor(1, 1); 884 lcd.print("ENTER : Button"); 885 wrong1 = 0 ; 886 wrong2 = 1 ; 887 } 888 if (wrong1 == 1 && wrong2 == 1) { 889 for (int time_wrong2_minute = 4 ; time_wrong2_minute >= 0 ; time_wrong2_minute -- ) 890 for (int time_wrong2_second = 59 ; time_wrong2_second >= 0 ; time_wrong2_second --) { 891 lcd.clear(); 892 lcd.setCursor(0, 1); 893 lcd.print("^ Time To Try: ^"); 894 lcd.setCursor(6, 0); 895 lcd.print(time_wrong2_minute); 896 lcd.setCursor(7, 0); 897 lcd.print(":"); 898 lcd.setCursor(8, 0); 899 lcd.print(time_wrong2_second); 900 delay(980); 901 } 902 lcd.clear(); 903 lcd.print("Pass:"); 904 lcd.setCursor(5, 0); 905 lcd.print(password_input_value_user); 906 lcd.setCursor(1, 1); 907 lcd.print("ENTER : Button"); 908 wrong1 = 0 ; 909 wrong2 = 0 ; 910 wrong3 = 1 ; 911 } 912 if (wrong1 == 1 && wrong3 == 1) { 913 lcd.clear(); 914 lcd.setCursor(3, 0); 915 lcd.print("No Way To"); 916 lcd.setCursor(4, 1); 917 lcd.print("Control!"); 918 while (1); 919 } 920 } 921 password_check = false ; 922} 923int alarm() { 924 if (buzzer_enable == true && vibre_enable == false )return 0 ; 925 if (buzzer_enable == false && vibre_enable == true )return 1 ; 926 if (buzzer_enable == true && vibre_enable == true )return 0 ; 927 if (buzzer_enable == false && vibre_enable == false )return 2 ; 928} 929
Code
c_cpp
Enjoy IT :)
1//Every Arduino At least Like Arduino Uno This Code Designed And Enhanced By Seyed Miad Mirhaj. 2//variables 3boolean about = true ; // shows the information 4int Low_contrast = 0 ; 5int Time_About_Menu = 3000 ; // wait and pass the title 6 7 8 9//pins 10#define Vibre_Pin 1 11#define joyx1 A0 12#define joyx2 A2 13#define joyy1 A1 14#define joyy2 A3 15#define joys A4 16#define buzzer_pin 3 17const int rs = 8, en = 7, d4 = 4, d5 = 2, d6 = 0, d7 = A5; 18int bright = 6 ; 19int contrast = 5 ; 20 21 22//password part ( don not chage this part ) 23boolean password_check = false ; 24int wrong1 = 0 ; 25int wrong2 = 0 ; 26int wrong3 = 0 ; 27int pass = 0 ; 28int password_input_value_user = 0 ; 29int last_time_password = 0 ; 30int times_that_entered_wrong_password = 5 ; 31 32 33 34//to adjust the joystick sensivity you can change this items . 35int min_joyx = 200 , max_joyx = 850 ; 36int min_joyy = 200 , max_joyy = 850 ; 37 38 39//Attention !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 40// pass word is : 41int pas = 1888 ; 42// dont forget pass word , because it needs password 43//Attention !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 44 45 46//By adjusting this values you can choose where you want to use password 47boolean start_pass = true ; 48boolean new_pass_check_last_pass = true ; 49boolean entri_run = true ; 50 51 52 53 54//end pass 55int menu = 0 ; 56int y_menu1 = 0 ; 57int d = 0 ; 58int y_menu2 = 0 ; 59int menu2_child = 0 ; 60int nrf_init = 0 ; 61int lcd_contrast = 0 ; 62int lcd_bright = 255 ; 63int d_5 = 0 ; 64 65//end of variables 66 67//libraries 68 69 70/*if you are using an i2c lcd : 71 2-block lines : 77 & 78 & 79 & 116 72 3- unblock lines : 75 & 76 & 117 & 118 & 119 73 4-you are done . now you can use i2c 2*16 lcd :) 74*/ 75//#include<LiquidCrystal_I2C.h> 76//LiquidCrystal_I2C lcd(0x27 , 16 , 2); 77#include <LiquidCrystal.h> 78LiquidCrystal lcd(rs, en, d4, d5, d6, d7); 79 80 81 82 83#include <SPI.h> 84#include <nRF24L01.h> 85#include <RF24.h> 86RF24 radio(9, 10); // nRF24L01 (CE, CSN) 87 88//notice : chack out your address to be correct !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 89const byte address[6] = "00001"; // Address 90//notice : chack out your address to be correct !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 91struct Data_Package { 92 byte joy_x1; 93 byte joy_y1; 94 byte joy_x2; 95 byte joy_y2; 96}; 97Data_Package data; //Create a variable with the above structure 98 99//end of libraries 100 101 102//enable vibre or buzzer 103boolean buzzer_enable = true ; 104boolean vibre_enable = false ; 105void setup() { 106 pinMode(bright, OUTPUT); 107 pinMode(contrast, OUTPUT); 108 analogWrite(bright, lcd_bright); 109 analogWrite(contrast, lcd_contrast); 110 pinMode(joys, INPUT_PULLUP); 111 pinMode(buzzer_pin, OUTPUT); 112 pinMode(Vibre_Pin, OUTPUT); 113 buzzer(200, 255); 114 vibre(5000); 115 lcd.begin(16, 2); 116 // lcd.init(); 117 // lcd.init(); 118 // lcd.backlight(); 119 if (about == true) About_Menu(); 120 if (start_pass == true )password(pas); 121 lcd.setCursor(4, 0); 122 lcd.print("Welcome!"); 123 delay(Time_About_Menu); 124 lcd.clear(); 125} 126void loop() { 127 while (menu == 0) { 128 while (d == 0) { 129 lcd.clear(); 130 lcd.setCursor(0, 0); 131 lcd.print("Values :"); 132 lcd.setCursor(0, 1); 133 lcd.print("Run :"); 134 lcd.setCursor(15, y_menu1); 135 lcd.print("<"); 136 d = 1 ; 137 } 138 while (d == 1) { 139 if (analogRead(joyx1) > max_joyx)if (y_menu1 != 0 ) { 140 y_menu1 = 0 ; 141 lcd.clear(); 142 lcd.setCursor(0, 0); 143 lcd.print("Values :"); 144 lcd.setCursor(0, 1); 145 lcd.print("Run :"); 146 lcd.setCursor(15, y_menu1); 147 lcd.print("<"); 148 } 149 if (analogRead(joyx1) < min_joyx)if (y_menu1 != 1 ) { 150 y_menu1 = 1 ; 151 lcd.clear(); 152 lcd.setCursor(0, 0); 153 lcd.print("Values :"); 154 lcd.setCursor(0, 1); 155 lcd.print("Run :"); 156 lcd.setCursor(15, y_menu1); 157 lcd.print("<"); 158 } 159 if (y_menu1 == 0 && digitalRead(joys) == 0 ) { 160 menu = 1 ; 161 menu2_child = 0 ; 162 d = 0 ; 163 if (alarm == 0 )buzzer(200, 255); 164 else if (alarm == 1 )vibre(200); 165 else ; 166 break ; 167 } 168 if (y_menu1 == 1 && digitalRead(joys) == 0) { 169 menu = 2 ; 170 d = 0 ; 171 if (alarm == 0 )buzzer(200, 255); 172 else if (alarm == 1 )vibre(200); 173 else ; 174 break ; 175 } 176 } 177 } 178 while (menu == 1) { 179 while (d == 0) { 180 lcd.clear(); 181 lcd.setCursor(0, 0); 182 lcd.print("lcd brightness:"); 183 lcd.setCursor(0, 1); 184 lcd.print("lcd contrast :"); 185 lcd.setCursor(15, y_menu2); 186 lcd.print("<"); 187 lcd.setCursor(14, 1); 188 lcd.print("!"); 189 d = 1 ; 190 } 191 while (d == 1) { 192 while (menu2_child == 0) { 193 if (analogRead(joyx1) > max_joyx )if (y_menu2 != 0) { 194 y_menu2 = 0 ; 195 if (alarm == 0 )buzzer(200, 255); 196 else if (alarm == 1 )vibre(200); 197 else ; 198 lcd.clear(); 199 lcd.setCursor(0, 0); 200 lcd.print("lcd brightness:"); 201 lcd.setCursor(14, 1); 202 lcd.print("!"); 203 lcd.setCursor(0, 1); 204 lcd.print("lcd contrast :"); 205 lcd.setCursor(15, y_menu2); 206 lcd.print("<"); 207 } 208 if (analogRead(joyx1) < min_joyx ) { 209 if (y_menu2 == 1) { 210 y_menu2 = 0 ; 211 if (alarm == 0 )buzzer(200, 255); 212 else if (alarm == 1 )vibre(200); 213 else ; 214 lcd.clear(); 215 lcd.setCursor(0, 0); 216 lcd.print("lcd contrast :"); 217 lcd.setCursor(14, 1); 218 lcd.print("!"); 219 lcd.setCursor(14, 0); 220 lcd.print("^"); 221 lcd.setCursor(0, 1); 222 lcd.print("Change Pass :"); 223 lcd.setCursor(15, y_menu2); 224 lcd.print("<"); 225 menu2_child = 1 ; 226 break ; 227 } 228 if (y_menu2 != 1) { 229 y_menu2 = 1 ; 230 if (alarm == 0 )buzzer(200, 255); 231 else if (alarm == 1 )vibre(200); 232 else ; 233 lcd.clear(); 234 lcd.setCursor(0, 0); 235 lcd.print("lcd brightness:"); 236 lcd.setCursor(14, 1); 237 lcd.print("!"); 238 lcd.setCursor(0, 1); 239 lcd.print("lcd contrast :"); 240 lcd.setCursor(15, y_menu2); 241 lcd.print("<"); 242 } 243 } 244 if (y_menu2 == 0 && digitalRead(joys) == 0) { 245 lcd.clear(); 246 if (alarm == 0 )buzzer(200, 255); 247 else if (alarm == 1 )vibre(200); 248 else ; 249 lcd.setCursor(0, 0); 250 lcd.print("Brightness :"); 251 lcd.setCursor(12, 0); 252 lcd.print(lcd_bright); 253 lcd.setCursor(0, 1); 254 lcd.print("0-255 - Save:But"); 255 menu2_child = 3 ; 256 break ; 257 } 258 if (y_menu2 == 1 && digitalRead(joys) == 0) { 259 lcd.clear(); 260 if (alarm == 0 )buzzer(200, 255); 261 else if (alarm == 1 )vibre(200); 262 else ; 263 lcd.setCursor(0, 0); 264 lcd.print("contrast :"); 265 lcd.setCursor(12, 0); 266 lcd.print(lcd_contrast); 267 lcd.setCursor(0, 1); 268 lcd.print("0-255 - Save:But"); 269 menu2_child = 4 ; 270 break ; 271 } 272 } 273 while (menu2_child == 1) { 274 if (analogRead(joyx1) > max_joyx ) { 275 if (y_menu2 == 0) { 276 y_menu2 = 1 ; 277 if (alarm == 0 )buzzer(200, 255); 278 else if (alarm == 1 )vibre(200); 279 else ; 280 lcd.clear(); 281 lcd.setCursor(14, 1); 282 lcd.print("!"); 283 lcd.setCursor(0, 0); 284 lcd.print("lcd brightness:"); 285 lcd.setCursor(0, 1); 286 lcd.print("lcd contrast :"); 287 lcd.setCursor(15, y_menu2); 288 lcd.print("<"); 289 menu2_child = 0 ; 290 break ; 291 } 292 if (y_menu2 != 0) { 293 y_menu2 = 0 ; 294 if (alarm == 0 )buzzer(200, 255); 295 else if (alarm == 1 )vibre(200); 296 else ; 297 lcd.clear(); 298 lcd.setCursor(14, 1); 299 lcd.print("!"); 300 lcd.setCursor(14, 0); 301 lcd.print("^"); 302 lcd.setCursor(0, 0); 303 lcd.print("lcd contrast :"); 304 lcd.setCursor(0, 1); 305 lcd.print("Change Pass :"); 306 lcd.setCursor(15, y_menu2); 307 lcd.print("<"); 308 } 309 } 310 if (analogRead(joyx1) < min_joyx ) { 311 if (y_menu2 == 1) { 312 y_menu2 = 0 ; 313 if (alarm == 0 )buzzer(200, 255); 314 else if (alarm == 1 )vibre(200); 315 else ; 316 lcd.clear(); 317 lcd.setCursor(0, 0); 318 lcd.print("Change Pass :"); 319 lcd.setCursor(0, 1); 320 lcd.print("EXIT :"); 321 lcd.setCursor(15, y_menu2); 322 lcd.print("<"); 323 lcd.setCursor(14, 0); 324 lcd.print("^"); 325 menu2_child = 2 ; 326 break ; 327 } 328 if (y_menu2 != 1) { 329 y_menu2 = 1 ; 330 if (alarm == 0 )buzzer(200, 255); 331 else if (alarm == 1 )vibre(200); 332 else ; 333 lcd.clear(); 334 lcd.setCursor(0, 0); 335 lcd.print("lcd contrast :"); 336 lcd.setCursor(0, 1); 337 lcd.print("Change Pass :"); 338 lcd.setCursor(15, y_menu2); 339 lcd.print("<"); 340 lcd.setCursor(14, 1); 341 lcd.print("!"); 342 lcd.setCursor(14, 0); 343 lcd.print("^"); 344 } 345 } 346 if (y_menu2 == 0 && digitalRead(joys) == 0) { 347 lcd.clear(); 348 if (alarm == 0 )buzzer(200, 255); 349 else if (alarm == 1 )vibre(200); 350 else ; 351 lcd.setCursor(0, 0); 352 lcd.print("contrast :"); 353 lcd.setCursor(12, 0); 354 lcd.print(lcd_contrast); 355 lcd.setCursor(0, 1); 356 lcd.print("0-255 - Save:But"); 357 menu2_child = 4 ; 358 break ; 359 } 360 if (y_menu2 == 1 && digitalRead(joys) == 0) { 361 lcd.clear(); 362 if (alarm == 0 )buzzer(200, 255); 363 else if (alarm == 1 )vibre(200); 364 else ; 365 menu2_child = 5 ; 366 break ; 367 } 368 } 369 while (menu2_child == 2) { 370 if (analogRead(joyx1) > max_joyx ) { 371 if (y_menu2 == 0) { 372 y_menu2 = 1 ; 373 if (alarm == 0 )buzzer(200, 255); 374 else if (alarm == 1 )vibre(200); 375 else ; 376 lcd.clear(); 377 lcd.setCursor(0, 0); 378 lcd.print("lcd contrast :"); 379 lcd.setCursor(0, 1); 380 lcd.print("Change Pass :"); 381 lcd.setCursor(15, y_menu2); 382 lcd.print("<"); 383 lcd.setCursor(14, 1); 384 lcd.print("!"); 385 lcd.setCursor(14, 0); 386 lcd.print("^"); 387 menu2_child = 1 ; 388 break ; 389 } 390 if (y_menu2 != 0) { 391 y_menu2 = 0 ; 392 if (alarm == 0 )buzzer(200, 255); 393 else if (alarm == 1 )vibre(200); 394 else ; 395 lcd.clear(); 396 lcd.setCursor(0, 0); 397 lcd.print("Change Pass :"); 398 lcd.setCursor(0, 1); 399 lcd.print("EXIT :"); 400 lcd.setCursor(15, y_menu2); 401 lcd.print("<"); 402 lcd.setCursor(14, 0); 403 lcd.print("^"); 404 } 405 } 406 if (analogRead(joyx1) < min_joyx ) 407 if (y_menu2 != 1) { 408 y_menu2 = 1 ; 409 if (alarm == 0 )buzzer(200, 255); 410 else if (alarm == 1 )vibre(200); 411 else ; 412 lcd.clear(); 413 lcd.setCursor(0, 1); 414 lcd.print("EXIT :"); 415 lcd.setCursor(0, 0); 416 lcd.print("Change Pass :"); 417 lcd.setCursor(15, y_menu2); 418 lcd.print("<"); 419 lcd.setCursor(14, 0); 420 lcd.print("^"); 421 } 422 if (y_menu2 == 0 && digitalRead(joys) == 0) { 423 lcd.clear(); 424 if (alarm == 0 )buzzer(200, 255); 425 else if (alarm == 1 )vibre(200); 426 else ; 427 menu2_child = 5 ; 428 break ; 429 } 430 if (y_menu2 == 1 && digitalRead(joys) == 0) { 431 lcd.clear(); 432 if (alarm == 0 )buzzer(200, 255); 433 else if (alarm == 1 )vibre(200); 434 else ; 435 menu2_child = 10 ; 436 y_menu2 = 0 ; 437 y_menu1 = 0 ; 438 d = 0 ; 439 menu = 0 ; 440 break ; 441 } 442 } 443 while (menu2_child == 3) { 444 if (analogRead(joyx1) < min_joyx && lcd_bright > 0) { 445 lcd_bright -- ; 446 analogWrite(bright, lcd_bright); 447 if (alarm == 0 )buzzer(200, 255); 448 else if (alarm == 1 )vibre(200); 449 else ; 450 lcd.clear(); 451 lcd.setCursor(0, 0); 452 lcd.print("Brightness :"); 453 lcd.setCursor(12, 0); 454 lcd.print(lcd_bright); 455 lcd.setCursor(0, 1); 456 lcd.print("0-255 - Save:But"); 457 } 458 if (analogRead(joyx1) > max_joyx && lcd_bright < 255) { 459 lcd_bright ++ ; 460 analogWrite(bright, lcd_bright); 461 if (alarm == 0 )buzzer(200, 255); 462 else if (alarm == 1 )vibre(200); 463 else ; 464 lcd.clear(); 465 lcd.setCursor(0, 0); 466 lcd.print("Brightness :"); 467 lcd.setCursor(12, 0); 468 lcd.print(lcd_bright); 469 lcd.setCursor(0, 1); 470 lcd.print("0-255 - Save:But"); 471 } 472 if (digitalRead(joys) == 0) { 473 if (alarm == 0 )buzzer(200, 255); 474 else if (alarm == 1 )vibre(200); 475 else ; 476 lcd.clear(); 477 lcd.setCursor(0, 0); 478 lcd.print("lcd brightness:"); 479 lcd.setCursor(14, 1); 480 lcd.print("!"); 481 lcd.setCursor(0, 1); 482 lcd.print("lcd contrast :"); 483 lcd.setCursor(15, y_menu2); 484 lcd.print("<"); 485 menu2_child = 0 ; 486 break ; 487 } 488 } 489 while (menu2_child == 4) { 490 if (analogRead(joyx1) < min_joyx && lcd_contrast > Low_contrast) { 491 lcd_contrast -- ; 492 analogWrite(contrast, lcd_contrast); 493 if (alarm == 0 )buzzer(200, 255); 494 else if (alarm == 1 )vibre(200); 495 else ; 496 lcd.clear(); 497 lcd.setCursor(0, 0); 498 lcd.print("contrast :"); 499 lcd.setCursor(12, 0); 500 lcd.print(lcd_contrast); 501 lcd.setCursor(0, 1); 502 lcd.print("0-255 - Save:But"); 503 } 504 if (analogRead(joyx1) > max_joyx && lcd_contrast < 255) { 505 lcd_contrast ++ ; 506 analogWrite(contrast, lcd_contrast); 507 if (alarm == 0 )buzzer(200, 255); 508 else if (alarm == 1 )vibre(200); 509 else ; 510 lcd.clear(); 511 lcd.setCursor(0, 0); 512 lcd.print("contrast :"); 513 lcd.setCursor(12, 0); 514 lcd.print(lcd_contrast); 515 lcd.setCursor(0, 1); 516 lcd.print("0-255 - Save:But"); 517 } 518 if (digitalRead(joys) == 0) { 519 if (y_menu2 == 0) { 520 if (alarm == 0 )buzzer(200, 255); 521 else if (alarm == 1 )vibre(200); 522 else ; 523 lcd.clear(); 524 lcd.setCursor(0, 0); 525 lcd.print("lcd contrast:"); 526 lcd.setCursor(14, 1); 527 lcd.print("!"); 528 lcd.setCursor(14, 0); 529 lcd.print("^"); 530 lcd.setCursor(0, 1); 531 lcd.print("Change Pass :"); 532 lcd.setCursor(15, y_menu2); 533 lcd.print("<"); 534 menu2_child = 1 ; 535 break ; 536 } 537 if (y_menu2 == 1) { 538 if (alarm == 0 )buzzer(200, 255); 539 else if (alarm == 1 )vibre(200); 540 else ; 541 lcd.clear(); 542 lcd.setCursor(0, 0); 543 lcd.print("lcd brightness:"); 544 lcd.setCursor(14, 1); 545 lcd.print("!"); 546 lcd.setCursor(0, 1); 547 lcd.print("lcd contrast :"); 548 lcd.setCursor(15, y_menu2); 549 lcd.print("<"); 550 menu2_child = 0 ; 551 break ; 552 } 553 } 554 } 555 while (menu2_child == 5) { 556 while (d_5 == 0) { 557 if (new_pass_check_last_pass == true) password(pas); 558 pas = 0 ; 559 lcd.setCursor(0, 0); 560 lcd.print("New Pass:"); 561 lcd.setCursor(9, 0); 562 lcd.print(pas); 563 lcd.setCursor(2, 1); 564 lcd.print("Save :Button"); 565 d_5 = 1 ; 566 } 567 while (d_5 == 1) { 568 if (analogRead(joyx1) > max_joyx) { 569 pas ++ ; 570 if (alarm == 0 )buzzer(200, 255); 571 else if (alarm == 1 )vibre(200); 572 else ; 573 lcd.clear(); 574 lcd.setCursor(0, 0); 575 lcd.print("New Pass:"); 576 lcd.setCursor(9, 0); 577 lcd.print(pas); 578 lcd.setCursor(2, 1); 579 lcd.print("Save :Button"); 580 } 581 if (analogRead(joyx1) < min_joyx) { 582 pas -- ; 583 if (alarm == 0 )buzzer(200, 255); 584 else if (alarm == 1 )vibre(200); 585 else ; 586 lcd.clear(); 587 lcd.setCursor(0, 0); 588 lcd.print("New Pass:"); 589 lcd.setCursor(9, 0); 590 lcd.print(pas); 591 lcd.setCursor(2, 1); 592 lcd.print("Save :Button"); 593 } 594 if (analogRead(joyy1) > max_joyy)if (pas != 0) { 595 pas *= 10 ; 596 if (alarm == 0 )buzzer(200, 255); 597 else if (alarm == 1 )vibre(200); 598 else ; 599 lcd.clear(); 600 lcd.setCursor(0, 0); 601 lcd.print("New Pass:"); 602 lcd.setCursor(9, 0); 603 lcd.print(pas); 604 lcd.setCursor(2, 1); 605 lcd.print("Save :Button"); 606 } 607 if (analogRead(joyy1) < min_joyx)if (pas != 0) { 608 pas /= 10 ; 609 if (alarm == 0 )buzzer(200, 255); 610 else if (alarm == 1 )vibre(200); 611 else ; 612 lcd.clear(); 613 lcd.setCursor(0, 0); 614 lcd.print("New Pass:"); 615 lcd.setCursor(9, 0); 616 lcd.print(pas); 617 lcd.setCursor(2, 1); 618 lcd.print("Save :Button"); 619 } 620 if (digitalRead(joys) == 0) { 621 if (y_menu2 == 0) { 622 lcd.clear(); 623 if (alarm == 0 )buzzer(200, 255); 624 else if (alarm == 1 )vibre(200); 625 else ; 626 lcd.setCursor(0, 0); 627 lcd.print("Password Saved !"); 628 delay(Time_About_Menu); 629 lcd.clear(); 630 lcd.setCursor(0, 0); 631 lcd.print("Change Pass :"); 632 lcd.setCursor(0, 1); 633 lcd.print("Exit"); 634 lcd.setCursor(15, y_menu2); 635 lcd.print("<"); 636 lcd.setCursor(14, 0); 637 lcd.print("^"); 638 d_5 = 0 ; 639 menu2_child = 2 ; 640 break ; 641 } 642 if (y_menu2 == 1) { 643 lcd.clear(); 644 if (alarm == 0 )buzzer(200, 255); 645 else if (alarm == 1 )vibre(200); 646 else ; 647 lcd.setCursor(0, 0); 648 lcd.print("Password Saved !"); 649 delay(Time_About_Menu); 650 lcd.clear(); 651 lcd.setCursor(0, 1); 652 lcd.print("Change Pass :"); 653 lcd.setCursor(0, 0); 654 lcd.print("lcd contrast :"); 655 lcd.setCursor(15, y_menu2); 656 lcd.print("<"); 657 lcd.setCursor(14, 0); 658 lcd.print("^"); 659 lcd.setCursor(14, 1); 660 lcd.print("!"); 661 d_5 = 0 ; 662 menu2_child = 1 ; 663 break ; 664 } 665 } 666 } 667 } 668 } 669 } 670 while (menu == 2) { 671 while (d == 0) { 672 if (entri_run == true) password(pas); 673 if (nrf_init == 0) { 674 lcd.clear(); 675 lcd.setCursor(0, 0); 676 lcd.print("Initial The Nrf!"); 677 lcd.setCursor(0, 1); 678 lcd.print("Please Wait"); 679 radio.begin(); 680 radio.openWritingPipe(address); 681 radio.setAutoAck(false); 682 radio.setDataRate(RF24_250KBPS); 683 radio.setPALevel(RF24_PA_LOW); 684 lcd.clear(); 685 lcd.setCursor(5, 0); 686 lcd.print("Ready!"); 687 lcd.setCursor(1, 1); 688 lcd.print("Exit : Button"); 689 nrf_init = 1 ; 690 d = 1 ; 691 } 692 else { 693 lcd.clear(); 694 lcd.setCursor(1, 1); 695 lcd.print("Exit : Button"); 696 lcd.setCursor(5, 0); 697 lcd.print("Ready!"); 698 d = 1 ; 699 } 700 } 701 while (d == 1) { 702 data.joy_x1 = map(analogRead(joyx2), 0, 1023, 0, 255); 703 data.joy_y1 = map(analogRead(joyy2), 0, 1023, 0, 255); 704 data.joy_x2 = map(analogRead(joyx2), 0, 1023, 0, 255); 705 data.joy_y2 = map(analogRead(joyy2), 0, 1023, 0, 255); 706 radio.write(&data, sizeof(Data_Package)); 707 if (digitalRead(joys) == 0) { 708 menu = 0 ; 709 d = 0 ; 710 if (alarm == 0 )buzzer(200, 255); 711 else if (alarm == 1 )vibre(200); 712 else ; 713 break ; 714 } 715 } 716 } 717} 718void About_Menu() { 719 lcd.clear(); 720 lcd.setCursor(2, 0); 721 lcd.print("Hello World"); 722 delay(Time_About_Menu); 723 lcd.clear(); 724 lcd.setCursor(3, 0); 725 lcd.print("Transmiter"); 726 lcd.setCursor(3, 1); 727 lcd.print("Version 4"); 728 delay(Time_About_Menu); 729 lcd.clear(); 730 lcd.setCursor(3, 0); 731 lcd.print("Version 4"); 732 lcd.setCursor(4, 1); 733 lcd.print("By Seyed"); 734 delay(Time_About_Menu); 735 lcd.clear(); 736 lcd.setCursor(4, 0); 737 lcd.print("By Seyed"); 738 lcd.setCursor(2, 1); 739 lcd.print("Miad Mirhaj"); 740 delay(Time_About_Menu); 741 lcd.clear(); 742 lcd.setCursor(2, 0); 743 lcd.print("Notice :This"); 744 lcd.setCursor(0, 1); 745 lcd.print("Version Handles"); 746 delay(Time_About_Menu); 747 lcd.clear(); 748 lcd.setCursor(0, 0); 749 lcd.print("Version Handles"); 750 lcd.setCursor(1, 1); 751 lcd.print("2.4gh Signals"); 752 delay(Time_About_Menu); 753 lcd.clear(); 754 lcd.setCursor(1, 0); 755 lcd.print("2.4gh Signals"); 756 delay(Time_About_Menu); 757 lcd.clear(); 758 lcd.setCursor(0, 0); 759 lcd.print("So Lets Begin :)"); 760 delay(Time_About_Menu); 761 lcd.clear(); 762 for (int About_y = 0 ; About_y < 2 ; About_y ++) 763 for (int About_x = 0 ; About_x < 16 ; About_x ++ ) { 764 lcd.setCursor(About_x, About_y); 765 lcd.print("."); 766 delay(200); 767 lcd.clear(); 768 } 769} 770void vibre(int Time_Vibre) { 771 digitalWrite(Vibre_Pin , HIGH); 772 delay(Time_Vibre); 773 digitalWrite(Vibre_Pin , LOW ); 774} 775void buzzer(int time_buzzer , int value_buzzer) { 776 analogWrite(buzzer_pin , value_buzzer); 777 delay(time_buzzer); 778 digitalWrite(buzzer_pin , LOW); 779} 780void password(int Password_Input) { 781 lcd.clear(); 782 lcd.print("Pass:"); 783 lcd.setCursor(5, 0); 784 lcd.print(password_input_value_user); 785 lcd.setCursor(1, 1); 786 lcd.print("ENTER : Button"); 787 while (password_check != true) { 788 if (analogRead(joyx1) > max_joyx) { 789 password_input_value_user ++ ; 790 lcd.clear(); 791 lcd.print("Pass:"); 792 lcd.setCursor(5, 0); 793 lcd.print(password_input_value_user); 794 lcd.setCursor(1, 1); 795 lcd.print("ENTER : Button"); 796 if (alarm == 0 )buzzer(200, 255); 797 else if (alarm == 1 )vibre(200); 798 else ; 799 } 800 if (analogRead(joyx1) < min_joyx) { 801 password_input_value_user -- ; 802 lcd.clear(); 803 lcd.print("Pass:"); 804 lcd.setCursor(5, 0); 805 lcd.print(password_input_value_user); 806 lcd.setCursor(1, 1); 807 lcd.print("ENTER : Button"); 808 if (alarm == 0 )buzzer(200, 255); 809 else if (alarm == 1 )vibre(200); 810 else ; 811 } 812 if (analogRead(joyy1) > max_joyy) if (password_input_value_user != 0) { 813 password_input_value_user *= 10 ; 814 lcd.clear(); 815 lcd.print("Pass:"); 816 lcd.setCursor(5, 0); 817 lcd.print(password_input_value_user); 818 lcd.setCursor(1, 1); 819 lcd.print("ENTER : Button"); 820 if (alarm == 0 )buzzer(200, 255); 821 else if (alarm == 1 )vibre(200); 822 else ; 823 } 824 if (analogRead(joyy1) < min_joyy)if (password_input_value_user != 0) { 825 password_input_value_user /= 10 ; 826 lcd.clear(); 827 lcd.print("Pass:"); 828 lcd.setCursor(5, 0); 829 lcd.print(password_input_value_user); 830 lcd.setCursor(1, 1); 831 lcd.print("ENTER : Button"); 832 if (alarm == 0 )buzzer(200, 255); 833 else if (alarm == 1 )vibre(200); 834 else ; 835 } 836 if (password_input_value_user == Password_Input && digitalRead(joys) == 0) { 837 password_input_value_user = 0; 838 wrong1 = 0 ; 839 wrong2 = 0 ; 840 wrong3 = 0 ; 841 password_check = true ; 842 lcd.clear(); 843 if (alarm == 0 )buzzer(200, 255); 844 else if (alarm == 1 )vibre(200); 845 else ; 846 lcd.setCursor(3, 0); 847 lcd.print("True Pass!"); 848 delay(1000); 849 lcd.clear(); 850 break ; 851 } 852 else if (password_input_value_user != Password_Input && digitalRead(joys) == 0) { 853 password_input_value_user = 0; 854 lcd.clear(); 855 lcd.setCursor(2, 0); 856 lcd.print("Wrong Pass !"); 857 if (alarm == 0 )buzzer(200, 255); 858 else if (alarm == 1 )vibre(200); 859 else ; 860 wrong1 ++ ; 861 lcd.clear(); 862 lcd.print("Pass:"); 863 lcd.setCursor(5, 0); 864 lcd.print(password_input_value_user); 865 lcd.setCursor(1, 1); 866 lcd.print("ENTER : Button"); 867 } 868 if (wrong1 == times_that_entered_wrong_password) { 869 for (int time_wrong1 = 30 ; time_wrong1 > 0 ; time_wrong1 -- ) { 870 lcd.clear(); 871 lcd.setCursor(0, 1); 872 lcd.print("^ Time To Try: ^"); 873 lcd.setCursor(6, 0); 874 lcd.print("0:"); 875 lcd.setCursor(8, 0); 876 lcd.print(time_wrong1); 877 delay(980); 878 } 879 lcd.clear(); 880 lcd.print("Pass:"); 881 lcd.setCursor(5, 0); 882 lcd.print(password_input_value_user); 883 lcd.setCursor(1, 1); 884 lcd.print("ENTER : Button"); 885 wrong1 = 0 ; 886 wrong2 = 1 ; 887 } 888 if (wrong1 == 1 && wrong2 == 1) { 889 for (int time_wrong2_minute = 4 ; time_wrong2_minute >= 0 ; time_wrong2_minute -- ) 890 for (int time_wrong2_second = 59 ; time_wrong2_second >= 0 ; time_wrong2_second --) { 891 lcd.clear(); 892 lcd.setCursor(0, 1); 893 lcd.print("^ Time To Try: ^"); 894 lcd.setCursor(6, 0); 895 lcd.print(time_wrong2_minute); 896 lcd.setCursor(7, 0); 897 lcd.print(":"); 898 lcd.setCursor(8, 0); 899 lcd.print(time_wrong2_second); 900 delay(980); 901 } 902 lcd.clear(); 903 lcd.print("Pass:"); 904 lcd.setCursor(5, 0); 905 lcd.print(password_input_value_user); 906 lcd.setCursor(1, 1); 907 lcd.print("ENTER : Button"); 908 wrong1 = 0 ; 909 wrong2 = 0 ; 910 wrong3 = 1 ; 911 } 912 if (wrong1 == 1 && wrong3 == 1) { 913 lcd.clear(); 914 lcd.setCursor(3, 0); 915 lcd.print("No Way To"); 916 lcd.setCursor(4, 1); 917 lcd.print("Control!"); 918 while (1); 919 } 920 } 921 password_check = false ; 922} 923int alarm() { 924 if (buzzer_enable == true && vibre_enable == false )return 0 ; 925 if (buzzer_enable == false && vibre_enable == true )return 1 ; 926 if (buzzer_enable == true && vibre_enable == true )return 0 ; 927 if (buzzer_enable == false && vibre_enable == false )return 2 ; 928} 929
Downloadable files
schematic
schematic

schematic
schematic

Documentation
files
files
Comments
Only logged in users can leave comments