serial bluetooth println not work

sorry if my english is bad
please help complete my project
please show the error so that you can read text from esp32 bluetooth to android,
If you use the Arduino serial monitor, it can be read

#include <BluetoothSerial.h>
#include <EEPROM.h>

// Inisialisasi Bluetooth Serial
BluetoothSerial SerialBT;

// EEPROM Addresses
#define MODE_ADDR 0
#define SPEED_ADDR 4

// Daftar mode LED pattern
const char* modeNames[] = {"Pattern 1", "Pattern 2", "Pattern 3", "Pattern 4"};
const int maxMode = sizeof(modeNames) / sizeof(modeNames[0]) - 1;

// Variabel global
int currentMode = 0;    // Mode awal
bool isRunning = false; // Status aktif/tidak
int speed = 500;        // Kecepatan awal dalam ms (500 ms)
const int maxSpeed = 1000; // Kecepatan maksimum
const int minSpeed = 100;  // Kecepatan minimum
unsigned long previousMillis = 0;

// Pin LED (sesuaikan dengan board ESP32 Anda)
const int ledPins[] = {2, 4, 5, 18}; // GPIO untuk LED
const int numLeds = sizeof(ledPins) / sizeof(ledPins[0]);
int currentLed = 0; // LED aktif saat ini

void setup() {
  // Inisialisasi Serial, Bluetooth, dan EEPROM
  Serial.begin(115200);
  SerialBT.begin("ESP32_BT");
  EEPROM.begin(8); // Alokasi 8 byte EEPROM
  Serial.println("Bluetooth Started. Waiting for connection...");

  // Load data dari EEPROM
  currentMode = EEPROM.read(MODE_ADDR);
  speed = EEPROM.read(SPEED_ADDR) * 10; // Scale dari EEPROM
  if (speed < minSpeed || speed > maxSpeed) speed = 500; // Validasi

  // Inisialisasi pin LED
  for (int i = 0; i < numLeds; i++) {
    pinMode(ledPins[i], OUTPUT);
    digitalWrite(ledPins[i], LOW);
  }

  printStatus();
}

void loop() {
  if (SerialBT.available()) {
    char received = SerialBT.read();
    Serial.print("Received: ");
    Serial.println(received);

    switch (received) {
      case 'U': // Button Up
        currentMode = (currentMode + 1) % (maxMode + 1);
        saveSettings();
        printStatus();
        break;

      case 'D': // Button Down
        currentMode = (currentMode - 1 + (maxMode + 1)) % (maxMode + 1);
        saveSettings();
        printStatus();
        break;

      case 'P': // Button Play
        isRunning = !isRunning;
        printStatus();
        break;

      case '+': // Button Plus
        if (speed > minSpeed) {
          speed -= 100;
          saveSettings();
        }
        printStatus();
        break;

      case '-': // Button Minus
        if (speed < maxSpeed) {
          speed += 100;
          saveSettings();
        }
        printStatus();
        break;

      default:
        SerialBT.println("Invalid Input");
        Serial.println("Invalid Input");
        break;
    }
  }

  // Jalankan pattern LED sesuai mode
  if (isRunning) {
    unsigned long currentMillis = millis();
    if (currentMillis - previousMillis >= speed) {
      previousMillis = currentMillis;

      switch (currentMode) {
        case 0: // Pattern 1: LED berjalan maju
          runPattern1();
          break;

        case 1: // Pattern 2: LED berjalan mundur
          runPattern2();
          break;

        case 2: // Pattern 3: LED bergantian
          runPattern3();
          break;

        case 3: // Pattern 4: Semua LED nyala/mati bergantian
          runPattern4();
          break;

        default:
          break;
      }
    }
  } else {
    // Matikan semua LED
    for (int i = 0; i < numLeds; i++) {
      digitalWrite(ledPins[i], LOW);
    }
  }
}

// Fungsi pattern LED
void runPattern1() {
  for (int i = 0; i < numLeds; i++) {
    digitalWrite(ledPins[i], LOW);
  }
  digitalWrite(ledPins[currentLed], HIGH);
  currentLed = (currentLed + 1) % numLeds;
}

void runPattern2() {
  for (int i = 0; i < numLeds; i++) {
    digitalWrite(ledPins[i], LOW);
  }
  digitalWrite(ledPins[currentLed], HIGH);
  currentLed = (currentLed - 1 + numLeds) % numLeds;
}

void runPattern3() {
  for (int i = 0; i < numLeds; i++) {
    digitalWrite(ledPins[i], (i % 2 == currentLed % 2) ? HIGH : LOW);
  }
  currentLed = (currentLed + 1) % numLeds;
}

void runPattern4() {
  for (int i = 0; i < numLeds; i++) {
    digitalWrite(ledPins[i], currentLed % 2 ? HIGH : LOW);
  }
  currentLed = (currentLed + 1) % 2;
}

// Fungsi untuk mencetak status
void printStatus() {
  Serial.print("Mode Number: ");
  Serial.println(currentMode + 1);
  Serial.print("Mode Name: ");
  Serial.println(modeNames[currentMode]);
  Serial.print("Status: ");
  Serial.println(isRunning ? "Running" : "Stopped");
  Serial.print("Speed: ");
  Serial.println(speed);

  SerialBT.print("Mode Number: ");
  SerialBT.println(currentMode + 1);
  SerialBT.print("Mode Name: ");
  SerialBT.println(modeNames[currentMode]);
  SerialBT.print("Status: ");
  SerialBT.println(isRunning ? "Running" : "Stopped");
  SerialBT.print("Speed: ");
  SerialBT.println(speed);
}

// Fungsi untuk menyimpan pengaturan ke EEPROM
void saveSettings() {
  EEPROM.write(MODE_ADDR, currentMode);
  EEPROM.write(SPEED_ADDR, speed / 10); // Scale untuk penyimpanan
  EEPROM.commit();
}