Skocz do zawartości

Komunikacja szeregowa - 3 arduino


Pomocna odpowiedź

Napisano

Witajcie,

Mam taki problem.

Spinam Arduino Mega z dwoma innymi(Uno i Nano). Mega robi za mastera, a uno i nano jako slave.

Master wysyła informację, uno lub nano ją wykonują, a następnie przesyłają informację zwrotną. Układ pierwsze był bez diody, ale problem w tym, że w takim układzie bez diód informacji zwrotnej nie dostaję. Ale jak tylko odepnę jeden ze slave(ów) to już informacja zwrotna wraca.

 

Układ spiąłem tak: mega-uno-nano.jpg

Układ zasilany jest na ten moment z usb kompa do Mega, a dwa pozostałe zasilam już z mega.

Dioda którą użyłem do blokowania wyjść Tx przed „niewłaściwą kierunkowo” transmisją to jakaś 1N4xxx. Ale problem w tym, że coś jest nie tak. Bo po podpięciu diod jak w układzie nie dostaję informacji zwrotnej - tak jakby go dioda nie przepuszczała. Czy czasem nie użyłem za dużej diody? Może macie propozycję jakiej diody konkretnie użyć - jej symbol lub parametry?

 

Pozdrawiam

Leszek

 

(edytowany)

Czemu nie możesz użyć I2C? Czemu nie skorzystasz z wielości interfejsów uartu płytki mega? Czy jest to konieczne wykorzystać tylko jeden czy możesz sobie uprościć znacząco zadanie?

Edytowano przez BananWszyscy
21 minut temu, BananWszyscy napisał:

Czemu nie możesz użyć I2C? Czemu nie skorzystasz z wielości interfejsów uartu płytki mega? Czy jest to konieczne wykorzystać tylko jeden czy możesz sobie uprościć znacząco zadanie?

Użyłem uarta bo potrzebuję komunikacji na odległość tak do 8~10 metrów, dlatego I2C odpuściłem. Nie wykorzystuję dodatkowych uartów, bo mega ma być sercem do którego będą podłączone przyciski do sterowania, oraz diody LED do sygnalizacji, ale oprócz tego teraz jest dwa slave, a docelowo może być ich 5 lub 6.

No dobra, myślę, że wiesz, jak działa dioda, jaka jest jej charakterystyka i jak działa cały ten interfejs uart...
Jedną z metod jest wymuszenie na pinach tx slave'ów przejście w stan wysokiej impedancji "wybudzanie" ich tylko wtedy, gdy mają coś nadać (musisz zatroszczyć się, żeby jeden tylko był aktywny)

Możesz użyć układu typu max485.

http://www.gammon.com.au/forum/?id=11428 taki link na przykład

https://forum.arduino.cc/t/connection-multiple-arduinos-via-rs485/103488/16

 

Ekhm... co ma wspólnego bycie sercem z wykorzystaniem kilku sprzętowych uartów? Mają sobie spać?

BTW diody mają wiele zastosowań, ale  demultiplexing urządzeń podłączonych do jednego uarta do nich nie należy.

5 godzin temu, ethanak napisał:

Ekhm... co ma wspólnego bycie sercem z wykorzystaniem kilku sprzętowych uartów? Mają sobie spać?

BTW diody mają wiele zastosowań, ale  demultiplexing urządzeń podłączonych do jednego uarta do nich nie należy.

Wyobrażałem sobie, że zrobię to jako magistralę i kolejne nano będą dopinane bez problemu, w sensie pamiętania na którym sprzętowym uarcie dany nano jest.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...