Соединение двух Ардуино через UART

gzp13
Offline
Зарегистрирован: 06.04.2015

Здравствуйте, пытаюсь подключить между собой две ардуины UNO двумя проводками RX-TX, TX-RX, землю соединил, питание подал, так вот, при заливки скетчей IDE скетч не грузит, пишет что произошла ошибка загрузки скетча.Но вот если я отключаю эти два провода RX И TX ,  то загрузка происходит как положено до конца. И ещу, подключив библиотеку SoftwareSerial и назначив пины rx и tx любыми другими кроме 0 и 1 , то скетчи грузятся как положено. Но мне нужны эти другие пины, так как если я подключу какой то датчик на пины 0 и 1 то не смогу наблюдать информацию по команде SERIALPRINT в COM-порту.

nik182
Offline
Зарегистрирован: 04.05.2015

Резисторы 1к между Rx Tx разных ардуин помогут решить проблему. 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Резисторы, конечно, позволят загружать скетчи, но мне кажется, проблема не в этом, а в том, что ТС не понимает, что же ему на самом деле нужно.

gzp13, если Вам нужно получать информацию по Serial на компьютер, вообще забудьте про пины 0 и 1, считайте что их нет. Обходитесь какитми-то другими пинами. Тем более бессмысленно пытаться вешать программный порт на пины от аппаратного.

gzp13
Offline
Зарегистрирован: 06.04.2015

Задача такая, так как мне не хватает портов на одной ардуине, то хочу подключить вторую и часть датчиков( а именно модуль 24l01 ), и при получении информации от этого молуля передавать ее в главную ардуину для вывола на экран. Но чтобы отладить программу мне же нужно выводить информацию на экран компьютера, т.е грузить скетчи, врт я и хочу чтобы две ардуины были соеедены медду собой по проводам RX-TX, TX- RX, и обе ардуины были через USB подключены к компьютеру.

nik182
Offline
Зарегистрирован: 04.05.2015

Выводить информацию не значит грузить  скетчи. Это два разнесённых во времени процесса. Во время загрузки счетчей не работает ардуина. Она грузится программой.

Если нужно передавать информацию по одной линии, то самое дешёвое решение RS485. Платки и адаптер для компа стоят сущие копейки и по витой паре можно очень далеко передать. 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

gzp13 пишет:

врт я и хочу чтобы две ардуины были соеедены медду собой по проводам RX-TX, TX- RX, и обе ардуины были через USB подключены к компьютеру.

Это можно, но, надеюсь, Вы понимаете, что компьютер и вторая Ардуина должны быть подключены к разным портам? На UNO только один аппартный COM (пины 0 и 1) и он подключается к компьютеру, следовательно, Вам нужно осуществлять обмен между Ардуинами при помощи SoftwareSerial через свободные пины, а не те, что уже используются для связи с компьютером.

А если не хватает пинов, то, как правило, либо берут Мегу 2560 (Кстати, и аппаратных портов там гораздо больше.), либо используют те или иные расширители портов, например, на сдвиговом регистре. 

BOB51
Offline
Зарегистрирован: 26.04.2017

Сколько времени дается после аппаратного сброса на определение "загрузка или работа" по коммуникационным линиям (выводы 0 и 1 ардуино нано) при автономном включении с загруженным прикладным скетчем?

Т.е. как я понимаю при запуске платки первоначально на какое-то время активируется бутлоадер, затем, если нет запроса на перепрошивку от IDE, управление передается прикладному скетчу.

Посему, ежли имеет место автономная работа с использованием аппаратного UART с внешними устройствами необходима аппаратная блокировка входных линий на определенное время после подачи питания чтобы не вызвать фальстарт бутлоадера.

Вот и вопрос - а сколько конкретно?

В описаниях на саму ардуинку данной информации нету...

В том числе и по правилам защиты от случайного некорректного запуска бутлоадера...

