Ayudar configuracion Nano_BLE

Buenas tardes, estoy intentando transformar un programa para con el arduino nano conectados a los modulos HC-05(Maestro) y HC-06 (Esclavo) a Nano_BLE, que es un modulo que ya tiene integrado el arduino nano y el bluetooht.

    • Este codigo es el del receptor.
#include <SoftwareSerial.h>
#include <Adafruit_NeoPixel.h>
 
SoftwareSerial mySerial(10, 11); // Pines digitales para la comunicación serie
 
#define LED_PIN_LEFT1 2
#define LED_PIN_LEFT2 5
#define LED_PIN_RIGHT1 3
#define LED_PIN_RIGHT2 4
#define NUM_PIXELS 61
#define DELAY_VAL 10
 
Adafruit_NeoPixel pixels_left1(21, LED_PIN_LEFT1, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixels_left2(61, LED_PIN_LEFT2, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixels_right1(21, LED_PIN_RIGHT1, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixels_right2(61, LED_PIN_RIGHT2, NEO_GRB + NEO_KHZ800);
 
bool patternActive = false;
unsigned long patternStartTime = 0;
const unsigned long PATTERN_DURATION = 3000; // Duración del patrón en milisegundos
 
void setup() {
  pixels_left1.begin();
  pixels_left2.begin();
  pixels_right1.begin();
  pixels_right2.begin();
  Serial.begin(9600);
  mySerial.begin(9600);
  int clearPixels;
}
 
void loop() {
  if (mySerial.available()) {
    char c = mySerial.read();
    Serial.print("Receptor: Recibido '");
    Serial.print(c);
    Serial.println("' desde el emisor");
 
    if (c == '1' || c == '2') {
      if (patternActive) {
        // Se interrumpe el patrón actual
        patternActive = false;
        clearPixels();
      }
      patternActive = true;
      patternStartTime = millis();
      // Ejecutar el patrón durante el tiempo especificado
      while (millis() - patternStartTime < PATTERN_DURATION && patternActive) {
        if (c == '1') {
          for (int i = 0; i < NUM_PIXELS; i += 1) {
            pixels_left1.setPixelColor(i + 1, pixels_left1.Color(0, 150, 0));
            pixels_left2.setPixelColor(i + 1, pixels_left2.Color(0, 150, 0));
            pixels_left1.show();
            pixels_left2.show();
            delay(DELAY_VAL);
            if (!patternActive) {
              clearPixels();
              return;
            }
            pixels_left1.setPixelColor(i + 1, pixels_left1.Color(0, 0, 0)); // Apaga los LEDs
            pixels_left2.setPixelColor(i + 1, pixels_left2.Color(0, 0, 0)); // Apaga los LEDs
            pixels_left1.show();
            pixels_left2.show();
          }
        } else if (c == '2') {
            pixels_right1.setPixelColor(i + 1, pixels_right1.Color(150, 0, 0));
            pixels_right2.setPixelColor(i + 1, pixels_right2.Color(150, 0, 0));
            pixels_right1.show();
            pixels_right2.show();
            delay(DELAY_VAL);
            if (!patternActive) {
              clearPixels();
              return;
            }
            pixels_right1.setPixelColor(i + 1, pixels_right1.Color(0, 0, 0)); // Apaga los LEDs
            pixels_right2.setPixelColor(i + 1, pixels_right2.Color(0, 0, 0)); // Apaga los LEDs
            pixels_right1.show();
            pixels_right2.show();
          }
        }
      }
      patternActive = false;
      clearPixels();
    }
  }
}
 
void clearPixels() {
  for (int i = 0; i < NUM_PIXELS; i += 1) {
    pixels_left1.setPixelColor(i + 1, pixels_left1.Color(0, 0, 0));
    pixels_left2.setPixelColor(i + 1, pixels_left2.Color(0, 0, 0));
    pixels_right1.setPixelColor(i + 1, pixels_right1.Color(0, 0, 0));
    pixels_right2.setPixelColor(i + 1, pixels_right2.Color(0, 0, 0));
  }
  pixels_left1.show();
  pixels_left2.show();
  pixels_right1.show();
  pixels_right2.show();
}
    • Ete codigo es el del Emisor.
#include <SoftwareSerial.h>
 
SoftwareSerial mySerial(10, 11); // 10 RX 11 TXpines digitlaes para la  comunicación serie
 
int Y; // Variable para almacenar el valor leído del eje Y
 
void setup() {
 
  Serial.begin(9600);
  mySerial.begin(9600);
}
 
void loop() {
 
  delay(1000);
 
  Y = analogRead(A1); // lectura de valor del eje Y
  Serial.print("Emisor: ");
  Serial.println(Y); // imprima los valores del eje Y para el monitor serie
  if (Y >= 0 && Y < 300) {  // Si Y está en la zona de abajo de 480
    Serial.println("Emisor: enviando '1'");
    mySerial.write('1');
  } else if (Y > 550 && Y <= 1023) {
    Serial.println("Emisor: Enviando '2'");
    mySerial.write('2');
  } else {
    Serial.println("Emisor: Enviando '0'");
    mySerial.write('0');
  }
    
}

Ahora al usar los modulos HC uso la libreri <SoftwareSerial.h>, pero me gustaria usar el bluetooht integrado en el modulo Nano_BLE.
Si alguien me pudiera ayudar y decirme donde mirarlo o que deveria hacer, yo no me aclaro.

PDF del modulo empleado

(https://github.com/keywish/keywish-nano-plus/blob/master/BLE-Nano/Ble-Nano%20operation%20manual%20V.1.6.pdf)

Muchas gracias.
Un Cordial Saludo.

Este es el foro en español, por favor edita tu post y borra el texto que has escrito en inglés.

Siempre revisa la documentación

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.