Arduino: я пытаюсь преобразовать строку, поступающую через Bluetooth, в массив символов - PullRequest
0 голосов
/ 19 февраля 2020

Привет всем: я пытаюсь преобразовать строку, поступающую через Bluetooth, в массив символов. Я хочу получить строку (которая будет словом) из Bluetooth и преобразовать ее в массив символов: например, :

Arduino получает от Bluetooth: water

Я хочу, чтобы это было преобразовано в: char arrayThing[30] = {'w','a','t','e','r',0};

Ниже приведен код, который я пытаюсь сделать, пожалуйста, помогите меня в этом парни

char arrayThing[30]; arrayThing[30]= Serial.read();

 for (int index = 0; index < 30; index++)
 {
    Serial.write(arrayThing[index]);
 }
   //  char arrayThing[30] = {'w','a','t','e','r',0};
    ouijaPrint(arrayThing);
    homeing();//Go back to home after each massage is printed

1 Ответ

0 голосов
/ 19 февраля 2020

Serial.read () возвращает макс. 1 символ, который вы помещаете в нужную позицию вашего массива символов. Последовательная передача медленная, поэтому лучше не ждать, а передавать символ конца сообщения, например, . '\ n'

char arrayThing[30];
byte pos = 0; 
void loop() {
  if (Serial1.available() {
      arrayThing[pos] = Serial1.read();  
      if (arrayThing[pos] == '\n') {
         arrayThing[pos] = 0;  // text end 
         pos = 0; // prepare to receive the next text line
         Serial.println(arrayThing); // work with the result 
      } else {
          if (pos < 29) pos++; // prepare for next character
      }
   }
} 

Serial1 - это ваш Bluetooth, Serial - ваш выход для отладки (для этого теста)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...