Hardware components | ||||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
Software apps and online services | ||||||
![]() |
| |||||
Hand tools and fabrication machines | ||||||
![]() |
| |||||
![]() |
|
hey there.
recently I was working on my drone, and suddenly I remembered that I need a transmitter for it. so I started and did some pcd designing, body designing and of course coding.
here are some options :
vibre motor
buzzer ( you can choose what yo need to alert (⚠), buzzer or vibre or none )
lcd 2 * 16 ( you can choose what kind of lcd you are using (i2c or usual), don not worry about this ;-) )
password ( for high security, of course you can change it (but it doesn't save in eeprom, just when the bord is on the password can be changed)
lcd brightness (you can change is by go to settings and chage it )
lcd contrast (you can change is by go to settings and chage 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 ;
}
Comments