Неправильный сбор информации с датчиков(ультразвуковой датчик\герконовый датчикх3)

SidyaStoy
Offline
Зарегистрирован: 25.06.2018
 
 
//Libraries
#include <LiquidCrystal.h>
#include <Keypad.h>
#include <NewPing.h>
#include "NewTone.h"
 
/*-----------------------KEYPAD-----------------------*/
const byte numRows= 4; //number of rows on the keypad
const byte numCols= 4; //number of columns on the keypad
char keypressed;
//keymap defines the key pressed according to the row and columns just as appears on the keypad
char keymap[numRows][numCols]=
{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
//Code that shows the the keypad connections to the arduino terminals
byte rowPins[numRows] = {10, 11, 12, 13};//Rows 0 to 3
byte colPins[numCols] = {A2, A3, A4, A5};//Columns 0 to 3             
//initializes an instance of the Keypad class
Keypad myKeypad= Keypad( makeKeymap(keymap), rowPins, colPins, numRows, numCols);
 
/*--------------------------CONSTANTS-------------------------*/
const int buzzer = A1;      //Buzzer/small speaker
const int doorMagSen = 9;    //Door magnetic sensor
const int windowMagSen = 2; //Window magnetic sensors
LiquidCrystal lcd(8,7,6,5,4,3); //lcd ((RS, E, D4, D5, D6, D7)
NewPing sonar(A0,A0,2000); // Trig Echo Max distance
/*--------------------------VARIABLES------------------------*/
String password="1488" ; //riable to store the current password
String tempPassword="" ; //Variable to store the input password
int doublecheck;
boolean armed = false;  //Variable for system state (armed:true / unarmed:false)
boolean input_pass;   //Variable for input password (correct:true / wrong:false)
boolean storedPassword = true;
boolean changedPassword = false;
boolean checkPassword = false;
int distance;
int i = 1; //variable to index an array
 
/**********************************************************************************/
 
void setup() {
  lcd.begin(16, 2);                 //Setup the LCD's number of columns and rows 
  pinMode(doorMagSen,INPUT_PULLUP);       //Set all magnetic sensors as input withn internal pullup resistor
  pinMode(windowMagSen,INPUT_PULLUP);
}
 
void loop() { //Main loop
  if (armed){
    systemIsArmed();  //Run function to activate the system
  }
  else if (!armed){
    systemIsUnarmed();  //Run fuction to de activate the system
  }
}
 
/********************************FUNCTIONS************************************/
 
//While system is unarmed
void systemIsUnarmed(){
  int screenMsg=0;
  lcd.clear();                  //Clear lcd
  unsigned long previousMillis = 0;           //To make a delay by using millis() function
  const long interval = 5000;           //delay will be 5 sec. 
                          //every "page"-msg of lcd will change every 5 sec
  while(!armed){                  //While system is unarmed do...
    unsigned long currentMillis = millis();   //Store the current run-time of the system (millis function)
      if (currentMillis - previousMillis >= interval) {
        previousMillis = currentMillis;
        if(screenMsg==0){           //First page-message of lcd
        lcd.setCursor(0,0);
        lcd.print("SYSTEM ALARM OFF");
        lcd.setCursor(0,1);
        lcd.print("----------------");
        screenMsg=1;
        }
        else{                 //Second page-message of lcd
          lcd.setCursor(0,0);
          lcd.print("A to arm        ");
          lcd.setCursor(0,1);
        lcd.print("B to change pass");
        screenMsg=0;
        }
      }
    keypressed = myKeypad.getKey();       //Read the pressed button
    if (keypressed =='A'){            //If A is pressed, activate the system
      NewTone(buzzer,500,200);
      systemIsArmed();            //by calling the systemIsArmed function
    }
    else if (keypressed =='B'){//If B is pressed, change current password
      doublecheck=0;
      NewTone(buzzer,500,200);
      storedPassword=false;
      if(!changedPassword){         //By calling the changePassword function
        changePassword();
      }
    }
  }
}
 
//While system is armed
void systemIsArmed(){               
  lcd.clear();
  int count=10;               //Count 10sec before activate the system
  unsigned long previousMillis = 0;         
  const long interval = 1000; 
  while(!armed){    
    distance = sonar.ping_cm(); //Store distance from sensor only for first time
    //While system is unarmed - for 10sed do...
    lcd.setCursor(0,0);
    lcd.print(" SYSTEM WILL BE ");      //Print message to lcd with 10 sec timer
    lcd.setCursor(0,1);
    lcd.print("   ARMED IN ");
    unsigned long currentMillis = millis();
      if (currentMillis - previousMillis >= interval) {
        previousMillis = currentMillis;
        //Screen counter 10sec
        if (count>1){
        count--;            //Countdown timer
        }
        else{
          armed=true;           //Activate the system!
        break;
        }
      }
    lcd.setCursor(12,1);
    lcd.print(count);           //show the timer at lcd second line 13 possition 
  }
  while (armed){                //While system is armed do...
    lcd.setCursor(0,0);
    lcd.print("SYSTEM IS ARMED!");
    lcd.setCursor(0,1);
    lcd.print("----------------");
    int door = digitalRead(doorMagSen);   //Read magnetic sensros and ultrasonic sensor
    int window = digitalRead(windowMagSen);
    int curr_distanse = sonar.ping_cm();
 
    //Check values
    if (window==HIGH){
      alarmFunction(); //Call alarm!
    } 
    if (door==HIGH){
      unlockPassword(); //Disarm the system with correct password
    }
        //Ultrasonic sensor code
    if (curr_distanse < (distance -5)){ //Check distanse (minus 5 for safety) with current distanse
      alarmFunction();
    }
  }
}
//Door is opend, unlcok the system!
void unlockPassword() {
  int count=21;             //20 sec for alarm!
  retry:                  //label for goto, retry in case of wrong password
    tempPassword="";            //reset temp password (typing...)
  lcd.clear();              //clear lcd
  i=6;                  //variable to put * while typing pass
  unsigned long previousMillis = 0;       
  const long interval = 1000;
  boolean buzzerState = false;      //variable to help us make  a beep NewTone
  while(!checkPassword){          //While waiting for correct password do...
    unsigned long currentMillis = millis();
      if (currentMillis - previousMillis >= interval) {
        previousMillis = currentMillis; //play beep NewTone every 1 sec
        if (!buzzerState){
          NewTone(buzzer, 700);
          buzzerState=true;
        }
        else{
          noNewTone(buzzer);
          buzzerState=false;
        }
        if (count>0){           //Screen counter 20sec
        count--;
        }
        else{
          alarmFunction();      //Times is up, ALARM!
          break;
        }
      }
    keypressed = myKeypad.getKey();
    lcd.setCursor(0,0);
    lcd.print("ALARM IN: "); 
    //For screen counter - 20sec
    if (count>=10){
      lcd.setCursor(14,0);
      lcd.print(count);       //print countdown timer at lcd
    }
    else{               //catch '0'bellow 10 (eg 09)
      lcd.setCursor(14,0);
      lcd.print(" ");
      lcd.print(count);
    }
    lcd.setCursor(0,1);
    lcd.print("PASS>");
    if (keypressed != NO_KEY){      //Accept only numbers and * from keypad
      if (keypressed == '0' || keypressed == '1' || keypressed == '2' || keypressed == '3' ||
      keypressed == '4' || keypressed == '5' || keypressed == '6' || keypressed == '7' ||
      keypressed == '8' || keypressed == '9' ){
        tempPassword += keypressed;
        lcd.setCursor(i,1);
        lcd.print("*");       //Put * on lcd
        i++;
        NewTone(buzzer,500,200);    //Button NewTone
      }
      else if (keypressed == '*'){  //Check for password
        if (password==tempPassword){//If it's correct unarmed the system
          armed=false;
          NewTone(buzzer,700,500);
          break;
        }
        else{           //if it's false, retry
          tempPassword="";
          NewTone(buzzer,200,200);
          delay(300);
          NewTone(buzzer,200,200);
          delay(300);
          goto retry;
        }
      }
    }
  } 
  
}
 
//Alarm
void alarmFunction(){
  retry: //label for goto
  tempPassword="";
  lcd.clear();
  i=6;
  unsigned long previousMillis = 0;       
  const long interval = 500;
  boolean buzzerState = false;
  while(!checkPassword){          //Waiting for password to deactivate the alarm...
    unsigned long currentMillis = millis();
      if (currentMillis - previousMillis >= interval) {
        previousMillis = currentMillis; //Play a beep NewTone every 0.5 second
        if (!buzzerState){
          NewTone(buzzer, 700);
          buzzerState=true;
        }
        else{
          noNewTone(buzzer);
          buzzerState=false;
        }
      }
    keypressed = myKeypad.getKey();
    lcd.setCursor(0,0);
    lcd.print("  !!! ALARM !!! "); 
    lcd.setCursor(0,1);
    lcd.print("PASS>");
    if (keypressed != NO_KEY){      //Accept only numbers and *
      if (keypressed == '0' || keypressed == '1' || keypressed == '2' || keypressed == '3' ||
      keypressed == '4' || keypressed == '5' || keypressed == '6' || keypressed == '7' ||
      keypressed == '8' || keypressed == '9' ){
        tempPassword += keypressed;
        lcd.setCursor(i,1);
        lcd.print("*");
        i++;
      }
      else if (keypressed == '*'){
        if (password==tempPassword){
          armed=false;
          NewTone(buzzer,700,500);
          break;
        }
        else{
          tempPassword="";
          NewTone(buzzer,200,200);
          delay(300);
          NewTone(buzzer,200,200);
          delay(300);
          goto retry;
        }
      }
    }
  } 
}
//Change current password
void changePassword(){
  retry: //label for goto
  tempPassword="";
  lcd.clear();
  i=1;
  while(!changedPassword){        //Waiting for current password
    keypressed = myKeypad.getKey();   //Read pressed keys
    lcd.setCursor(0,0);
    lcd.print("CURRENT PASSWORD");
    lcd.setCursor(0,1);
    lcd.print(">");
    if (keypressed != NO_KEY){
      if (keypressed == '0' || keypressed == '1' || keypressed == '2' || keypressed == '3' ||
      keypressed == '4' || keypressed == '5' || keypressed == '6' || keypressed == '7' ||
      keypressed == '8' || keypressed == '9' ){
        tempPassword += keypressed;
        lcd.setCursor(i,1);
        lcd.print("*");
        i++;
        NewTone(buzzer,800,200);        
      }
      else if (keypressed=='#'){
        break;
      }
      else if (keypressed == '*'){
        i=1;
        if (password==tempPassword){
          storedPassword=false;
          NewTone(buzzer,500,200);
          newPassword();          //Password is corrent, so call the newPassword function
          break;
        }
        else{               //Try again
          tempPassword="";
          NewTone(buzzer,500,200);
          delay(300);
          NewTone(buzzer,500,200);
          delay(300);
          goto retry;
        }
      }
    }
  }
}
String firstpass;
//Setup new password
void newPassword(){
  tempPassword="";
  changedPassword=false;
  lcd.clear();
  i=1;
  while(!storedPassword){
    keypressed = myKeypad.getKey();   //Read pressed keys
    if (doublecheck==0){
      lcd.setCursor(0,0);
      lcd.print("SET NEW PASSWORD");
      lcd.setCursor(0,1);
      lcd.print(">");
    }
    else{
      lcd.setCursor(0,0);
      lcd.print("One more time...");
      lcd.setCursor(0,1);
      lcd.print(">");
    }
    if (keypressed != NO_KEY){
      if (keypressed == '0' || keypressed == '1' || keypressed == '2' || keypressed == '3' ||
      keypressed == '4' || keypressed == '5' || keypressed == '6' || keypressed == '7' ||
      keypressed == '8' || keypressed == '9' ){
        tempPassword += keypressed;
        lcd.setCursor(i,1);
        lcd.print("*");
        i++;
          NewTone(buzzer,800,200);
      }
      else if (keypressed=='#'){
        break;
      }
      else if (keypressed == '*'){
        if (doublecheck == 0){
          firstpass=tempPassword;
          doublecheck=1;
          newPassword();
        }
        if (doublecheck==1){
          doublecheck=0;
          if (firstpass==tempPassword){
            i=1;
            firstpass="";
            password = tempPassword; // New password saved
            tempPassword="";//erase temp password
            lcd.setCursor(0,0);
            lcd.print("PASSWORD CHANGED");
            lcd.setCursor(0,1);
            lcd.print("----------------");
              storedPassword=true;
              NewTone(buzzer,500,400);
              delay(2000);
              lcd.clear();
              break;
          }
          else{
            firstpass="";
            newPassword();
          }
        }
      } 
    }
  }
}
 
DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015
SidyaStoy
Offline
Зарегистрирован: 25.06.2018


//Libraries
#include <LiquidCrystal.h>
#include <Keypad.h>
#include <NewPing.h>
#include "NewTone.h"

/*-----------------------KEYPAD-----------------------*/
const byte numRows= 4; //number of rows on the keypad
const byte numCols= 4; //number of columns on the keypad
char keypressed;
//keymap defines the key pressed according to the row and columns just as appears on the keypad
char keymap[numRows][numCols]=
{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
//Code that shows the the keypad connections to the arduino terminals
byte rowPins[numRows] = {10, 11, 12, 13};//Rows 0 to 3
byte colPins[numCols] = {A2, A3, A4, A5};//Columns 0 to 3             
//initializes an instance of the Keypad class
Keypad myKeypad= Keypad( makeKeymap(keymap), rowPins, colPins, numRows, numCols);

/*--------------------------CONSTANTS-------------------------*/
const int buzzer = A1;      //Buzzer/small speaker
const int doorMagSen = 9;    //Door magnetic sensor
const int windowMagSen = 2; //Window magnetic sensors
LiquidCrystal lcd(8,7,6,5,4,3); //lcd ((RS, E, D4, D5, D6, D7)
NewPing sonar(A0,A0,2000); // Trig Echo Max distance
/*--------------------------VARIABLES------------------------*/
String password="1488" ; //riable to store the current password
String tempPassword="" ; //Variable to store the input password
int doublecheck;
boolean armed = false;  //Variable for system state (armed:true / unarmed:false)
boolean input_pass;   //Variable for input password (correct:true / wrong:false)
boolean storedPassword = true;
boolean changedPassword = false;
boolean checkPassword = false;
int distance;
int i = 1; //variable to index an array

/**********************************************************************************/

void setup() {
  lcd.begin(16, 2);                 //Setup the LCD's number of columns and rows 
  pinMode(doorMagSen,INPUT_PULLUP);       //Set all magnetic sensors as input withn internal pullup resistor
  pinMode(windowMagSen,INPUT_PULLUP);
}

void loop() { //Main loop
  if (armed){
    systemIsArmed();  //Run function to activate the system
  }
  else if (!armed){
    systemIsUnarmed();  //Run fuction to de activate the system
  }
}

/********************************FUNCTIONS************************************/

//While system is unarmed
void systemIsUnarmed(){
  int screenMsg=0;
  lcd.clear();                  //Clear lcd
  unsigned long previousMillis = 0;           //To make a delay by using millis() function
  const long interval = 5000;           //delay will be 5 sec. 
                          //every "page"-msg of lcd will change every 5 sec
  while(!armed){                  //While system is unarmed do...
    unsigned long currentMillis = millis();   //Store the current run-time of the system (millis function)
      if (currentMillis - previousMillis >= interval) {
        previousMillis = currentMillis;
        if(screenMsg==0){           //First page-message of lcd
        lcd.setCursor(0,0);
        lcd.print("SYSTEM ALARM OFF");
        lcd.setCursor(0,1);
        lcd.print("----------------");
        screenMsg=1;
        }
        else{                 //Second page-message of lcd
          lcd.setCursor(0,0);
          lcd.print("A to arm        ");
          lcd.setCursor(0,1);
        lcd.print("B to change pass");
        screenMsg=0;
        }
      }
    keypressed = myKeypad.getKey();       //Read the pressed button
    if (keypressed =='A'){            //If A is pressed, activate the system
      NewTone(buzzer,500,200);
      systemIsArmed();            //by calling the systemIsArmed function
    }
    else if (keypressed =='B'){//If B is pressed, change current password
      doublecheck=0;
      NewTone(buzzer,500,200);
      storedPassword=false;
      if(!changedPassword){         //By calling the changePassword function
        changePassword();
      }
    }
  }
}

//While system is armed
void systemIsArmed(){               
  lcd.clear();
  int count=10;               //Count 10sec before activate the system
  unsigned long previousMillis = 0;         
  const long interval = 1000; 
  while(!armed){    
    distance = sonar.ping_cm(); //Store distance from sensor only for first time
    //While system is unarmed - for 10sed do...
    lcd.setCursor(0,0);
    lcd.print(" SYSTEM WILL BE ");      //Print message to lcd with 10 sec timer
    lcd.setCursor(0,1);
    lcd.print("   ARMED IN ");
    unsigned long currentMillis = millis();
      if (currentMillis - previousMillis >= interval) {
        previousMillis = currentMillis;
        //Screen counter 10sec
        if (count>1){
        count--;            //Countdown timer
        }
        else{
          armed=true;           //Activate the system!
        break;
        }
      }
    lcd.setCursor(12,1);
    lcd.print(count);           //show the timer at lcd second line 13 possition 
  }
  while (armed){                //While system is armed do...
    lcd.setCursor(0,0);
    lcd.print("SYSTEM IS ARMED!");
    lcd.setCursor(0,1);
    lcd.print("----------------");
    int door = digitalRead(doorMagSen);   //Read magnetic sensros and ultrasonic sensor
    int window = digitalRead(windowMagSen);
    int curr_distanse = sonar.ping_cm();

    //Check values
    if (window==HIGH){
      alarmFunction(); //Call alarm!
    } 
    if (door==HIGH){
      unlockPassword(); //Disarm the system with correct password
    }
        //Ultrasonic sensor code
    if (curr_distanse < (distance -5)){ //Check distanse (minus 5 for safety) with current distanse
      alarmFunction();
    }
  }
}
//Door is opend, unlcok the system!
void unlockPassword() {
  int count=21;             //20 sec for alarm!
  retry:                  //label for goto, retry in case of wrong password
    tempPassword="";            //reset temp password (typing...)
  lcd.clear();              //clear lcd
  i=6;                  //variable to put * while typing pass
  unsigned long previousMillis = 0;       
  const long interval = 1000;
  boolean buzzerState = false;      //variable to help us make  a beep NewTone
  while(!checkPassword){          //While waiting for correct password do...
    unsigned long currentMillis = millis();
      if (currentMillis - previousMillis >= interval) {
        previousMillis = currentMillis; //play beep NewTone every 1 sec
        if (!buzzerState){
          NewTone(buzzer, 700);
          buzzerState=true;
        }
        else{
          noNewTone(buzzer);
          buzzerState=false;
        }
        if (count>0){           //Screen counter 20sec
        count--;
        }
        else{
          alarmFunction();      //Times is up, ALARM!
          break;
        }
      }
    keypressed = myKeypad.getKey();
    lcd.setCursor(0,0);
    lcd.print("ALARM IN: "); 
    //For screen counter - 20sec
    if (count>=10){
      lcd.setCursor(14,0);
      lcd.print(count);       //print countdown timer at lcd
    }
    else{               //catch '0'bellow 10 (eg 09)
      lcd.setCursor(14,0);
      lcd.print(" ");
      lcd.print(count);
    }
    lcd.setCursor(0,1);
    lcd.print("PASS>");
    if (keypressed != NO_KEY){      //Accept only numbers and * from keypad
      if (keypressed == '0' || keypressed == '1' || keypressed == '2' || keypressed == '3' ||
      keypressed == '4' || keypressed == '5' || keypressed == '6' || keypressed == '7' ||
      keypressed == '8' || keypressed == '9' ){
        tempPassword += keypressed;
        lcd.setCursor(i,1);
        lcd.print("*");       //Put * on lcd
        i++;
        NewTone(buzzer,500,200);    //Button NewTone
      }
      else if (keypressed == '*'){  //Check for password
        if (password==tempPassword){//If it's correct unarmed the system
          armed=false;
          NewTone(buzzer,700,500);
          break;
        }
        else{           //if it's false, retry
          tempPassword="";
          NewTone(buzzer,200,200);
          delay(300);
          NewTone(buzzer,200,200);
          delay(300);
          goto retry;
        }
      }
    }
  } 
  
}

//Alarm
void alarmFunction(){
  retry: //label for goto
  tempPassword="";
  lcd.clear();
  i=6;
  unsigned long previousMillis = 0;       
  const long interval = 500;
  boolean buzzerState = false;
  while(!checkPassword){          //Waiting for password to deactivate the alarm...
    unsigned long currentMillis = millis();
      if (currentMillis - previousMillis >= interval) {
        previousMillis = currentMillis; //Play a beep NewTone every 0.5 second
        if (!buzzerState){
          NewTone(buzzer, 700);
          buzzerState=true;
        }
        else{
          noNewTone(buzzer);
          buzzerState=false;
        }
      }
    keypressed = myKeypad.getKey();
    lcd.setCursor(0,0);
    lcd.print("  !!! ALARM !!! "); 
    lcd.setCursor(0,1);
    lcd.print("PASS>");
    if (keypressed != NO_KEY){      //Accept only numbers and *
      if (keypressed == '0' || keypressed == '1' || keypressed == '2' || keypressed == '3' ||
      keypressed == '4' || keypressed == '5' || keypressed == '6' || keypressed == '7' ||
      keypressed == '8' || keypressed == '9' ){
        tempPassword += keypressed;
        lcd.setCursor(i,1);
        lcd.print("*");
        i++;
      }
      else if (keypressed == '*'){
        if (password==tempPassword){
          armed=false;
          NewTone(buzzer,700,500);
          break;
        }
        else{
          tempPassword="";
          NewTone(buzzer,200,200);
          delay(300);
          NewTone(buzzer,200,200);
          delay(300);
          goto retry;
        }
      }
    }
  } 
}
//Change current password
void changePassword(){
  retry: //label for goto
  tempPassword="";
  lcd.clear();
  i=1;
  while(!changedPassword){        //Waiting for current password
    keypressed = myKeypad.getKey();   //Read pressed keys
    lcd.setCursor(0,0);
    lcd.print("CURRENT PASSWORD");
    lcd.setCursor(0,1);
    lcd.print(">");
    if (keypressed != NO_KEY){
      if (keypressed == '0' || keypressed == '1' || keypressed == '2' || keypressed == '3' ||
      keypressed == '4' || keypressed == '5' || keypressed == '6' || keypressed == '7' ||
      keypressed == '8' || keypressed == '9' ){
        tempPassword += keypressed;
        lcd.setCursor(i,1);
        lcd.print("*");
        i++;
        NewTone(buzzer,800,200);        
      }
      else if (keypressed=='#'){
        break;
      }
      else if (keypressed == '*'){
        i=1;
        if (password==tempPassword){
          storedPassword=false;
          NewTone(buzzer,500,200);
          newPassword();          //Password is corrent, so call the newPassword function
          break;
        }
        else{               //Try again
          tempPassword="";
          NewTone(buzzer,500,200);
          delay(300);
          NewTone(buzzer,500,200);
          delay(300);
          goto retry;
        }
      }
    }
  }
}
String firstpass;
//Setup new password
void newPassword(){
  tempPassword="";
  changedPassword=false;
  lcd.clear();
  i=1;
  while(!storedPassword){
    keypressed = myKeypad.getKey();   //Read pressed keys
    if (doublecheck==0){
      lcd.setCursor(0,0);
      lcd.print("SET NEW PASSWORD");
      lcd.setCursor(0,1);
      lcd.print(">");
    }
    else{
      lcd.setCursor(0,0);
      lcd.print("One more time...");
      lcd.setCursor(0,1);
      lcd.print(">");
    }
    if (keypressed != NO_KEY){
      if (keypressed == '0' || keypressed == '1' || keypressed == '2' || keypressed == '3' ||
      keypressed == '4' || keypressed == '5' || keypressed == '6' || keypressed == '7' ||
      keypressed == '8' || keypressed == '9' ){
        tempPassword += keypressed;
        lcd.setCursor(i,1);
        lcd.print("*");
        i++;
          NewTone(buzzer,800,200);
      }
      else if (keypressed=='#'){
        break;
      }
      else if (keypressed == '*'){
        if (doublecheck == 0){
          firstpass=tempPassword;
          doublecheck=1;
          newPassword();
        }
        if (doublecheck==1){
          doublecheck=0;
          if (firstpass==tempPassword){
            i=1;
            firstpass="";
            password = tempPassword; // New password saved
            tempPassword="";//erase temp password
            lcd.setCursor(0,0);
            lcd.print("PASSWORD CHANGED");
            lcd.setCursor(0,1);
            lcd.print("----------------");
              storedPassword=true;
              NewTone(buzzer,500,400);
              delay(2000);
              lcd.clear();
              break;
          }
          else{
            firstpass="";
            newPassword();
          }
        }
      } 
    }
  }
}

 

sadman41
Offline
Зарегистрирован: 19.10.2016

А по-моему так всё ОК.

b707
Offline
Зарегистрирован: 26.05.2017

sadman41 пишет:

А по-моему так всё ОК.

+1

ТС, если вас что-то не устравивает - пишите конкретно, что именно, желательно с примерами - типа "вводим А, ожидаем Б. а получем -Х"

А без конкретики сильно сомневаюсь, что кто-то захочет разбираться в этой портянке

SidyaStoy
Offline
Зарегистрирован: 25.06.2018

Включатеся система защиты- идет отсчет 10 секунд до срабатывания датчиков гиркона и ультразвукового - далее система включает звуковое оповещение

 

Хотя датчики гиркона находятся в закрытом положении и не размыкаются. При таком расположении датчиков гиркона звуковое оповещение включаться не должно.