помогите с передачей и приемом данных

mirilka
Offline
Зарегистрирован: 03.10.2011

предисловие

 есть 2 ардуины и ББ для отладки суть в следующем

 

1 ардуна считывает данные с семью ультрозвуковыми датчиками определяя растояние до обекта в разных точках .

ББ (на время отладки) , потом 2я ардуина обрабатывает данные и по средствам шим управляет скоростью вращения двигателей.

проблема:

подскажите как правельно сформировать и отправить данные одним массивом 

датчики---->ардуино1( ---->пакет данных ----->  ББ -----> ардуино 2)??????? ------> частотный преобразователь -----> электродвигатель 380в

mirilka
Offline
Зарегистрирован: 03.10.2011

 и так вроде со всем разобрался все написал но главный вопрос остался 

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

при подачи сигнала допустим на 13 пин включается элемент свича

с ББ посылается  например   23, 234, 1, 67

ардуина получает этот масив в буфер 

разкладывает масив на данные 

например 

х1 = считываем из массива буфера 23, 234, 1, 67 (выделенно жирным)

записать х1 в epprom 

x2 = считываем из массива буфера 23, 234, 1, 67 (выделенно жирным)

 

и так далие до 67. при каждом запуске эти переменные будут считываться с epprom 

мне обсолютно не понятно как разложить массив таким образом не зная №нужного мне бита , ведь в моем случае масив может иметь и предположим другой вид 1.2, 234, 1.25, 6. как организовать разложение массива между раздилительными знаками ???         

 с не целыми числачи разберусь как нибудь а вот вопрос правельного разложения остается. может есть какая хитрая команда ?

простите что простым языком без приведения кода пишу с телефона .

Nixoid
Nixoid аватар
Offline
Зарегистрирован: 16.09.2011

Интересно.

Ведь ты всегда посылаешь одинаковое крол-во значений, так?

вот здесь описано http://arduino.ru/Reference/Array

Сам не проверял, но по идее так -

Обьявляем массив

int myInts[6]; //7 переменных

// Читаем массив с ком-порта Serial.read(myInts);

//раскладываем

a = myInts[0];

b = myInts[1];

c = myInts[2];

x = myInts[3];

y = myInts[4];

z = myInts[5];

xyz = myInts[6];

//Вроде так.

mirilka
Offline
Зарегистрирован: 03.10.2011

примерно так и сделал только разложил пересылаемые данные в двоичный код , а основную программу отладил для работы от 0-255 вместо epprom решил использовать sd карту (умрет не жалко) теперь зная какое кол-во бит (8) нужночитать можно легко считать дапустим биты с 32 по 40 и получить из них число от 0-255 которое и будет управлять алгоритмом . 

 

скетч выложу как только все отлажу  спс за помощь