это перемычки, посмотри какие сигналы RS232 заворачиваются
Не понял, что вы имели ввиду под “заворачиваются”
Теперь нужен лог. анализатор и много терпения…))
Сначала нужно определить скорость передачи, ну а потом пробовать опубликованные примеры, или самому разбираться…
Скорость передачи 2400, но не ясно с кодом все же, как и что, я пытался много чего, отправлять по символу, сразу весь массив закидал, у меня уже терпения нету если честно)
А переходник применяете для передачи с ардуино на “строку”?
И глянуть на всякий, может что на ардуино приходит, типа синхронизации…
Конечно
Почитал описание, что по ссылке, указана скорость и формат(8-n-1, самый распостранённый), так что
дело, как по мне, не безнадёжное))
Возможно, не правильно читаете. С компа идёт передача байтов, а Вы используете функцию print() для вывода символов.
Проверьте, не стоит ли в терминале установка
Можно попробовать считать данные на ардуинку , и посмотреть
byte massByte[300] = {0};
void setup() {
Serial.begin(4200);
while(!(Serial.available())){};
Serial.readBytes(massByte, 300);
for(int i = 0; i < 300; i++){
Serial.println(massByte[i]);
}
}
void loop() {
}
Читал правильно(с компа через порт монитор, причем в разных кодировках), делал не только print, делал через write, тоже самое делал по Software Serial
Как по мне, главное понять: управление по uart идёт постоянно, или только задаются начальные установки, а дальше строка сама “пашет”. Если второй случай, то , дело не безнадёжно ИМХО. Если же первый, то да, сложно будет разобраться.
P.S Про пульт пока вообще речи нет))
Просто, указал что нужно вывести, и оно пошло в строку, это все что идёт, только один раз. А про пульт, так, речи не может быть, так как у меня нету его
Ну вот, получается это вроде “прошивки”, один раз происходит.
Значит можно считать массив байтов, посмотреть размер.
Потом пробовать изменять установки, и смотреть, что меняется в массиве. Довольно кропотливая работа.
Но сначала надо добиться, чтобы данные считывались верно, и строка запускалась от ардуино.
Т.е если Вы говорите, что читаете правильно, но строка не работает, значит или читаете, или передаёте не правильно,
догадался Штирлиц))
Я не могу лишь понять, почему при считывании это просто надпись ~128~… Но в другой кодировке, а на форуме почему то совсем другие данные отправляются, я на форуме том просидел несколько дней, и мне больше не приходит в голову, как бы правильно отправить и что отправить, я конечно попробую считать данные, но это тупо будут те же данные (имею ввиду ~128~ и так далее) только каждый символ будет в байтах
Вам не нужна никакая кодировка, лишь голые байты))
Попробуйте мой скетч, и, посмотрите , что будет в мониторе
Если что, размер массива увеличьте. После окончания передачи должны сплошные нули пойти.
Попробую обязательно, напишу вечерком сегодня
Serial.println(massByte[i], HEX)
А запараллелить линию передачи на RX RS323 модуля и послушать реальный обмен не получается?
Да, сначала надо запустить ардуино, убедиться что в терминале пусто, нет мусора, а затем начинать передачу на строку
Я переработал немного код, я сделал Serial.available() > 0 в void loop() но оно прочитало
Вот:
172
152
173
8
161
107
108
109
107
дальше нули и так до 300