我正在尝试从蓝牙串行连接将两个值传递到我的 arduino 脚本中。接收到的字符串的第一部分是 LED 编号,第二部分是十六进制代码 (0x000000) 形式的 LED 颜色。第一个变量已转换并且工作正常,但是当我尝试传入颜色值时,我收到一条错误消息,指出操作数必须是 CRGB 或字符串。我很困惑为什么当我传递一个字符串时它会抛出一个错误。有没有办法强制上传过去这个错误,因为这是一个错误,或者我真的错过了什么。
这是我的代码:
#include "BluetoothSerial.h"
#include <FastLED.h>
#define DATA_PIN 22
#define LED_TYPE WS2812B
#define COLOR_ORDER GRB
#define NUM_LEDS 120
#define BRIGHTNESS 23
#define x inputFromOtherSide.substring(3,6).toInt()
CRGB leds[NUM_LEDS];
BluetoothSerial SerialBT;
void setup()
{
// tell FastLED about the LED strip configuration
FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);
// set master brightness control
FastLED.setBrightness(BRIGHTNESS);
Serial.begin(115200);
Serial.println("Serial Port Started");
SerialBT.begin("ESP32test");
Serial.println("Bluetooth Started");
}
void loop()
{
String inputFromOtherSide;
if (SerialBT.available()) {
inputFromOtherSide = SerialBT.readString();
Serial.println("Data Recieved: ");
Serial.println(inputFromOtherSide);
delay(500);
Serial.println(inputFromOtherSide.substring(3,6));
Serial.println(inputFromOtherSide.substring(11));
leds[x] = inputFromOtherSide.substring(11);
FastLED.show();
}
}