Официальный сайт компании Arduino по адресу arduino.cc
помогите с передачей и приемом данных
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Втр, 20/12/2011 - 15:59
предисловие
есть 2 ардуины и ББ для отладки суть в следующем
1 ардуна считывает данные с семью ультрозвуковыми датчиками определяя растояние до обекта в разных точках .
ББ (на время отладки) , потом 2я ардуина обрабатывает данные и по средствам шим управляет скоростью вращения двигателей.
проблема:
подскажите как правельно сформировать и отправить данные одним массивом
датчики---->ардуино1( ---->пакет данных -----> ББ -----> ардуино 2)??????? ------> частотный преобразователь -----> электродвигатель 380в
и так вроде со всем разобрался все написал но главный вопрос остался
по задумке при необходимости отладки что бы не перезаливать скетч по задумкам предусмотренна нолайн настройка . а именно
при подачи сигнала допустим на 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. как организовать разложение массива между раздилительными знаками ???
с не целыми числачи разберусь как нибудь а вот вопрос правельного разложения остается. может есть какая хитрая команда ?
простите что простым языком без приведения кода пишу с телефона .
Интересно.
Ведь ты всегда посылаешь одинаковое крол-во значений, так?
вот здесь описано 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];
//Вроде так.
примерно так и сделал только разложил пересылаемые данные в двоичный код , а основную программу отладил для работы от 0-255 вместо epprom решил использовать sd карту (умрет не жалко) теперь зная какое кол-во бит (8) нужночитать можно легко считать дапустим биты с 32 по 40 и получить из них число от 0-255 которое и будет управлять алгоритмом .
скетч выложу как только все отлажу спс за помощь