:-(

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

BOB51 пишет:

В том числе и по правилам защиты от случайного некорректного запуска бутлоадера...

:-(

хаватит тормозить - сотри лоадер и записывай программатором.

BOB51
Offline
Зарегистрирован: 26.04.2017

Тогда это уже не ардуина, а обыкновенна самоделка на основе меги, "близкая к одноразовой".

Мне проще "с нуля" и схемку и прожку под ассемблером нашкрябать  "по старинке" будет!

;-)

Интересует именно решение "в рамках" ардуинки как вида элементной базы. Тем более, что от "случайного стечения обстоятельств" на инициирующих запуск бутлоадера выводах абсолютной гарантии не имеется.

 

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

BOB51 пишет:

Интересует именно решение "в рамках" ардуинки как вида элементной базы. Тем более, что от "случайного стечения обстоятельств" на инициирующих запуск бутлоадера выводах абсолютной гарантии не имеется.

сотри лоадер и не еби мосг, тормоз.

BOB51
Offline
Зарегистрирован: 26.04.2017

Клапауций 112 пишет:

BOB51 пишет:

Интересует именно решение "в рамках" ардуинки как вида элементной базы. Тем более, что от "случайного стечения обстоятельств" на инициирующих запуск бутлоадера выводах абсолютной гарантии не имеется.

сотри лоадер и не еби мосг, тормоз.

Простое удаление бутлоадера не прокатит - как минимум там обязан быть фрагмент обеспечения обслуживания вектора аппаратного сброса с передачей управления программе пользователя (скетчу) при отсутствии запроса на перезагрузку программного кода.

А копаться в бутлоадере как-то ВЛОМ...

 Думал может у кого уже инфа есть, а пока попал на злобного СУСАНИНА.

;-)

Пы.Сы.

Насчет "тормоза"...
заходи в гости, "потормозим"!
;-)
Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

BOB51 пишет:
Сколько времени дается после аппаратного сброса на определение "загрузка или работа"

Ну в коде загрузчика же.

optiboot полсекунды.

стандартный 2 секунды.

Я компилирую скетч и зашиваю over arduinoISP, fuses стоят так же как и штатно (просто не трогаю). Работает. Может неправильно, да мне и похер. Делаю так 4 года, проблем не было.

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

BOB51 пишет:

Простое удаление бутлоадера не прокатит - как минимум там обязан быть фрагмент обеспечения обслуживания вектора аппаратного сброса с передачей управления программе пользователя (скетчу) при отсутствии запроса на перезагрузку программного кода.

прекращай бредить - при отсутвии в загрузчике чего-то там аппаратного сброса, работает аппаратная инициализация контроллера и запуск программы ползателя происходит в штатном режиме.

BOB51
Offline
Зарегистрирован: 26.04.2017

Voodoo Doll пишет:

BOB51 пишет:
Сколько времени дается после аппаратного сброса на определение "загрузка или работа"

Ну в коде загрузчика же.

optiboot полсекунды.

стандартный 2 секунды.

...

Спасибки за уточнение!

mag155
Offline
Зарегистрирован: 21.12.2017

Всем привет как управлять шим сигналом по uart ? 

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Передатчик:

Serial.write(x);

Приёмник:

if(Serial.available()){
  x=Serial.read();
  analogWrite(n,x);
}

где x - число типа byte, n - PWM-совместимый вывод.

 
mag155
Offline
Зарегистрирован: 21.12.2017

Управляю шим по по радиоканалу с помощью UART .Но нужно парально управлять еще и кнопками релле одно другому мешает. Подскажите как быть ?

mag155
Offline
Зарегистрирован: 21.12.2017
if (radio.available() > 0 ) {
  byte val = radio.read();
    analogWrite(5, val);

}
  val = radio.read();
  if( val== 100 ) {
  Serial.println(val);
  digitalWrite(13,1);
  }
  
  }

Приемник

mag155
Offline
Зарегистрирован: 21.12.2017
 buttonState = digitalRead(buttonPin); 
    if (buttonState == 1) {
    char radio.print(val);
     val= 100;  
     Serial.println(val);
         }
     val = analogRead(potent_pin);    
  val = map(val, 0, 1023, 0, 250);   
  val = constrain(val, 0, 250);      
        // вывести в порт
  analogWrite(3,val);
radio.write(val);

Передатчик 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

mag155 пишет:

Управляю шим по по радиоканалу с помощью UART .Но нужно парально управлять еще и кнопками релле одно другому мешает. Подскажите как быть ?

А по какому признаку приемник может понять, каким из устройств ему следует управлять?