Связь между 2 платами

Передача переменной межу двумя Ардуино

Вопросы от новичков
Ответить
STX-121
Рядовой
Сообщения: 20
Зарегистрирован: 03.03.2017{, 15:50}
Репутация: 0

Связь между 2 платами

#1

Сообщение STX-121 » 21.01.2019{, 11:04}

Всем привет!
Подскажите, возможно ли?

Есть Ардуино Нано с которой нужно передавать данные (переменную или csv-строчку) на другую Ардуино Нано
Проблема в том что на передающем контроллере оба UART уже заняты, I2C тоже (дисплей 1602)

Есть ли какой-то способ отравлять/получать переменную между этими двумя контроллерами?

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Связь между 2 платами

#2

Сообщение Sancho » 21.01.2019{, 11:07}

STX-121 писал(а):
21.01.2019{, 11:04}
I2C тоже (дисплей 1602)
На обоих?
Soft Serial.
SPI.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

STX-121
Рядовой
Сообщения: 20
Зарегистрирован: 03.03.2017{, 15:50}
Репутация: 0

Связь между 2 платами

#3

Сообщение STX-121 » 21.01.2019{, 11:17}

Нет, на основной заняты Softserial, Serial (0,1) и дисплей I2C

на дополнительной все свободно

SPI не задействованы, по SPI как-то можно организовать обмен?

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Связь между 2 платами

#4

Сообщение Sancho » 21.01.2019{, 11:30}

STX-121 писал(а):
21.01.2019{, 11:17}
на дополнительной все свободно
Добавь в неё I2C слэйв, подключи параллельно дисплею.
По spi - конечно, но пинов нужно 4, для двухстороннего обмена, 3 - в одну сторону.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

STX-121
Рядовой
Сообщения: 20
Зарегистрирован: 03.03.2017{, 15:50}
Репутация: 0

Связь между 2 платами

#5

Сообщение STX-121 » 21.01.2019{, 11:46}

Примерно понял, спасибо.
Sancho писал(а):
21.01.2019{, 11:30}
I2C слэйв
имеется в виду из темы "I2C - просто"?
viewtopic.php?f=112&t=2530

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Связь между 2 платами

#6

Сообщение Sancho » 21.01.2019{, 11:51}

STX-121, Да, из неё.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

Связь между 2 платами

#7

Сообщение seri0shka » 21.01.2019{, 13:38}

STX-121 писал(а):
21.01.2019{, 11:17}
на основной заняты Softserial, Serial (0,1) и дисплей I2C
Softserial работает корректно? Кому шлёт или от кого принимает, на какой скорости? Блок стандартный или пользовательский (если да, то какой)? Мой опыт с Softserial не очень удовлетворительный.

STX-121
Рядовой
Сообщения: 20
Зарегистрирован: 03.03.2017{, 15:50}
Репутация: 0

Связь между 2 платами

#8

Сообщение STX-121 » 21.01.2019{, 15:26}

Блок стандартный, SoftSerial работает без проблем, скорость 9600 подключен напрямую к Bluetooth HC-06
Отправляет каждые 2 секунды CSV-строку из 15 значений

Была проблема: при одновременной отправке и получении данных переставала работать передача
Решил просто: выход "новые данные" подключен к "очистке буфера по команде на входе", плюс таймер задержки на 5 сек.
Больше накладок нет, все работает стабильно

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Связь между 2 платами

#9

Сообщение ingener » 22.01.2019{, 13:29}

а можно соединить главную плату (UNO) со второй (нано или микро), с помощью RX/TX пинов, и таким образом передавать переменную для управления частотой генератора на второй плате? Там кроме генератора ничего не будет, чтобы обеспечить ему полный диапазон.

Отправлено спустя 27 минут 27 секунд:
Если так можно, то как это рисовать в FLprog? Отдельно для каждой платы? Как же тогда переменную передать потом между ними? :smile37:

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Связь между 2 платами

#10

Сообщение Sancho » 22.01.2019{, 14:46}

ingener, На главной UNO- "Отправка переменной в Uart" - к нему цепляешь переменную, отправлять каждые .... сек.
"Инструменты"->"Выгрузить описание..." сохраняешь как нить, куда нибудь.
На второй, Nano, добавляешь "Приём переменной из Uart" - загрузить из файла...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Связь между 2 платами

#11

