Страница 1 из 2

rs232 и ардуино

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

отправляю значения 3-х переменных.

Re: rs232 и ардуино

СообщениеДобавлено: 04 янв 2018 23:59
Vadomir
а что именно ты кидаешь?

Re: rs232 и ардуино

СообщениеДобавлено: 05 янв 2018 01:00
Vit
от -1000 до 1000
от 0 до 100
переменные от датчиков

Re: rs232 и ардуино

СообщениеДобавлено: 05 янв 2018 03:24
Vadomir
Кинь пример что конкретно у тебя по 232 идет . какая последовательность данных

Re: rs232 и ардуино

СообщениеДобавлено: 05 янв 2018 14:06
Vit
Не понимаю

Re: rs232 и ардуино

СообщениеДобавлено: 05 янв 2018 15:16
Vadomir
Что за датчики и что за платка с 232

Re: rs232 и ардуино

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

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

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

а вот как в ардуино работать с этими переменными?

Re: rs232 и ардуино

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

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


ну где то так. если что поподробней нужно, буду после 8 числа дома, посмотрю...

Re: rs232 и ардуино

СообщениеДобавлено: 05 янв 2018 17:31
Vit
вот как взять переменную идентификатор я не понимаю.
не могу в нете пример найти

Re: rs232 и ардуино

СообщениеДобавлено: 05 янв 2018 17:54
kamikaje
До компа доберусь, попробую написать свое видение решения.

Re: rs232 и ардуино

СообщениеДобавлено: 05 янв 2018 18:23
Vadomir
Vit писал(а):вот как взять переменную идентификатор я не понимаю.
не могу в нете пример найти

Назначь сам.
Есть хорошая книжка про скетчи. Буду лома скину

Re: rs232 и ардуино

СообщениеДобавлено: 06 янв 2018 00:33
kamikaje
В общем, нужно передавать сразу значение с идентификатором в виде строки, т.е. значение параметра А передаешь как "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); // в той же строке выводим значение параметра
}


Корявенько, но идея, надеюсь, понятна.

Re: rs232 и ардуино

СообщениеДобавлено: 06 янв 2018 10:28
Vadomir
:stars: Блин. Я о фиксированной длинне строки как то и не подумал.... Так проще намного

Re: rs232 и ардуино

СообщениеДобавлено: 06 янв 2018 22:50
kamikaje
Можно еще проще: передавать в одной строке все три параметра фиксированной длины, а на Ардуино разбирать пакет.

Re: rs232 и ардуино

СообщениеДобавлено: 06 янв 2018 22:56
Vadomir
Я привык что данные могут быть любой длинны