Подскажите по портам rx и tx на китайской Меге
- Войдите на сайт для отправки комментариев
Приветствую всех!
Третий день бьюсь безрезультатно над одной проблемой. В инэте по ней пустота.... толи я тупой то ли руки кривые. В чем суть. Есть проект типа управляемого робота. Его реши перевести с nrf... на HC-12 SI4463. Если у nrf'ок свой тип подключения, то hc-12 общаются тупо по uart. Модули заказывались парой, настроены через at команды. Пишу простенький скетч чтобы буква писалась и отлетала в сириал (в качестве пульта nano). И приходила в сириал mega. Так вот ничего не приходит! Точнее после плясок с бубном получиль следующее. Буквы приходят если задействовать софтвер сириал (52 и 53 разъёмы меги) но заканчивается все тем что они учитываются монитором порта и самой ардуиной игнорятся. Либо, что самое интересное, это указать в скетче сириал 1 а воткнуть в порты 0. Тогда монитор считывает, но мега использовать для исполнения их не может.
Пробовал уже на двух разных мегах китайский - результат один. Если использовать в качестве приёмника нану (поменять их местами) в сириал приходит какая то абракадабра из цифр. Другие сириал на меге молчат. Не понимаю что делаю не так. ... пробовал на боютузных уарт модулях истрия та же, то есть проблема либо в мегах либо скетче. Я склоняюсь к первому, ибо скетч самый примитивный.
Вы очень мудро поступили, что задали вопрос без скетча, без фото Вашей меги и вообще ... в расчёте на хрустальный шар.
Ну, давайте гадать ... не вот это?
ОК. Спасибо за ссылку, я ту тему тоже читал. Но там проблемка в другом))))
Фото моей меги [url=https://radikal.ru][img]https://d.radikal.ru/d23/2102/5b/4bf454d6050a.jpg[/img][/url] В ней нет (вроде бы) ошибки в маске печати)
Это кусочек кода. Он очень простой. Я не понимаю почему когда я указываю Serial1 - Ок. С пульта приходят значения и отражаются в мониторе порта - НО ! не исполняются state которые к ним привязаны. При этом это работает только если указать Serial1 НО воткнуть его в 0 и 1 порты Меги. По другому вообще глухо. Вариант в Софтсириал (52 и 53 пины) не проходит также - данные в монитор порта но не исполняются state.
Читайте внимательно про софт сериал, там в качестве RX может быть только нога с прерываниями.
Кроме того вот вы чего с чем сравниваете ? Число со строкой !?!?!?!?!? Так оно никогда равно не будет.
Опять не понимаю, вы по вашему уровню должны были этот вопрос задавать в песочнице. Почему вы тут ?
Спасибо за направление в песочницу))) там нет ответа на мой вопрос, я искал. Вопрос именно про железо, по этому я тут. Про прерывание я в курсе по этому и 52 и 53 порт меги.
Вопрос по сути простой, я не спорю, но на просторах интернета я ответа не нашел. Скетч будет самым простым. Может кто то сталкивался - я грешу именно на мегу и китайцев, проверить орегинальной меге у меня возможности нет.
И что же китайцы в Вашей Меге испортили - можете предположить?
Без схемы нет ответа.
Потому что conditions всегда возвращают ложь.
Это ваще непонятно. В приведенном фрагменте скетча софтсириала нет.
Вы всегда читая видите только то что хотите ? Вам нужно в песочницу потому что state соответственно вашему же коду это цифра со знаком, а сравниваете вы ее с массивом char.
Если сравнить три рубля с яблоком то к какому выводу можно прийти ? Правильно, ОНИ НИКОГДА НЕ РАВНЫ, даже если это яблоко стоит три рубля, это его цена а не само яблоко.
По тому что вы ваяете видно, что вы не знакомы с языком на котором пытаетесь писать. И ваш вопрос он настолько абсурден, что становится смешно. А выводы которые вы делаете на основании неудач, еще более смешные.
6 строка должна быть: char state;
и везде где вы сравниваете state с чем то замените двойные кавычки на одинарные.
"почесывая репу"...
я точнг такой же код (скетч) )использовал с hc-05 и 06. Все работало!
сейчас попробовал подключил Hc-06 (приемник, прошит через АТ на автоконнект с передатчиком на нс-05). на одной дуне мега заработал сьполпинка набдругой какя то фигня идет. в обоих случаях подключены на RX0 и TX0. Не понимаю....
нс-12 я проверял на двух Нано, гоняя туда сюда значения. Опять таки все работало
Про кавычки и char state спасибо, сейчас попробую
Попробовал все упростить до неприличия)))
Вот такой скетчик. Фишка в чем. В монитор все четко падает с передающей ардуины - 100% НОООО!!! Физически задействованы порты 0 и 1 , а должно быть 14 и 15. Пробовал менять на Sirial1, Serial 2 и Serial 0. Работает только в 0 и 1, остальные - пусто. Также фигня если указать просто Serial 0 и воткнуть в 0 и 1 связи нет.
Как я и сказал значения (буквы) приходят исправно НО в вкл/выклу светодиода это не относится никак.
UPD. Связь падает как только я запускаю Serial.begin (9600)
Skunss, в строках 23 и 31 скетча из сообщения №10 Вы сравниваете целое число со строкой. Чтобы сравнение проходило корректно, рекомендуется, чтобы с обеих сторон были данные одного и того же типа. В данном случае лучше всего будет char.
PS. Собственно, об этом Вам уже brokly писал.
andriano, ему уже писали об этом - не доходит.
К слову - он даже сравнивает байт с указателем - я правильно понимаю?
Пробовал сhar - результат одинаковый. Выше написал об этом. Фикус еще в том, что при воткнутых ногах 0 и 1 Мега прекрасно прошивается)))
Уважаемые, я очень прошу обратить внимание на 11 сообщение - это наверное основа загадки. Если бы адекватно задействовался бы serial0 я думаю проблема не возникла. И как я писал выше - если воткнуть блютузный нс-06 все работает с serial0.
И ещё GND соединять некоторые забывают, вот и не работает нишиша.
Ты понимаешь совершенно правильно, что не удивительно. А вот он какой то странный :(
уважаемый, очень советую обратить внимание на сообщения #7 и #12. Пока вы эти ошибки не исправите - обсуждать ничего другого просто не имеет смысла и никто на ваши сообщения обращать внимания не станет
Я уже выше писал, что менял на char - результата это не принесло. И кавычки, и много чего еще. Сюда подцеплять мвои изыскания не стал.
Опять таки если вместо хардововых сириалов использовать софтовый - то хоть и с "дребезгом" но работает. Скетч стандартный для 52 и 53 портов Меги
Буквально по первой ссылке нашел скетч для проверки hc-12. https://3d-diy.ru/wiki/arduino-moduli/radiomodul-hc-12/ Залил его на Уну (у нее один Сириал). Скетч завелся с учетом того что я значения на свои поменял. Светодиод на Уну включается и выключается пусть и не совсем как надо. Но это уже лучше чем ничего. Далее залил тот же скетч в Мегу - нифига. Поменял туда сюда номера Сириалов - нифига.
Есть кто-нибудь кто реально сдруживал Нс-12 и мегу?
уважаемый, очень советую обратить внимание на сообщения #7 и #12.
Ну, так он же уже
Помните деятеля, который, когда ему сказали, что датчик не к тому пину подключён, ответил: "А я пробовал к разным - не помогает, вернул как было". Вот и здесь так же :-)
"Я не пробовал, но думаю что умею" (с) из анекдота :)
У меня как-то нет никаких сомнений, что у меня HC-12 заведется на меге.
Валяются в коробке Мега и HC-12. Сколько платите, чтобы я вам продемонстрировал на любом Сериале (да хоть на всех поочередно) работу этого модуля ?
Ни сколько. А смысл? То что Вы на своей Меге и своих HC-12 что то прогоните, это не значит,что заработает именно на моих. Верно? Я по этому и разместил в Железной ветке а не в софтовой. Но тем не менее проблемму я решил. Не знаю почему и как но завелось. Залил в пульт и робота, скетчи соответственно от другого робота который под HC-05 и 06 делался. Тестил на 11 пине сервы - все четко без глюков работает.
Всем спасибо! Тему можно закрывать.
Ардуина неисправная, китайцы виноваты, провода херовые... что ещё забыл?
Ни сколько. А смысл? То что Вы на своей Меге и своих HC-12 что то прогоните, это не значит,что заработает именно на моих. Верно?
нет, не верно. Причина вашей проблемы никак не связана с железом, а только с тем, что вы копипастите чужие коды, не понимая их смысла.
Вот именно - "не знаю почему". Судя по всему - Вы так ничего и не поняли. А это значит, что понадобится что-то поменять - и опять нифига работать не будет.
вы бы внимательно прочитали ветку еще раз - правильный ответ там есть. Хотя возможно, стоит сначала проштудировать учебник по языку.
забавно, что ТС "увелается ардуиной" уже три года, а времени почитать методичку по программированию, судя по всему. так и не нашлось
Это же не наш метод!