 	}
 
 	if (system_state == MENU_STATE) {
+		char menu_array[3][15]	= {
+			"Speedometr",
+			"Statistik",
+			"Settings"
+		};
+
+		switch (display_list(3, menu_array)) {
+			case 0:	system_state	= SPEED_STATE;
+					break;
+
+			case 2:	system_state	= SETTINGS_STATE;
+					break;
+		}
+	}
+
+	if (system_state == SETTINGS_STATE) {
 		char settings_array[3][15]	= {
-			"Speedometr",
-			"Settings",
-			"About system"
+			"Password",
+			"About system",
+			"Back"
 		};
 
-		settings(3, settings_array);
-		system_state	= SPEED_STATE;
+		switch (display_list(3, settings_array)) {
+			case 0:	input_password();
+					break;
+
+			case 2:	system_state	= MENU_STATE;
+					break;
+		}
 	}
 }
 

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

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




void input_password() {
	lcd.clear();			// Очистка экрана
	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.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);
}