Скорость передачи данных через Serial

Ingler
Offline
Зарегистрирован: 19.01.2020

Здравствуйте, есть плата уно, к ней подключены 2 потенциометра (в будущем 3). Я читаю с них данные, и отправляю через сериал порт по юсб на компьютер в unreal engine (игровой движок). 

Подскажите, в каком формате сама ардуино будет обрабатывать и передаваться данные быстрее всего (Значения 0-1023) по Serial.print как string, или Serial.write как integer (насколько я успел узнать int целиком отправить нельзя, нужно как-то его дробить и пересобирать на выходе).

Может вообще я все не правильно понимаю, и есть другие способы.

int ReadPin0 = 0;   
int RawValue0 = 0;         
int ReadPin1 = 1;    
int RawValue1 = 0;       

void setup() {
  Serial.begin(9600);
}

void loop() {
  RawValue0 = analogRead(ReadPin0);
  RawValue1 = analogRead(ReadPin1);   
  String Out0 = String(RawValue0);
  String Out1 = String(RawValue1);
  
  
  Serial.println("A" + Out0);
  delay(10);
  Serial.println("B" + Out1);
  delay(10);    

 

По поводу задержки. Хотелось бы её совсем не включать, но как я понял значение просто не успевает записаться в переменную без неё, и на выходе получается каша(что в мониторе порта arduino ide, что внутри движка). Минимальная задержка при которой всё более-менее стабильно работает была 5мсек, поставил 10 для большей стабильности.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

вот это 

Serial.begin(9600);

замени на 

Serial.begin(115200);

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Что  бы быстрее передавалось - увеличте скорость на которой работаете порт. Например

Serial.begin(115200)

sadman41
Offline
Зарегистрирован: 19.10.2016

String тяжелее. Вопрос больше в том, какой формат требует принимающая сторона.

Ingler
Offline
Зарегистрирован: 19.01.2020

DetSimen пишет:

вот это 

Serial.begin(9600);

замени на 

Serial.begin(115200);

asam пишет:

Что  бы быстрее передавалось - увеличте скорость на которой работаете порт. Например

Serial.begin(115200)

Спасибо, помогло!)

Пошёл учить матчасть

Ingler
Offline
Зарегистрирован: 19.01.2020

float, integer, string

но на самом деле увеличив скорость порта я достиг чего хотел, быстрее уже не нужно)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ingler пишет:

в каком формате сама ардуино будет обрабатывать и передаваться данные быстрее всего 

Сама ардуина не будет ничего делать. Делать придётся Вам. А передавать надо в том формате, который сумеет принять Ваш нереальный движок.

Ingler пишет:
насколько я успел узнать int целиком отправить нельзя, нужно как-то его дробить и пересобирать на выходе
А String можно? Или про него Вы не успели узнать?

Ingler пишет:
Пошёл учить матчасть

С этого лучше начинать.