Сообщение ingener » 22.01.2019{, 16:04}

Sancho, :smile9:

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

Связь между 2 платами

#12

Сообщение seri0shka » 22.01.2019{, 20:18}

Sancho писал(а):
22.01.2019{, 14:46}
"Отправка переменной в Uart" - к нему цепляешь переменную...
Уже больше года пользуюсь блоком "Отправка в Uart", чем отличается "Отправка переменной в Uart", я его так и не понял тогда?

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Связь между 2 платами

#13

Сообщение Sancho » 22.01.2019{, 20:30}

seri0shka, Отправляете переменные - на другой стороне принимаете. Ничего парсить не надо - всё за Вас :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

Связь между 2 платами

#14

Сообщение seri0shka » 22.01.2019{, 23:37}

Я правильно понимаю: это имеет смысл, если переменных несколько?

eto_oleg
Рядовой
Сообщения: 21
Зарегистрирован: 24.08.2017{, 14:47}
Репутация: 0

Связь между 2 платами

#15

Сообщение eto_oleg » 23.01.2019{, 03:25}

Ребят, прошу совет. У меня похожая задача, обмен по UART между Uno и Node MCU. С ардуинки передаю температуры и состояния насосов на Node MCU а уже от туда по вайфаю на Каскаду, таким образом осуществляю мониторинг. Связь работает отлично. Но что бы я не делал не могу добиться обратной связи по этому же UART, для того чтобы менять уставки температуры на ардуинке. Что я только не делал.. :smile390: подскажите, кто-то настраивал двухстороннюю связь между платами по одному UART с помощью встроенных блоков "отправка переменой в UART"? Может там какой-то конфликт возникает?

Аватара пользователя
jonik22sm
Капитан
Сообщения: 703
Зарегистрирован: 20.11.2015{, 11:28}
Репутация: 6
Откуда: Краснодар
Имя: Евгений
Контактная информация:

Связь между 2 платами

#16

Сообщение jonik22sm » 23.01.2019{, 07:27}

Проект в студию
Можно сделать ВСЁ. Было бы желание.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Связь между 2 платами

#17

Сообщение Sancho » 23.01.2019{, 08:25}

eto_oleg, Обсуждали недавно здесь
seri0shka писал(а):
22.01.2019{, 23:37}
Я правильно понимаю: это имеет смысл, если переменных несколько?
Возможно, да, но и при одной - достоверность принятых данных выше.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Связь между 2 платами

#18

Сообщение Ingwar » 24.01.2019{, 14:10}

Посыл для Sancho.
СпойлерПоказать
Протокол XMODEM.
Полудуплексный принцип работы позволяет использовать простейшие физические каналы связи. Например, передатчик и приемник может соединять единственный сигнальный провод (либо это может быть радиоканал на общей частоте для передатчика и приемника), который переключается с приема на передачу, потому что протокол XMODEM не подразумевает одновременной передачи на обоих концах канала связи.
Если Александр или другие спецы захотят, то сделают ПБ.
Пример приема (как я понял)
СпойлерПоказать
Описание примера
http://www.gaw.ru/pdf/Atmel/app/avr/AVR350.pdf

З. Ы. Александр, ни в коем случае не намекаю/настаиваю.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

solo
Рядовой
Сообщения: 54
Зарегистрирован: 06.12.2016{, 18:04}
Репутация: 0
Откуда: Харьков

Связь между 2 платами

#19

Сообщение solo » 02.03.2019{, 12:02}

подскажите пж есть проект на двух нанах соединеных между собой в кольцо , проект работает но нана которая "pecka" после отключения питания сама не запускается , на ней собран импровизированный ШИМ регулятор для тэнов . Если после включения ардуинок , на ардуинка "peckaDicpley" изменить значение в меню то тогда на ардуинке "pecka" соотвецтвующий ШИМ начинает работать . Посоветуйте как можно сделать чтобы тены включались сами после подачи питания на ардуинки

Отправлено спустя 32 минуты 56 секунд:
все разобрался , сделал задержку передачи данный с peckaDicpley в кольцо , на вывод EN подал 1 с задержко в 1сек и все заработало
Вложения
peckaV01.flp
(286.69 КБ) 48 скачиваний
peckaDicpley.flp
(185.07 КБ) 52 скачивания

Ответить

Вернуться в «Начинающим»