 
 
 
-/*void input_password() {
+void input_password() {
 	lcd.clear();			// Очистка экрана
-	lcd.setCursor(0, 0);	// Установка указателя в левый верхний угол
-	lcd.print("Password:");
-	lcd.setCursor(9, 0);
-
-	for (byte	i	= 0; i < 4; i++) {
-		while ((digitalRead(BUTTON_OK) == BUTTON_PRESS) || (digitalRead(BUTTON_LEFT) == BUTTON_PRESS) || digitalRead(BUTTON_RIGHT) == BUTTON_PRESS);	// Ожидание нажатия любой кнопки
-
-		if (digitalRead(BUTTON_OK) == BUTTON_PRESS) {
-			btc_config.password[i]	= BUTTON_OK;
-		} else if (digitalRead(BUTTON_LEFT) == BUTTON_PRESS) {
-			btc_config.password[i]	= BUTTON_LEFT;
-		} else if (digitalRead(BUTTON_RIGHT) == BUTTON_PRESS) {
-			btc_config.password[i]	= BUTTON_RIGHT;
-		}
-
-		lcd.setCursor(9 + i, 0);
+	lcd.print("New password");
+
+	lcd.setCursor(1, 0);	// Установка указателя в левый верхний угол
+	lcd.print("Password: ");
+
+	for (byte	i	= 0; i < 6; i++) {
+		btc_config.password[i]	= key_pressed();
 		lcd.print("*");
 	}
 
 	lcd.clear();
-	lcd.setCursor(0,0);
 	lcd.print("Complete!");
 	delay(2000);
-}*/+}
+
+bool read_password() {
+	bool	wrong	= false;
+
+	lcd.clear();			// Очистка экрана
+	lcd.print("Current password");
+	
+	lcd.setCursor(1, 0);	// Установка указателя в левый верхний угол
+	lcd.print("Password: ");
+
+	for (byte	i	= 0; i < 6; i++) {
+		if (btc_config.password[i]	!= key_pressed()) {
+			wrong	= true;
+		}
+
+		lcd.print("*");
+	}
+
+	lcd.clear();
+	if (wrong) {
+		lcd.print("Incorrect!");
+	} else {
+		lcd.print("Pass!");
+	}
+
+	delay(2000);
+}
			lcd.print(bat_percent);
		}

		if ((analogRead(ACTION_BUTTON) >= BUTTON_OK - 10) && (analogRead(ACTION_BUTTON) <= BUTTON_OK + 10)) {
			while (analogRead(ACTION_BUTTON) < 1000);
			delay(50);
			lcd.clear();
			system_state	= MENU_STATE;
			break;
		}

		delay(500);
	}
}

byte settings(byte all_element, char settings_array[][15]) {
	lcd.clear();

	byte	selected		= 0,

LiquidCrystal_I2C lcd(0x27,16,2);	// Инициализация дисплея (адрес, количество символов, количество строк)

struct sys_conf {
	byte	password[6],		// Пароль, для отключения сигнала
			red_speed,			// Включать ли красный свет при уменьшении скорости
			time_to_slpeep,		// Время, после которого компьютер уснёт (минуты)
			auto_led,			// Включать подсветку экрана по датчику света или нет
