HC-12 модуль радиосвязи uart

Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Аватара пользователя
mixon46
Говорящий с текстолитом
Сообщения: 1644
Зарегистрирован: Сб фев 18, 2012 15:42:29
Откуда: Курск

HC-12 модуль радиосвязи uart

Сообщение mixon46 »

Здравствуйте. Прошу помощи. Есть два модуля hc-12. Пытаюсь сделать простое управление. С одной стороны ардуино нано подключена к ПК. С другой стороны ардуино про микро. Обе ардуино исправны. Прошиваются а значит uart работает. При подключении к монитору порта модулей HC-12 оба отзываются на команды АТ. Сравнил их настройки. Всё одинаково. И ранее я их подключал. И мне удалось связаться между ними. Может что в скече не так написал
Реклама
roman.com
Друг Кота
Сообщения: 9157
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: HC-12 модуль радиосвязи uart

Сообщение roman.com »

а почему бы не припаять ардуино напрямую к радио модулю по SPI ?
с этими юартами одни проблемы...
Реклама
Аватара пользователя
mixon46
Говорящий с текстолитом
Сообщения: 1644
Зарегистрирован: Сб фев 18, 2012 15:42:29
Откуда: Курск

Re: HC-12 модуль радиосвязи uart

Сообщение mixon46 »

Эмм. Ну если в радиомодуле есть spi это конечно здорово. А кто потратит столько времени на изучение А потом ещё и свою программу будет писать
roman.com
Друг Кота
Сообщения: 9157
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: HC-12 модуль радиосвязи uart

Сообщение roman.com »

mixon46 писал(а):Ну если в радиомодуле есть spi это конечно здорово.
Screenshot_1.jpg
(82.54 КБ) 177 скачиваний
mixon46 писал(а):А кто потратит столько времени на изучение А потом ещё и свою программу будет писать
я потратил столько времени на изучение А потом ещё и свою программу написал
https://www.radiokot.ru/forum/viewtopic ... 8&t=148087
правда модуль у меня чуть другой... но принцип тот же))
радио_модуль_SPI.jpg
(150.85 КБ) 162 скачивания
все радио модули работают одинаково.
отличие только в названиях регистров))
:tea:
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
mixon46
Говорящий с текстолитом
Сообщения: 1644
Зарегистрирован: Сб фев 18, 2012 15:42:29
Откуда: Курск

Re: HC-12 модуль радиосвязи uart

Сообщение mixon46 »

Респект конечно. Но для того что бы применить ваши знания к какому либо проекту придётся и их изучить. Я разобрался с uart. На 32u4 он работает по другому. Инициализируется по другому. Но мне удалось отправить командное слово с одной ардуины на другую и получить ответ. Так что опыты прошли удачно
Реклама
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: HC-12 модуль радиосвязи uart

Сообщение Eddy_Em »

[uquote="mixon46",url="/forum/viewtopic.php?p=4178775#p4178775"]А кто потратит столько времени на изучение А потом ещё и свою программу будет писать[/uquote]
Золотые слова!
Вся суть абдуринщиков в двух предложениях!

Представь себе, а я сижу по вечерам и на девборде изучаю новые датчики. То под один напишу, то под другой. Когда-то, наивный, думал готовое в сети найти — а нет ничего! Одни лишь огрызки убогого абдуринокода.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Реклама
Аватара пользователя
mixon46
Говорящий с текстолитом
Сообщения: 1644
Зарегистрирован: Сб фев 18, 2012 15:42:29
Откуда: Курск

Re: HC-12 модуль радиосвязи uart

Сообщение mixon46 »

Я про то что что бы управлять модулем его надо изучить. SPI интерфейс. Написать библиотеку с какими то определёнными методами. Что бы библиотеку написать надо понимать как этот spi работает. Ну как бы это сложно
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: HC-12 модуль радиосвязи uart

Сообщение Eddy_Em »

Если для тебя это сложно, то лучше брось радиогубительство! Что сложного в том, чтобы прочитать пару даташитов, да написать код для общения с нужной железякой?
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
mixon46
Говорящий с текстолитом
Сообщения: 1644
Зарегистрирован: Сб фев 18, 2012 15:42:29
Откуда: Курск

Re: HC-12 модуль радиосвязи uart

Сообщение mixon46 »

Может оно и не сложно. Но Я пока не придерживаюсь углубленного изучения данного модуля. Оно не сложно когда потратишь несколько дней на изучения. А потом забудешь ради чего это изучал



Написал такой код. Не один из светодиодов не загорается что странно. Кто может подсказать. Хотя есть сейчас мысль если байтов пришло 0 то будет -1 показывать. Проверим
Спойлер#define LED_RED 3
#define LED_GREEN 4


char i = 1;
int SET = 2;
int t = 0;

int bitok = 0;


void setup() {

pinMode (SET, OUTPUT);
digitalWrite (SET, HIGH);
Serial.begin (9600);
pinMode (LED_RED, OUTPUT);
digitalWrite (LED_RED, LOW);
pinMode (LED_GREEN, OUTPUT);
digitalWrite (LED_GREEN, LOW);

}

