Skocz do zawartości

Komunikacja szeregowa - 3 arduino


creativebee

Pomocna odpowiedź

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

 

Link do komentarza
Share on other sites

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
Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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

 

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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.

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.