iqrobotics
Published © GPL3+

Arduino tranmiter

Arduino transmitter board using nrf24l01 & 2*16 lcd

AdvancedFull instructions provided4 hours303
Arduino tranmiter

Things used in this project

Hardware components

ATmega328PB microcontroller
Microchip ATmega328PB microcontroller
×1
Buzzer
Buzzer
×1
Analog joystick (Generic)
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Solder Wire, Lead Free
Solder Wire, Lead Free
Soldering iron (generic)
Soldering iron (generic)

Story

Read more

Custom parts and enclosures

files

Schematics

schematic

Code

Code

C/C++
Enjoy IT :)
//Every Arduino At least Like Arduino Uno    This Code Designed And Enhanced By Seyed Miad Mirhaj.
//variables
boolean about = true ; // shows the information
int Low_contrast = 0 ;
int Time_About_Menu = 3000 ; // wait and pass the title



//pins
#define Vibre_Pin 1
#define joyx1 A0
#define joyx2 A2
#define joyy1 A1
#define joyy2 A3
#define joys  A4
#define buzzer_pin 3
const int rs = 8, en = 7, d4 = 4, d5 = 2, d6 = 0, d7 = A5;
int bright = 6 ;
int contrast = 5 ;


//password part ( don not chage this part )
boolean password_check = false ;
int wrong1 = 0 ;
int wrong2 = 0 ;
int wrong3 = 0 ;
int pass =  0 ;
int password_input_value_user = 0 ;
int last_time_password = 0 ;
int times_that_entered_wrong_password = 5 ;



//to adjust the joystick sensivity you can change this items .
int min_joyx = 200 , max_joyx = 850 ;
int min_joyy = 200 , max_joyy = 850 ;


//Attention !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// pass word is :
int pas = 1888 ;
// dont forget pass word , because it needs password
//Attention !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


//By adjusting this values you can choose where you want to use password
boolean start_pass = true ;
boolean new_pass_check_last_pass = true ;
boolean entri_run = true ;




//end pass
int menu = 0 ;
int y_menu1 = 0 ;
int d  = 0 ;
int y_menu2 = 0 ;
int menu2_child = 0 ;
int nrf_init = 0 ;
int lcd_contrast = 0 ;
int lcd_bright = 255 ;
int d_5 = 0 ;

//end of variables

//libraries


/*if you are using an i2c lcd :
   2-block lines : 77 & 78 & 79 & 116
   3- unblock  lines : 75 & 76 & 117 & 118 & 119
   4-you are done . now you can use i2c 2*16 lcd :)
*/
//#include<LiquidCrystal_I2C.h>
//LiquidCrystal_I2C lcd(0x27 , 16 , 2);
#include <LiquidCrystal.h>
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);




#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9, 10); // nRF24L01 (CE, CSN)

//notice : chack out your address to be correct !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
const byte address[6] = "00001"; // Address
//notice : chack out your address to be correct !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
struct Data_Package {
  byte joy_x1;
  byte joy_y1;
  byte joy_x2;
  byte joy_y2;
};
Data_Package data; //Create a variable with the above structure

//end of libraries