void loop() {

while (i==1) //переходим в режим проверки ближнего модуля HC-12
{
digitalWrite (SET, LOW); //делаем низкий уровень на ноге set
delay (100); //выдерживаем время для переключения в режим настроек
Serial.println ("AT"); //отправляем команду проверки модуля
delay (10); //выдержка перед считыванием оветных данных с модуля HC-12
String stroka = Serial.readString (); //считаем и запишем ответные данные
Serial.print (stroka); //отправляем с ардуины в порт эти даные (они же отправятся на модуль HC-12, но модуль их не должен отправить)
digitalWrite (SET, HIGH); //выходим из режима настроек
delay (2000); //задержка перед переходом модуля в режим приемо передачи
i=2; //выставляем бит выхода из данной задачи
}




while (i==2) //переходим в режим проверки дальнего модуля HC-12
{
Serial.println ("FMT"); //отправляем команду FMT для ожидания обратной связи
delay (5); //выжидаем время для получения ответа
t = Serial.available ();
if (t == 2) //проверим наличие 2 пришедших байт информации
{String stroka = Serial.readString (); //запишем в строку эти данные
if (stroka == "OK") //если обратная связь с модулем присутствует то
{Serial.println (stroka); //отпраляю в монитор порта эти данные (они же будут отправлены обратно на 32U4)
i=3; //перехожу в режим передачи данных
digitalWrite (LED_GREEN, HIGH); //в этом режиме можно зажечь зеленый индикатр связи
};
delay (10);
if (t >= 0) //если данных не поступило
{Serial.print ("ERROR HC12"); //выводим ошибку в монитор порта (эти же данные будут отправлены в дальний HC12)
i=4; //выход в режим ошибки
digitalWrite (LED_RED, HIGH); //в этом режиме можно зажечь красный индикатор ошибки
digitalWrite (SET, HIGH); //перевести модуль в режим настроек что бы он перестал подавать каманды в эфир
}
};
};
while (i==3) //следующий цикл для общения контроллеров между собой
{};

}
Добавлено after 2 hours 49 minutes 45 seconds:
Объясните почему if (t==0) не работает. Если я знаю что он равен 0

Добавлено after 21 minute 15 seconds:
Всё норм. Количество кавычек неправильно поставил. Теперь работает
AndyGU70
Прорезались зубы
Сообщения: 231
Зарегистрирован: Ср апр 17, 2019 01:53:29

Re: HC-12 модуль радиосвязи uart

Сообщение AndyGU70 »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4178828#p4178828"]...Что сложного в том, чтобы прочитать пару даташитов..[/uquote]
:facepalm: спецификация bluetooth , например, около 4тыс страниц.. USB - ок. 1000..
roman.com
Друг Кота
Сообщения: 9157
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: HC-12 модуль радиосвязи uart

Сообщение roman.com »

Не нужно держать в голове даташиты)) Достаточно представлять как работают радио модули... А работают они все одинаково - пишем / читаем регистры согласно даташиту. Всё)).

А SPI всё равно учить придётся... https://arduinomaster.ru/datchiki-ardui ... i-arduino/

Без SPI невозможно подключить к ардуино всякие флешки... экранчики... радио модули... интернет модули... и т.д.
Список SPI устройств огромный)) Намного больше чем UART))
:tea:
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: HC-12 модуль радиосвязи uart

Сообщение Eddy_Em »

[uquote="AndyGU70",url="/forum/viewtopic.php?p=4179026#p4179026"]спецификация bluetooth , например, около 4тыс страниц.. USB - ок. 1000..[/uquote]
А кто тебя заставляет спеки целиком читать? Когда я рисовал HID и CDC, мне нужна была только конкретная часть.
Аналогично с мануалом на МК: зачем все пару тысяч страниц читать, если тебе нужен только USART и пара таймеров?
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
mixon46
Говорящий с текстолитом
Сообщения: 1644
Зарегистрирован: Сб фев 18, 2012 15:42:29
Откуда: Курск

Re: HC-12 модуль радиосвязи uart

Сообщение mixon46 »

Да. У меня как раз есть экран ls020 от siemens. Вроде даже есть библиотеки для общения с ним через spi. Так же помимо 3 основных sck, miso, mosi есть и ещё cs и вроде rs. Для управления им. Мой проект будет содержать этот дисплей если я его одалею

Добавлено after 4 hours 48 minutes 41 second:
Вся проблема в основной библиотеке для uart Leonardo. Он отправляет данные через одинаковые промежутки времени. Примерно один раз в секунду. При чем интересно то что я не отправляю данные в serial1 а только считываю. При этом мигает лампочка txd через равные промежутки времени. Лампочка же показывает что появляется на ноге сигнал. Почему же интересно она мигает
roman.com
Друг Кота
Сообщения: 9157
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: HC-12 модуль радиосвязи uart

Сообщение roman.com »

