Кто работал с этими модулями подскажите ? есть такая схема Если отправить с компа один байт он возвращается - т.е. все работает как нужно Если повесить на второй модуль (вместо перемычки) ардуино со скетчем Код (C++): byte B1_NEW = 0; // получаемый байт void setup() { Serial.begin(9600); } void loop() { delay(1000); Serial.print('a'); delay(1000); Serial.print('b'); } То символы в мониторе порта также появляются а вот если в ардуино залить скетч Код (C++): void setup() { Serial.begin(9600); } void loop() { if (Serial.available() > 0) { B1_NEW = Serial.read(); // читаем байт Serial.write(B1_NEW); // отдаем его обратно } } то отправка байта с ПК обратно его не возвращает p.s: менял на настроенную пару HC05-HC05 все работает как нужно - что это неисправные модули ?
Разбейте вопрос на две части: исправны ли модули , и работает ли этот скетч. На приёмнике оттормозите возвращение байта на некоторое время и посмотрите что будет.
Так и не понял на какие две части перефразирую по другому Берем ардуино и заливаем скетч Код (C++): byte B1_NEW = 0; // получаемый байт void setup() { Serial.begin(9600); } void loop() { if (Serial.available() > 0) { B1_NEW = Serial.read(); // читаем байт delay(500); Serial.write(B1_NEW); // отдаем его обратно } } подключаем к пк через терминал посылаем байт и получаем его обратно собираем другую схему посылаем байт и получаем его обратно вместо перемычки на RX TXподключаем плату ардуино с залитым ранее скетчем и в ответ ничего не получаем
похоже на брак - если эта штука декларируется как прозрачный UART то по идее все должно работать, а на практике не работает hc05-hc06 отправленный с ПК байт возвращается hc12-hc12 байт не возвращается перепутать в такой схеме мне кажется что-то сложно....
Скорость порта на радиомодуле и у ардуинки совпадают? Брак не может быть - иначе байт бы не возвращался через перемычку. Не работает именно прием ардуинкой.
проблема в том что если залить в ардуинку Код (C++): void setup() { Serial.begin(9600); } void loop() { delay(1000); Serial.print('a'); delay(1000); Serial.print('b'); } то в мониторе порта на компьютере эти символы печатаются - т.е. я не могу прочитать ардуино то что приходит в нее с компьютера. с ардуино на комп отправка идет
Короче какие-то чудеса В одной ардуине Код (C++): void setup() { Serial.begin(9600); } void loop() { delay(1000); Serial.print('a'); delay(1000); Serial.print('b'); } Во второй ардуине Код (C++): int incomingByte = 0; void setup() { pinMode(13, OUTPUT); Serial.begin(9600); } void loop() { if (Serial.available() > 0) { incomingByte = Serial.read(); if (incomingByte == 'a') digitalWrite(13,1); if (incomingByte == 'b') digitalWrite(13,0); } } Соединил проводами - работает Поставил модули HC05-HC06 - работает Поставил модули HC12 - не работает Но если выкинуть Arduino и подключить USB-UART переходник то babababababababa там отображаются т.е. переходник читает байты приходящие с модуля HC12, а плата ардуино нет
Может кому потребуется - HC-12 оказался несовместим с платами robotdyn на чипе CH340G не заработала не МЕГА не НАНО - не работает именно прием!!! с передачей все в порядке. Короче говоря платы разных китайских умельцев с одним и тем же скетчем ведут себя по разному - т.е. если денег нет на дорогие фирменные оригинальные платы то вы держитесь и хорошего вам настроения...
а, дочитал... ну они да... мне тоже както мозг вынесли, с их аппаратным UART и экономии на двух резисторах только то на UNO было, на NANO там вроде UART нормальный, они их все время допиливают, может с версией не повезло.
Есть и хорошая новость - на меге от роботдюна модуль без проблем заработал на 1-ом аппаратном сериале 18/19 ножки (байт пришел и ушел) теперь вот чешу репу..... на приемник я планировал НАНО поставить из-за размеров - теперь как-то стремно вдруг кривая плата попадется.... Интересно где нибудь можно купить оригинальную плату нано из Италии.... ? Код (C++): byte B1_NEW = 0; // получаемый байт void setup() { Serial1.begin(9600); } void loop() { if (Serial1.available() > 0) { B1_NEW = Serial1.read(); // читаем байт Serial1.write(B1_NEW); // отдаем его обратно } }
отковыряй CH340 и будет работат, прошиваться только будет как промини. оригинал можно взять в амперке, только какой в этом смысл неочень ясно, если нужен отдельный UART то лучше брать леонардо. или использовать программный.
отдельный UART мне нужен только с одной стороны чтобы коммуницировать передатчик с пк в случае необходимости, а вот со стороны приемника чем проще (меньше) тем лучше да и кстати CH340 был и на синенькой плате нано (не от роботдюна которая) та работала без отковыриваний ))) наны в амперке нет давно но за идею спасибо - подумаю
Да, здесь прям мистика. Ну не бывает в электронике мистики, все имеет причину. Вы проверили на перемычке - работает. А на дуньке не работает. Значит не нравятся ему либо временные характеристики, либо напряжение. Временные характеристики вроде подходят, раз на приеме у дуньки сигнал распознается. Осталось одно - выход ТХ дуньки не совместим с входом модуля. Хорошо бы посмотреть осциллографом, а без него будем гадать. Здесь вариантов два - либо высокий уровень дуньки меньше порога модуля и 1 не ловится, либо высокий уровень дуньки превышает питание модуля и модуль "глючит". 1. Вешаем подтяжку с входа РХ модуля на плюс его питания в несколько килоом. 2. Выход ТХ подключаем к модулю через переменник "регулятор громкости" в килоом. Косвенно уровни можно сравнить передавая постоянно один символ и замерив напряжение стрелочным вольтметром на выходе ТХ модуля и на выходе ТХ дуньки. Стрелочник сильно усредняет, примерно такого же эффекта можно добиться с помощью RC цепочки и электронного вольтметра.