не получается сконнектить две Uno по rs485
- Войдите на сайт для отправки комментариев
Моя конечная задача запихнуть MODBUS в ардуинку, он работает поверх rs485, поскольку плат управления устройствами по MODBUS у меня пока нет, я решил вместо них повесить вторую ардуинку что-бы на ней сэмулировать управление оборудованием (фальшивые отклики и все такое)
Оборудование такое, два компа, к каждому подключена arduino Uno, к каждой ардуинке подключены микросхемы MAX3485 https://datasheets.maximintegrated.com/en/ds/MAX3483-MAX3491.pdf у этих микрух выводы включающие приемник и передатчик подсоединены к седьмой лапе ардуино, таким образом пишем туда 1 = работает передача, пишем ноль = работаем на прием, между платами соединена земля , а на MAX3485 выводы А и В подсоединены к соответствующим выводам второй MAX3485. На плате расширения, на котророй стоит MAX3485 есть возможность подключать ее к штатным rx/tx, что позволяет использовать модуль Serial, или к выводам 2 и 8, для работы через SoftwareSerial.
вот так выглядит сборка http://img.radiokot.ru/files/55520/25kzs2nafs.jpg
а вот так скетч на мастере, и его выхлоп (тут все вполне норм) http://img.radiokot.ru/files/55520/25l03uz9up.png
теперь по слейву, я пишу в Serial то-же самое что и прочел так как по rs485 это не улетит ибо на слейве MAX3485 в режиме чтения, а увидеть что прилетело мне надо, и вот тут какая-то бяка, смотрите скриншот http://img.radiokot.ru/files/55520/25l07zi2yg.png
ну думаю, ладно наверно дело в том что Я пишу туда-же откуда читаю, переключил слейва на SoftwareSerial , пробую и он мне то-же самое дерьмо давай показывать , скрин прилагается http://img.radiokot.ru/files/55520/25l0b5vxa6.png
как побеждать это дерьмо ума не приложу.
и что, неужели нет никаких мыслей, что за последовательность 49 - 50 - 51 - 52 ? :))) и это на пятый год занятий ардуиной? :)
Эх ты, горе-программист :)
b707, ну во-первых, я попросил-бы без троллинга!
Во-вторых, с ардуиной я работаю впервые, до этого всегда сам пилил свою плату и работал с AVR-ками напрямую, если мне не изменяет память то прошлый раз я не мог запустить один дисплей, как выяснилось позже, слишком быстро в него писал, и на этом форуме оказался исключительно потому-что гугл кинул на него. Сейчас-же связался с ардуино так как нет времени на разработку платы, готовый проект нужен вчера!
В-третьих, нет никаких предположений, точнее было одно, по-идее в сях unsigned int - 32 бита, есть-ли под ардуино типы uint8_t и им подобные - мне не известно, и сколько бит в случае ардуино занимает unsigned int мне тоже не известно. Но в любом случае если эта догадка была-бы верна то в выхлопе я должен был увидеть приблизительно такую последовательность : Х, 0, 0, 0, Y, 0, 0, 0 , где x и у - какие-то числа, а нули это незанятые байты (так как читаем по одному байту, а тут предполагается 32 бита или 4 байта). Так как картина была иной, данное предполохение я отвергнул.
b707, если вам известно откуда такая последовательность, буду рад если вы скажете в чем дело, вместо издевательств.
Ну и дополнительный вопрос, возможно-ли испльзуя ардуино прогать как под чистый камень, тоесть писать все в регистры, использовать обычные авр-ные прерывания итд?
Не верю! ((С)Станиславский) На все вопросы можно найти ответы час потратив почитав форум. Даже на то, что ардуино использует С,С++ . MODBUS разжёван до самых косточек. Прямое управление регистрами МК и ассемблерные вставки.
На Счёт издевательств - это Ваши вопросы звучат как тролинг. Учитывая, что ардуино это надстройка над AVR версией компилятора gcc.
Мне нужно не форум читать а в кратчайшие сроки все запрогать, если-бы не этот факт к ардуине хрен прикоснулся-бы!!! Я ни разу не читал что представляет она и ее библиотека, решил сразу без этих знаний, полагая что умения кодить напрямую под камень хватит для реализации проекта. Еще часок с ней посовокупляюсь, а не выйдет нихрена - снесу ко всем чертям загрузчик и напишу все под камень в авр-студио. Зае**ло.
вот блин, сменил тип отсылаемой переменной на мастере с unsigned int на uint8_t, теперь шлется только 1 байт данных, за один проход цикла, а ситуация на слейве не поменялась, это спрашивается какого х** происходит бл**!!!
всем спасибо за "ПОМОЩЬ" , разобрался, оказывается надо было юзать Serial.write() а не Serial.print(), это пздц, какой идиот додумался в ASCII данные переводить перед отправкой - ума не приложу!
полагая что умения кодить напрямую под камень хватит для реализации проекта.
да заканчивай уже врать, никакого умения кодить ни под что у тебя нет и не было. Любой программист хотя бы с полугодовым стажем при виде последовательности 49-50-51-52... сразу понял бы, что это
'1'-'2'-'3'-'4'....
о чем я и писал в первом сообщении.
Если б ты сразу написал, что полный чайник и язык С видишь первый раз в жизни - помогли бы, а раз решил щеки раздувать на тему своево "опыта" - разбирайся сам
всем спасибо за "ПОМОЩЬ" , разобрался, оказывается надо было юзать Serial.write() а не Serial.print(), это пздц, какой идиот додумался в ASCII данные переводить перед отправкой - ума не приложу!
Cогласен, тут затупил я, сейчас доку почитал, удобно, в любом формате выводить можно, жаль только про Serial.write() никто не подсказал, это сэкономило-бы мне уйму времени.
да заканчивай уже врать, никакого умения кодить ни под что у тебя нет и не было. Любой программист хотя бы с полугодовым стажем при виде последовательности 49-50-51-52... сразу понял бы, что это
'1'-'2'-'3'-'4'....
о чем я и писал в первом сообщении.
Если б ты сразу написал, что полный чайник и язык С видишь первый раз в жизни - помогли бы, а раз решил щеки раздувать на тему своево "опыта" - разбирайся сам
А вам сударь я указываю дорогу туда где жизнь взяла свое начало! Что за бред, все прогеры помнят таблицу ASCII наизусть ? Или мб когда кодишь в студии нужно юзать print() ? Или по вашему мнению я должен знать си вдоль и поперек под все платформы а не только под авр что-бы что-то писать? Короче направление я вам указал!
Что за бред, все прогеры помнят таблицу ASCII наизусть ? Или мб когда кодишь в студии нужно юзать print() ? Или по вашему мнению я должен знать си вдоль и поперек под все платформы
мужик, ты сам не понимаешь. насколько смешно выглядишь со своими понтами :) Примерно как "я Волгу умею водить, а Жигули нет!"
Похоже. где-то на заборе прочитал "Ардуино отстой. АВР-студия круто!" - а сам бит от байта не отличает :)
Уже то, что ты не понимаешь, что плату ардуино не обязательно "кодить" в Ардуино ИДЕ. а можно запросто писать программу под якобы "привычной тебе" Студии - полностью разоблачает твое вранье относительно твоего умения работать с АВР-процами :)
Что за бред, все прогеры помнят таблицу ASCII наизусть ?
Конечно.
А Вы видели хотя бы одного, который не помнит?
Или мб когда кодишь в студии нужно юзать print() ?
Ну это вообще-то сам программист решает, что ему использовать, а что - нет.
Или по вашему мнению я должен знать си вдоль и поперек под все платформы а не только под авр что-бы что-то писать?
Совершенно необязательно. Я, например, вообще не знаю. Главное - уметь программировать, а на каком языке - дело десятое.