//enable vibre or buzzer
boolean buzzer_enable = true ;
boolean vibre_enable  = false ;
void setup() {
  pinMode(bright, OUTPUT);
  pinMode(contrast, OUTPUT);
  analogWrite(bright, lcd_bright);
  analogWrite(contrast, lcd_contrast);
  pinMode(joys, INPUT_PULLUP);
  pinMode(buzzer_pin, OUTPUT);
  pinMode(Vibre_Pin, OUTPUT);
  buzzer(200, 255);
  vibre(5000);
  lcd.begin(16, 2);
  //    lcd.init();
  //    lcd.init();
  //    lcd.backlight();
  if (about == true) About_Menu();
  if (start_pass == true )password(pas);
  lcd.setCursor(4, 0);
  lcd.print("Welcome!");
  delay(Time_About_Menu);
  lcd.clear();
}
void loop() {
  while (menu == 0) {
    while (d == 0) {
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Values :");
      lcd.setCursor(0, 1);
      lcd.print("Run :");
      lcd.setCursor(15, y_menu1);
      lcd.print("<");
      d = 1 ;
    }
    while (d == 1) {
      if (analogRead(joyx1) > max_joyx)if (y_menu1 != 0 ) {
          y_menu1 = 0 ;
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("Values :");
          lcd.setCursor(0, 1);
          lcd.print("Run :");
          lcd.setCursor(15, y_menu1);
          lcd.print("<");
        }
      if (analogRead(joyx1) < min_joyx)if (y_menu1 != 1 ) {
          y_menu1 = 1 ;
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("Values :");
          lcd.setCursor(0, 1);
          lcd.print("Run :");
          lcd.setCursor(15, y_menu1);
          lcd.print("<");
        }
      if (y_menu1 == 0 && digitalRead(joys) == 0 ) {
        menu = 1 ;
        menu2_child = 0 ;
        d = 0 ;
        if (alarm == 0 )buzzer(200, 255);
        else if (alarm == 1 )vibre(200);
        else ;
        break ;
      }
      if (y_menu1 == 1 && digitalRead(joys) == 0) {
        menu = 2 ;
        d = 0 ;
        if (alarm == 0 )buzzer(200, 255);
        else if (alarm == 1 )vibre(200);
        else ;
        break ;
      }
    }
  }
  while (menu == 1) {
    while (d == 0) {
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("lcd brightness:");
      lcd.setCursor(0, 1);
      lcd.print("lcd contrast :");
      lcd.setCursor(15, y_menu2);
      lcd.print("<");
      lcd.setCursor(14, 1);
      lcd.print("!");
      d = 1 ;
    }
    while (d == 1) {
      while (menu2_child == 0) {
        if (analogRead(joyx1) > max_joyx )if (y_menu2 != 0) {
            y_menu2 = 0 ;
            if (alarm == 0 )buzzer(200, 255);
            else if (alarm == 1 )vibre(200);
            else ;
            lcd.clear();
            lcd.setCursor(0, 0);
            lcd.print("lcd brightness:");
            lcd.setCursor(14, 1);
            lcd.print("!");
            lcd.setCursor(0, 1);
            lcd.print("lcd contrast :");
            lcd.setCursor(15, y_menu2);
            lcd.print("<");
          }
        if (analogRead(joyx1) < min_joyx ) {
          if (y_menu2 == 1) {
            y_menu2 = 0 ;
            if (alarm == 0 )buzzer(200, 255);
            else if (alarm == 1 )vibre(200);
            else ;
            lcd.clear();
            lcd.setCursor(0, 0);
            lcd.print("lcd contrast :");
            lcd.setCursor(14, 1);
            lcd.print("!");
            lcd.setCursor(14, 0);
            lcd.print("^");
            lcd.setCursor(0, 1);
            lcd.print("Change Pass :");
            lcd.setCursor(15, y_menu2);
            lcd.print("<");
            menu2_child = 1 ;
            break ;
          }
          if (y_menu2 != 1) {
            y_menu2 = 1 ;
            if (alarm == 0 )buzzer(200, 255);
            else if (alarm == 1 )vibre(200);
            else ;
            lcd.clear();
            lcd.setCursor(0, 0);
            lcd.print("lcd brightness:");
            lcd.setCursor(14, 1);
            lcd.print("!");
            lcd.setCursor(0, 1);
            lcd.print("lcd contrast :");
            lcd.setCursor(15, y_menu2);
            lcd.print("<");
          }
        }
        if (y_menu2 == 0 && digitalRead(joys) == 0) {
          lcd.clear();
          if (alarm == 0 )buzzer(200, 255);
          else if (alarm == 1 )vibre(200);
          else ;
          lcd.setCursor(0, 0);
          lcd.print("Brightness :");
          lcd.setCursor(12, 0);
          lcd.print(lcd_bright);
          lcd.setCursor(0, 1);
          lcd.print("0-255 - Save:But");
          menu2_child = 3 ;
          break ;
        }
        if (y_menu2 == 1 && digitalRead(joys) == 0) {
          lcd.clear();
          if (alarm == 0 )buzzer(200, 255);
          else if (alarm == 1 )vibre(200);
          else ;
          lcd.setCursor(0, 0);
          lcd.print("contrast :");
          lcd.setCursor(12, 0);
          lcd.print(lcd_contrast);
          lcd.setCursor(0, 1);
          lcd.print("0-255 - Save:But");
          menu2_child = 4 ;
          break ;
        }
      }
      while (menu2_child == 1) {
        if (analogRead(joyx1) > max_joyx ) {
          if (y_menu2 == 0) {
            y_menu2 = 1 ;
            if (alarm == 0 )buzzer(200, 255);
            else if (alarm == 1 )vibre(200);
            else ;
            lcd.clear();
            lcd.setCursor(14, 1);
            lcd.print("!");
            lcd.setCursor(0, 0);
            lcd.print("lcd brightness:");
            lcd.setCursor(0, 1);
            lcd.print("lcd contrast :");
            lcd.setCursor(15, y_menu2);
            lcd.print("<");
            menu2_child = 0 ;
            break ;
          }
          if (y_menu2 != 0) {
            y_menu2 = 0 ;
            if (alarm == 0 )buzzer(200, 255);
            else if (alarm == 1 )vibre(200);
            else ;
            lcd.clear();
            lcd.setCursor(14, 1);
            lcd.print("!");
            lcd.setCursor(14, 0);
            lcd.print("^");
            lcd.setCursor(0, 0);
            lcd.print("lcd contrast :");
            lcd.setCursor(0, 1);
            lcd.print("Change Pass :");
            lcd.setCursor(15, y_menu2);
            lcd.print("<");
          }
        }
        if (analogRead(joyx1) < min_joyx ) {
          if (y_menu2 == 1) {
            y_menu2 = 0 ;
            if (alarm == 0 )buzzer(200, 255);
            else if (alarm == 1 )vibre(200);
            else ;
            lcd.clear();
            lcd.setCursor(0, 0);
            lcd.print("Change Pass :");
            lcd.setCursor(0, 1);
            lcd.print("EXIT :");
            lcd.setCursor(15, y_menu2);
            lcd.print("<");
            lcd.setCursor(14, 0);
            lcd.print("^");
            menu2_child = 2 ;
            break ;
          }
          if (y_menu2 != 1) {
            y_menu2 = 1 ;
            if (alarm == 0 )buzzer(200, 255);
            else if (alarm == 1 )vibre(200);
            else ;
            lcd.clear();
            lcd.setCursor(0, 0);
            lcd.print("lcd contrast :");
            lcd.setCursor(0, 1);
            lcd.print("Change Pass :");
            lcd.setCursor(15, y_menu2);
            lcd.print("<");
            lcd.setCursor(14, 1);
            lcd.print("!");
            lcd.setCursor(14, 0);
            lcd.print("^");
          }
        }
        if (y_menu2 == 0 && digitalRead(joys) == 0) {
          lcd.clear();
          if (alarm == 0 )buzzer(200, 255);
          else if (alarm == 1 )vibre(200);
          else ;
          lcd.setCursor(0, 0);
          lcd.print("contrast :");
          lcd.setCursor(12, 0);
          lcd.print(lcd_contrast);
          lcd.setCursor(0, 1);
          lcd.print("0-255 - Save:But");
          menu2_child = 4 ;
          break ;
        }
        if (y_menu2 == 1 && digitalRead(joys) == 0) {
          lcd.clear();
          if (alarm == 0 )buzzer(200, 255);
          else if (alarm == 1 )vibre(200);
          else ;
          menu2_child = 5 ;
          break ;
        }
      }
      while (menu2_child == 2) {
        if (analogRead(joyx1) > max_joyx ) {
          if (y_menu2 == 0) {
            y_menu2 = 1 ;
            if (alarm == 0 )buzzer(200, 255);
            else if (alarm == 1 )vibre(200);
            else ;
            lcd.clear();
            lcd.setCursor(0, 0);
            lcd.print("lcd contrast :");
            lcd.setCursor(0, 1);
            lcd.print("Change Pass :");
            lcd.setCursor(15, y_menu2);
            lcd.print("<");
            lcd.setCursor(14, 1);
            lcd.print("!");
            lcd.setCursor(14, 0);
            lcd.print("^");
            menu2_child = 1 ;
            break ;
          }
          if (y_menu2 != 0) {
            y_menu2 = 0 ;
            if (alarm == 0 )buzzer(200, 255);
            else if (alarm == 1 )vibre(200);
            else ;
            lcd.clear();
            lcd.setCursor(0, 0);
            lcd.print("Change Pass :");
            lcd.setCursor(0, 1);
            lcd.print("EXIT :");
            lcd.setCursor(15, y_menu2);
            lcd.print("<");
            lcd.setCursor(14, 0);
            lcd.print("^");
          }
        }
        if (analogRead(joyx1) < min_joyx )
          if (y_menu2 != 1) {
            y_menu2 = 1 ;
            if (alarm == 0 )buzzer(200, 255);
            else if (alarm == 1 )vibre(200);
            else ;
            lcd.clear();
            lcd.setCursor(0, 1);
            lcd.print("EXIT :");
            lcd.setCursor(0, 0);
            lcd.print("Change Pass :");
            lcd.setCursor(15, y_menu2);
            lcd.print("<");
            lcd.setCursor(14, 0);
            lcd.print("^");
          }
        if (y_menu2 == 0 && digitalRead(joys) == 0) {
          lcd.clear();
          if (alarm == 0 )buzzer(200, 255);
          else if (alarm == 1 )vibre(200);
          else ;
          menu2_child = 5 ;
          break ;
        }
        if (y_menu2 == 1 && digitalRead(joys) == 0) {
          lcd.clear();
          if (alarm == 0 )buzzer(200, 255);
          else if (alarm == 1 )vibre(200);
          else ;
          menu2_child = 10 ;
          y_menu2 = 0 ;
          y_menu1 = 0 ;
          d = 0 ;
          menu = 0 ;
          break ;
        }
      }
      while (menu2_child == 3) {
        if (analogRead(joyx1) < min_joyx && lcd_bright > 0) {
          lcd_bright -- ;
          analogWrite(bright, lcd_bright);
          if (alarm == 0 )buzzer(200, 255);
          else if (alarm == 1 )vibre(200);
          else ;
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("Brightness :");
          lcd.setCursor(12, 0);
          lcd.print(lcd_bright);
          lcd.setCursor(0, 1);
          lcd.print("0-255 - Save:But");
        }
        if (analogRead(joyx1) > max_joyx && lcd_bright < 255) {
          lcd_bright ++ ;
          analogWrite(bright, lcd_bright);
          if (alarm == 0 )buzzer(200, 255);
          else if (alarm == 1 )vibre(200);
          else ;
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("Brightness :");
          lcd.setCursor(12, 0);
          lcd.print(lcd_bright);
          lcd.setCursor(0, 1);
          lcd.print("0-255 - Save:But");
        }
        if (digitalRead(joys) == 0) {
          if (alarm == 0 )buzzer(200, 255);
          else if (alarm == 1 )vibre(200);
          else ;
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("lcd brightness:");
          lcd.setCursor(14, 1);
          lcd.print("!");
          lcd.setCursor(0, 1);
          lcd.print("lcd contrast :");
          lcd.setCursor(15, y_menu2);
          lcd.print("<");
          menu2_child = 0 ;
          break ;
        }
      }
      while (menu2_child == 4) {
        if (analogRead(joyx1) < min_joyx && lcd_contrast > Low_contrast) {
          lcd_contrast -- ;
          analogWrite(contrast, lcd_contrast);
          if (alarm == 0 )buzzer(200, 255);
          else if (alarm == 1 )vibre(200);
          else ;
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("contrast :");
          lcd.setCursor(12, 0);
          lcd.print(lcd_contrast);
          lcd.setCursor(0, 1);
          lcd.print("0-255 - Save:But");
        }
        if (analogRead(joyx1) > max_joyx && lcd_contrast < 255) {
          lcd_contrast ++ ;
          analogWrite(contrast, lcd_contrast);
          if (alarm == 0 )buzzer(200, 255);
          else if (alarm == 1 )vibre(200);
          else ;
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("contrast :");
          lcd.setCursor(12, 0);
          lcd.print(lcd_contrast);
          lcd.setCursor(0, 1);
          lcd.print("0-255 - Save:But");
        }
        if (digitalRead(joys) == 0) {
          if (y_menu2 == 0) {
            if (alarm == 0 )buzzer(200, 255);
            else if (alarm == 1 )vibre(200);
            else ;
            lcd.clear();
            lcd.setCursor(0, 0);
            lcd.print("lcd contrast:");
            lcd.setCursor(14, 1);
            lcd.print("!");
            lcd.setCursor(14, 0);
            lcd.print("^");
            lcd.setCursor(0, 1);
            lcd.print("Change Pass :");
            lcd.setCursor(15, y_menu2);
            lcd.print("<");
            menu2_child = 1 ;
            break ;
          }
          if (y_menu2 == 1) {
            if (alarm == 0 )buzzer(200, 255);
            else if (alarm == 1 )vibre(200);
            else ;
            lcd.clear();
            lcd.setCursor(0, 0);
            lcd.print("lcd brightness:");
            lcd.setCursor(14, 1);
            lcd.print("!");
            lcd.setCursor(0, 1);
            lcd.print("lcd contrast :");
            lcd.setCursor(15, y_menu2);
            lcd.print("<");
            menu2_child = 0 ;
            break ;
          }
        }
      }
      while (menu2_child == 5) {
        while (d_5 == 0) {
          if (new_pass_check_last_pass == true) password(pas);
          pas = 0 ;
          lcd.setCursor(0, 0);
          lcd.print("New Pass:");
          lcd.setCursor(9, 0);
          lcd.print(pas);
          lcd.setCursor(2, 1);
          lcd.print("Save :Button");
          d_5 = 1 ;
        }
        while (d_5 == 1) {
          if (analogRead(joyx1) > max_joyx) {
            pas ++ ;
            if (alarm == 0 )buzzer(200, 255);
            else if (alarm == 1 )vibre(200);
            else ;
            lcd.clear();
            lcd.setCursor(0, 0);
            lcd.print("New Pass:");
            lcd.setCursor(9, 0);
            lcd.print(pas);
            lcd.setCursor(2, 1);
            lcd.print("Save :Button");
          }
          if (analogRead(joyx1) < min_joyx) {
            pas -- ;
            if (alarm == 0 )buzzer(200, 255);
            else if (alarm == 1 )vibre(200);
            else ;
            lcd.clear();
            lcd.setCursor(0, 0);
            lcd.print("New Pass:");
            lcd.setCursor(9, 0);
            lcd.print(pas);
            lcd.setCursor(2, 1);
            lcd.print("Save :Button");
          }
          if (analogRead(joyy1) > max_joyy)if (pas != 0) {
              pas *= 10 ;
              if (alarm == 0 )buzzer(200, 255);
              else if (alarm == 1 )vibre(200);
              else ;
              lcd.clear();
              lcd.setCursor(0, 0);
              lcd.print("New Pass:");
              lcd.setCursor(9, 0);
              lcd.print(pas);
              lcd.setCursor(2, 1);
              lcd.print("Save :Button");
            }
          if (analogRead(joyy1) < min_joyx)if (pas != 0) {
              pas /= 10 ;
              if (alarm == 0 )buzzer(200, 255);
              else if (alarm == 1 )vibre(200);
              else ;
              lcd.clear();
              lcd.setCursor(0, 0);
              lcd.print("New Pass:");
              lcd.setCursor(9, 0);
              lcd.print(pas);
              lcd.setCursor(2, 1);
              lcd.print("Save :Button");
            }
          if (digitalRead(joys) == 0) {
            if (y_menu2 == 0) {
              lcd.clear();
              if (alarm == 0 )buzzer(200, 255);
              else if (alarm == 1 )vibre(200);
              else ;
              lcd.setCursor(0, 0);
              lcd.print("Password Saved !");
              delay(Time_About_Menu);
              lcd.clear();
              lcd.setCursor(0, 0);
              lcd.print("Change Pass :");
              lcd.setCursor(0, 1);
              lcd.print("Exit");
              lcd.setCursor(15, y_menu2);
              lcd.print("<");
              lcd.setCursor(14, 0);
              lcd.print("^");
              d_5 = 0 ;
              menu2_child = 2 ;
              break ;
            }
            if (y_menu2 == 1) {
              lcd.clear();
              if (alarm == 0 )buzzer(200, 255);
              else if (alarm == 1 )vibre(200);
              else ;
              lcd.setCursor(0, 0);
              lcd.print("Password Saved !");
              delay(Time_About_Menu);
              lcd.clear();
              lcd.setCursor(0, 1);
              lcd.print("Change Pass :");
              lcd.setCursor(0, 0);
              lcd.print("lcd contrast :");
              lcd.setCursor(15, y_menu2);
              lcd.print("<");
              lcd.setCursor(14, 0);
              lcd.print("^");
              lcd.setCursor(14, 1);
              lcd.print("!");
              d_5 = 0 ;
              menu2_child = 1 ;
              break ;
            }
          }
        }
      }
    }
  }
  while (menu == 2) {
    while (d == 0) {
      if (entri_run == true)  password(pas);
      if (nrf_init == 0) {
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("Initial The Nrf!");
        lcd.setCursor(0, 1);
        lcd.print("Please Wait");
        radio.begin();
        radio.openWritingPipe(address);
        radio.setAutoAck(false);
        radio.setDataRate(RF24_250KBPS);
        radio.setPALevel(RF24_PA_LOW);
        lcd.clear();
        lcd.setCursor(5, 0);
        lcd.print("Ready!");
        lcd.setCursor(1, 1);
        lcd.print("Exit  : Button");
        nrf_init = 1 ;
        d = 1 ;
      }
      else {
        lcd.clear();
        lcd.setCursor(1, 1);
        lcd.print("Exit  : Button");
        lcd.setCursor(5, 0);
        lcd.print("Ready!");
        d = 1 ;
      }
    }
    while (d == 1) {
      data.joy_x1 = map(analogRead(joyx2), 0, 1023, 0, 255);
      data.joy_y1 = map(analogRead(joyy2), 0, 1023, 0, 255);
      data.joy_x2 = map(analogRead(joyx2), 0, 1023, 0, 255);
      data.joy_y2 = map(analogRead(joyy2), 0, 1023, 0, 255);
      radio.write(&data, sizeof(Data_Package));
      if (digitalRead(joys) == 0) {
        menu = 0 ;
        d = 0 ;
        if (alarm == 0 )buzzer(200, 255);
        else if (alarm == 1 )vibre(200);
        else ;
        break ;
      }
    }
  }
}
void About_Menu() {
  lcd.clear();
  lcd.setCursor(2, 0);
  lcd.print("Hello  World");
  delay(Time_About_Menu);
  lcd.clear();
  lcd.setCursor(3, 0);
  lcd.print("Transmiter");
  lcd.setCursor(3, 1);
  lcd.print("Version  4");
  delay(Time_About_Menu);
  lcd.clear();
  lcd.setCursor(3, 0);
  lcd.print("Version  4");
  lcd.setCursor(4, 1);
  lcd.print("By Seyed");
  delay(Time_About_Menu);
  lcd.clear();
  lcd.setCursor(4, 0);
  lcd.print("By Seyed");
  lcd.setCursor(2, 1);
  lcd.print("Miad  Mirhaj");
  delay(Time_About_Menu);
  lcd.clear();
  lcd.setCursor(2, 0);
  lcd.print("Notice :This");
  lcd.setCursor(0, 1);
  lcd.print("Version  Handles");
  delay(Time_About_Menu);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Version  Handles");
  lcd.setCursor(1, 1);
  lcd.print("2.4gh  Signals");
  delay(Time_About_Menu);
  lcd.clear();
  lcd.setCursor(1, 0);
  lcd.print("2.4gh  Signals");
  delay(Time_About_Menu);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("So Lets Begin :)");
  delay(Time_About_Menu);
  lcd.clear();
  for (int About_y = 0 ; About_y < 2 ; About_y ++)
    for (int About_x = 0 ; About_x < 16 ; About_x ++ ) {
      lcd.setCursor(About_x, About_y);
      lcd.print(".");
      delay(200);
      lcd.clear();
    }
}
void vibre(int Time_Vibre) {
  digitalWrite(Vibre_Pin , HIGH);
  delay(Time_Vibre);
  digitalWrite(Vibre_Pin , LOW );
}
void buzzer(int time_buzzer , int value_buzzer) {
  analogWrite(buzzer_pin , value_buzzer);
  delay(time_buzzer);
  digitalWrite(buzzer_pin , LOW);
}
void password(int Password_Input) {
  lcd.clear();
  lcd.print("Pass:");
  lcd.setCursor(5, 0);
  lcd.print(password_input_value_user);
  lcd.setCursor(1, 1);
  lcd.print("ENTER : Button");
  while (password_check != true) {
    if (analogRead(joyx1) > max_joyx) {
      password_input_value_user ++ ;
      lcd.clear();
      lcd.print("Pass:");
      lcd.setCursor(5, 0);
      lcd.print(password_input_value_user);
      lcd.setCursor(1, 1);
      lcd.print("ENTER : Button");
      if (alarm == 0 )buzzer(200, 255);
      else if (alarm == 1 )vibre(200);
      else ;
    }
    if (analogRead(joyx1) < min_joyx) {
      password_input_value_user -- ;
      lcd.clear();
      lcd.print("Pass:");
      lcd.setCursor(5, 0);
      lcd.print(password_input_value_user);
      lcd.setCursor(1, 1);
      lcd.print("ENTER : Button");
      if (alarm == 0 )buzzer(200, 255);
      else if (alarm == 1 )vibre(200);
      else ;
    }
    if (analogRead(joyy1) > max_joyy) if (password_input_value_user != 0) {
        password_input_value_user *= 10 ;
        lcd.clear();
        lcd.print("Pass:");
        lcd.setCursor(5, 0);
        lcd.print(password_input_value_user);
        lcd.setCursor(1, 1);
        lcd.print("ENTER : Button");
        if (alarm == 0 )buzzer(200, 255);
        else if (alarm == 1 )vibre(200);
        else ;
      }
    if (analogRead(joyy1) < min_joyy)if (password_input_value_user != 0) {
        password_input_value_user /= 10 ;
        lcd.clear();
        lcd.print("Pass:");
        lcd.setCursor(5, 0);
        lcd.print(password_input_value_user);
        lcd.setCursor(1, 1);
        lcd.print("ENTER : Button");
        if (alarm == 0 )buzzer(200, 255);
        else if (alarm == 1 )vibre(200);
        else ;
      }
    if (password_input_value_user == Password_Input && digitalRead(joys) == 0) {
      password_input_value_user = 0;
      wrong1 = 0 ;
      wrong2 = 0 ;
      wrong3 = 0 ;
      password_check = true ;
      lcd.clear();
      if (alarm == 0 )buzzer(200, 255);
      else if (alarm == 1 )vibre(200);
      else ;
      lcd.setCursor(3, 0);
      lcd.print("True Pass!");
      delay(1000);
      lcd.clear();
      break ;
    }
    else if (password_input_value_user != Password_Input && digitalRead(joys) == 0) {
      password_input_value_user = 0;
      lcd.clear();
      lcd.setCursor(2, 0);
      lcd.print("Wrong Pass !");
      if (alarm == 0 )buzzer(200, 255);
      else if (alarm == 1 )vibre(200);
      else ;
      wrong1 ++ ;
      lcd.clear();
      lcd.print("Pass:");
      lcd.setCursor(5, 0);
      lcd.print(password_input_value_user);
      lcd.setCursor(1, 1);
      lcd.print("ENTER : Button");
    }
    if (wrong1 == times_that_entered_wrong_password) {
      for (int time_wrong1 =  30 ; time_wrong1 > 0 ; time_wrong1 -- ) {
        lcd.clear();
        lcd.setCursor(0, 1);
        lcd.print("^ Time To Try: ^");
        lcd.setCursor(6, 0);
        lcd.print("0:");
        lcd.setCursor(8, 0);
        lcd.print(time_wrong1);
        delay(980);
      }
      lcd.clear();
      lcd.print("Pass:");
      lcd.setCursor(5, 0);
      lcd.print(password_input_value_user);
      lcd.setCursor(1, 1);
      lcd.print("ENTER : Button");
      wrong1 = 0 ;
      wrong2 = 1 ;
    }
    if (wrong1 == 1 && wrong2 == 1) {
      for (int time_wrong2_minute = 4 ; time_wrong2_minute >= 0 ; time_wrong2_minute -- )
        for (int time_wrong2_second = 59 ; time_wrong2_second >= 0 ; time_wrong2_second --) {
          lcd.clear();
          lcd.setCursor(0, 1);
          lcd.print("^ Time To Try: ^");
          lcd.setCursor(6, 0);
          lcd.print(time_wrong2_minute);
          lcd.setCursor(7, 0);
          lcd.print(":");
          lcd.setCursor(8, 0);
          lcd.print(time_wrong2_second);
          delay(980);
        }
      lcd.clear();
      lcd.print("Pass:");
      lcd.setCursor(5, 0);
      lcd.print(password_input_value_user);
      lcd.setCursor(1, 1);
      lcd.print("ENTER : Button");
      wrong1 = 0 ;
      wrong2 = 0 ;
      wrong3 = 1 ;
    }
    if (wrong1 == 1 && wrong3 == 1) {
      lcd.clear();
      lcd.setCursor(3, 0);
      lcd.print("No Way  To");
      lcd.setCursor(4, 1);
      lcd.print("Control!");
      while (1);
    }
  }
  password_check = false ;
}
int alarm() {
  if (buzzer_enable == true && vibre_enable == false )return 0 ;
  if (buzzer_enable == false && vibre_enable == true )return 1 ;
  if (buzzer_enable == true && vibre_enable ==  true )return 0 ;
  if (buzzer_enable == false && vibre_enable == false )return 2 ;
}

Credits

iqrobotics
3 projects • 0 followers

Comments