я подключал разные экраны...
1.jpg
(82.84 КБ) 138 скачиваний
2.jpg
(82.09 КБ) 126 скачиваний
из больших только нокия...
3.jpg
(118 КБ) 130 скачиваний
4.jpg
(93.9 КБ) 126 скачиваний
принцип везде одинаковый))

uart Leonardo...
не знаю... я не использую библиотеки... ардуино прекрасно работает без них))
Аватара пользователя
mixon46
Говорящий с текстолитом
Сообщения: 1644
Зарегистрирован: Сб фев 18, 2012 15:42:29
Откуда: Курск

Re: HC-12 модуль радиосвязи uart

Сообщение mixon46 »

Это очень здорово что ты смог подключить дисплеи к контроллеру. Это можно назвать 1 классом. Скажи а как не использовать библиотеки? Писать и обращаться напрямую к регистрам? Это так сложно кажется. Наверно не потяну

Добавлено after 4 minutes 22 seconds:
Ардуино понятное дело что хренотень. Так как не понимаешь что скрыто за методами которые используешь. Про классы и наследование вообще молчу.

Писать на С уже лучше. Например cvavr. Сам писал. Тут уже и с регистрами общаешься. И задержки ставишь уже по таймеру сам. Так сказать углублённо.
.
Самым верхом можно считать знание asembler. Когда каждую команду прописываешь. И если чуток где то ошибся то вообще ничего не работает.

Добавлено after 17 minutes 11 seconds:
По поводу ардуино на 32U4. Тут serial.begin () это инициализация порта USB для связи с ПК. А serial.begin1 () инициализация uart порта. Я искал в библиотеках hardwareserial и softwareserial какие либо упоминания о методах класса serial. И всё же ничего толкового не понял. Сравнить arduino nano на atmega328 и promicro на 32U4. Есть большая разница в работе классов serial для 328 и serial1 для 32U4. Если для 328 uart сразу отзывается и переправляет данные обратно. То для 32U4 это происходит с какой то задержкой. В итоге у меня получилось что я отправляю данные с одного радиомодуля на другой. Но в ответ мне ничего не приходит. Так как модуль на другой стороне имеет приличную задержку. Как оно работает это загадка
roman.com
Друг Кота
Сообщения: 9157
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: HC-12 модуль радиосвязи uart

Сообщение roman.com »

библиотеки использую только для приложений на ПК...
писать для операционной системы без библиотек сложновато))

ассемблер использую когда надо разогнать МК до предела...
1.jpg
(200.93 КБ) 111 скачиваний
для простых задач Си и cvavr прекрасно подходит))

давно не писал для ардуино... помню только что ардуино имеет прямой доступ к регистрам МК...
и весь код Си из cvavr прекрасно работает и в среде ардуино...

пример кода для UART есть в даташите МК на котором собрано ардуино...
Screenshot_1.jpg
(36.67 КБ) 132 скачивания
Аватара пользователя
mixon46
Говорящий с текстолитом
Сообщения: 1644
Зарегистрирован: Сб фев 18, 2012 15:42:29
Откуда: Курск

Re: HC-12 модуль радиосвязи uart

Сообщение mixon46 »

Кто может мне объяснить С. Про наследование класса. Что это такое. Вот пример. Есть класс serial. В нём есть список методов. Но в этом списке нет метода Serial.readSerial. Этот метод берётся из класса Stream.


Кто может помочь разобраться как это работает на живом примере
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: HC-12 модуль радиосвязи uart

Сообщение Eddy_Em »

В С нет классов. А в абдурине нет С++. Точней, там как бы С++, но через такую жопу деланный, что лучше бы на асме писали эти рукожопы!
mixon46, если хочешь нормально с железом разобраться, удали с аврки абдуринозагрузчик и пиши на С или асме.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
mixon46
Говорящий с текстолитом
Сообщения: 1644
Зарегистрирован: Сб фев 18, 2012 15:42:29
Откуда: Курск

Re: HC-12 модуль радиосвязи uart

Сообщение mixon46 »

Принято. Будем тогда копать C. Как они там реально это всё понамудрили. В этих классах никокого ладу дать не могу

Добавлено after 9 minutes 26 seconds:
Может там и нет ничего сложного. Но знания c++ у меня полностью отсутствуют. Мне то нужно было понять почему данные с uart не отправляются моментально в этой promicro на 32U4. К стати сказать у данного микроконтроллера имеется 10 или 12 (точно не помню) битный таймер с тремя ШИМ каналами. Что говорит о том что на данном МК реально сделать частотный преобразователь.
roman.com
Друг Кота
Сообщения: 9157
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: HC-12 модуль радиосвязи uart

Сообщение roman.com »

если удалить ардуинозагрузчик то придётся прошивать МК программатором...
если есть программатор то проблем нет)) пишем на С или Асме... компилируем в арвстудии или в cvavr... на выходе получаем HEX файл и его зашиваем в МК. Всё))

Добавлено after 4 minutes 10 seconds:
На С нет классов. В С есть список простых команд. А вместо класса есть функции которые мы вызываем в коде... когда надо. ))
Ответить

Вернуться в «Arduino»