rs232 и ардуино

любые темы, в разумных рамках......

rs232 и ардуино

Сообщение Vit » 04 янв 2018 23:49

имеем железяку с rs232, с нее кидаю на ардуино.
все летит, ардуинка принимает. но как "разложить по полочке данные"?
вот так принимаю, в мониторе я понимаю с какого датчика, но как разобрать этот пакет? чтоб работать с этими переменными полученными с железяки по 232
Код: Выделить всё
void loop(){
  if (Serial3.available()) {
        incomingInt = Serial3.parseInt();
        Serial.println(incomingInt);
}

отправляю значения 3-х переменных.
Что может пойти не так, пойдет не так и это обязательно будет так.
Аватара пользователя
Vit
Команда клуба
Команда клуба
 
Сообщения: 10403
Изображения: 461
Зарегистрирован: 29 май 2008 19:13
Авто:: Oldsmobile Silhouette 3,8
Год выпуска:: 1993
Место жительства: Королев

Re: rs232 и ардуино

Сообщение Vadomir » 04 янв 2018 23:59

а что именно ты кидаешь?
Vadomir
 
Сообщения: 951
Изображения: 1
Зарегистрирован: 25 фев 2017 15:10
Авто:: Chevrolet Lumina APV 3,8
Год выпуска:: 1993
Место жительства: Таганрог

Re: rs232 и ардуино

Сообщение Vit » 05 янв 2018 01:00

от -1000 до 1000
от 0 до 100
переменные от датчиков
Что может пойти не так, пойдет не так и это обязательно будет так.
Аватара пользователя
Vit
Команда клуба
Команда клуба
 
Сообщения: 10403
Изображения: 461
Зарегистрирован: 29 май 2008 19:13
Авто:: Oldsmobile Silhouette 3,8
Год выпуска:: 1993
Место жительства: Королев

Re: rs232 и ардуино

Сообщение Vadomir » 05 янв 2018 03:24

Кинь пример что конкретно у тебя по 232 идет . какая последовательность данных
Vadomir
 
Сообщения: 951
Изображения: 1
Зарегистрирован: 25 фев 2017 15:10
Авто:: Chevrolet Lumina APV 3,8
Год выпуска:: 1993
Место жительства: Таганрог

Re: rs232 и ардуино

Сообщение Vit » 05 янв 2018 14:06

Не понимаю
Что может пойти не так, пойдет не так и это обязательно будет так.
Аватара пользователя
Vit
Команда клуба
Команда клуба
 
Сообщения: 10403
Изображения: 461
Зарегистрирован: 29 май 2008 19:13
Авто:: Oldsmobile Silhouette 3,8
Год выпуска:: 1993
Место жительства: Королев

Re: rs232 и ардуино

Сообщение Vadomir » 05 янв 2018 15:16

Что за датчики и что за платка с 232
Vadomir
 
Сообщения: 951
Изображения: 1
Зарегистрирован: 25 фев 2017 15:10
Авто:: Chevrolet Lumina APV 3,8
Год выпуска:: 1993
Место жительства: Таганрог

Re: rs232 и ардуино

Сообщение Vit » 05 янв 2018 16:11

у это сложно.
железяка читает с потенциометра и кидает
Код: Выделить всё
PRINT ( Pot ," \n")

работает железяка на Micro Basic.
я могу с железяки через 232 отправлять все что нужно, но как разобрать пакеты не понял.
предположим я отправляю
Код: Выделить всё
PRINT ( Pot ," \n")
PRINT ( Pot1 ," \n")

две переменных, в мониторе иде вижу
Код: Выделить всё
100
50

а вот как в ардуино работать с этими переменными?
Что может пойти не так, пойдет не так и это обязательно будет так.
Аватара пользователя
Vit
Команда клуба
Команда клуба
 
Сообщения: 10403
Изображения: 461
Зарегистрирован: 29 май 2008 19:13
Авто:: Oldsmobile Silhouette 3,8
Год выпуска:: 1993
Место жительства: Королев

Re: rs232 и ардуино

Сообщение Vadomir » 05 янв 2018 17:08

ну по хорошему тебе нужно отправлять любую инфу в виде пакета как минимум из двух переменных. первая это что то типа числового идентификатора переменной и вторая это ее значение например
Код: Выделить всё
PRINT ( Pot ," \m")
PASUSE 500 #пауза нужна чтоб ардуинка успела понять что что то пришло и обработать первую переменную
PRINT ( Pot ," \n")

где m это идентификатор переменной а n сама переменная (данные)
пишу с мелкого бука так что пример привожу приблизительно и синтаксис корявый
на ардуинке запусти опрос порта, полученные данные кидай в переменные, потом их обрабатывай через условие поэтапно, берешь переменную идентификатор, смотришь ее значение и в соответствии с этим вызываешь тот обработчик который нужен для обработки переменной данных.


ну где то так. если что поподробней нужно, буду после 8 числа дома, посмотрю...
Vadomir
 
Сообщения: 951
Изображения: 1
Зарегистрирован: 25 фев 2017 15:10
Авто:: Chevrolet Lumina APV 3,8
Год выпуска:: 1993
Место жительства: Таганрог

Re: rs232 и ардуино

Сообщение Vit » 05 янв 2018 17:31

вот как взять переменную идентификатор я не понимаю.
не могу в нете пример найти
Что может пойти не так, пойдет не так и это обязательно будет так.
Аватара пользователя
Vit
Команда клуба
Команда клуба
 
Сообщения: 10403
Изображения: 461
Зарегистрирован: 29 май 2008 19:13
Авто:: Oldsmobile Silhouette 3,8
Год выпуска:: 1993
Место жительства: Королев

Re: rs232 и ардуино

Сообщение kamikaje » 05 янв 2018 17:54

До компа доберусь, попробую написать свое видение решения.
Между небом и землей...
Аватара пользователя
kamikaje
 
Сообщения: 605
Зарегистрирован: 01 апр 2017 01:20
Авто:: Oldsmobile Silhouette 3,8
Год выпуска:: 1993
Место жительства: Кострома

Re: rs232 и ардуино

Сообщение Vadomir » 05 янв 2018 18:23

Vit писал(а):вот как взять переменную идентификатор я не понимаю.
не могу в нете пример найти

Назначь сам.
Есть хорошая книжка про скетчи. Буду лома скину
Vadomir
 
Сообщения: 951
Изображения: 1
Зарегистрирован: 25 фев 2017 15:10
Авто:: Chevrolet Lumina APV 3,8
Год выпуска:: 1993
Место жительства: Таганрог

Re: rs232 и ардуино

Сообщение kamikaje » 06 янв 2018 00:33

В общем, нужно передавать сразу значение с идентификатором в виде строки, т.е. значение параметра А передаешь как "A<значение>". Строковое представление значения должно быть фиксированной длины, одинаковой для всех параметров. На Ардуинке преобразуешь обратно, выделяя идентификатор параметра в коде из полученной строки, что-то вроде:
Char incomingStr[6]; // 6 длина строки,где 1 символ - идентификатор параметра, а остальные 5 - значение
Char ParamID; // идентификатор параметра
Int ParamValue; // значение параметра

void loop(){
if (Serial3.available()) {
incomingStr = Serial3.readString(); // читаем строку
ParamID = incomingStr[0]; // выделяем идентификатор
ParamValue = int(incomingStr[1]+incomingStr[2]+incomingStr[3]+incomingStr[4]+incomingStr[5]); // преобразуем значение параметра в целое
Serial.print(ParamID + ": "); // выводим идентификатор (здесь можно добавить условный оператор для внятного обозначения параметра)
Serial.println(ParamValue); // в той же строке выводим значение параметра
}


Корявенько, но идея, надеюсь, понятна.
Между небом и землей...
Аватара пользователя
kamikaje
 
Сообщения: 605
Зарегистрирован: 01 апр 2017 01:20
Авто:: Oldsmobile Silhouette 3,8
Год выпуска:: 1993
Место жительства: Кострома

Re: rs232 и ардуино

Сообщение Vadomir » 06 янв 2018 10:28

:stars: Блин. Я о фиксированной длинне строки как то и не подумал.... Так проще намного
Vadomir
 
Сообщения: 951
Изображения: 1
Зарегистрирован: 25 фев 2017 15:10
Авто:: Chevrolet Lumina APV 3,8
Год выпуска:: 1993
Место жительства: Таганрог

Re: rs232 и ардуино

Сообщение kamikaje » 06 янв 2018 22:50

Можно еще проще: передавать в одной строке все три параметра фиксированной длины, а на Ардуино разбирать пакет.
Между небом и землей...
Аватара пользователя
kamikaje
 
Сообщения: 605
Зарегистрирован: 01 апр 2017 01:20
Авто:: Oldsmobile Silhouette 3,8
Год выпуска:: 1993
Место жительства: Кострома

Re: rs232 и ардуино

Сообщение Vadomir » 06 янв 2018 22:56

Я привык что данные могут быть любой длинны
Vadomir
 
Сообщения: 951
Изображения: 1
Зарегистрирован: 25 фев 2017 15:10
Авто:: Chevrolet Lumina APV 3,8
Год выпуска:: 1993
Место жительства: Таганрог

След.

Вернуться в Беседы обо всём

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11