Jaka jest maksymalna długość przewodu do komunikacji szeregowej między dwoma Arduinos?

9

Buduję projekt, w którym dwa Arduinos zostaną połączone trzema przewodami: TX i RX do komunikacji szeregowej i wspólny GND. Jaka byłaby tutaj maksymalna długość przewodów przed zakłóceniem komunikacji?

Używam Arduino Mega R3 z jednej strony i Arduino Mini z drugiej.

Nie mam szczególnych wymagań co do szybkości transmisji, mógłbym użyć najniższej, jeśli to w jakikolwiek sposób pomoże.

hobie
źródło

Odpowiedzi:

4

Musisz określić

  • Kolejność zakresu, który Cię interesuje - czy jest to kolejność metrów, dziesiątki metrów, kilometrów czy międzystanowa? :-). WSZYSTKIE są możliwe z odpowiednim kompromisem.

  • Jak zamierzasz podłączyć się do obwodu - bezpośrednie styki Arduino, bufor wysoki / niski, sterowniki różnicowe, ...

Jeśli użyjesz „jednobiegunowego” 5 V / 0 V, to powiedzmy 9600 bodów, możesz uzyskać wiele metrów z odpowiednimi sterownikami. Jeśli użyjesz bolca Arduino bezpośrednio, oporność drutu i indukcyjność zaczną mieć znaczenie wraz ze wzrostem zasięgu.

Przy 300 bodach można osiągnąć setki metrów za pomocą skrętki komputerowej. Wraz ze wzrostem zasięgu, takie jak przesłuch z drugiego obwodu i wzrost znaczenia szumu zewnętrznego. Przy dłuższych zasięgach posiadanie 4 przewodów z sygnałem + uziemienie skręconych razem w każdym przypadku pomaga, ALE jest prawdopodobne, że przy interesujących zakresach 2 przewody plus uziemienie będą działać OK.

Jeśli jesteś przygotowany na użycie wystarczającego napięcia i wystarczająco powolnej sygnalizacji, możesz przesyłać sygnały na tysiące mil - tak jak w przypadku bardzo wczesnych kabli telegraficznych. Potrzebne tysiące woltów i prędkości sygnalizacyjne rzędu kilku bitów na sekundę będą w większości przypadków zniechęcały.

Russell McMahon
źródło
Odległość, którą chciałbym pokonać, wynosi około 40-50 metrów od naszego domu do bramy na zewnątrz. Moim zamiarem było połączenie odpowiednich pinów Arduino bezpośrednio kablem, który znalazłem w poprzedniej instalacji interkomu.
hobie
2
Niebezpieczeństwo dla Arduino z długimi kablami. Indukcja, wyciek, ładunek elektrostatyczny. (Błyskawica i wzrost uziemienia z powodu awarii zasilania może tylko, ale ...). Odwrotne diody zaciskowe do szyn zasilających na wszystkich liniach to dobry pomysł. Podstawowy układ scalony sterownika BARDZO dobry pomysł. Przydałby się nawet układ scalony falownika Schmitt xx74xx14 na każdym końcu. (gdzie xx różni się w zależności od rodziny). Właściwe sterowniki liniowe są jeszcze lepsze, ale to dopiero początek. JEŻELI twoje Arduino jest cenne, użyj bufora.
Russell McMahon
Dziękujemy wszystkim za komentarze i sugestie. Aby dowiedzieć się, czy mogę pokonać daną odległość (ok. 40 m) za pomocą prostego połączenia, spróbowałem z dwoma Arduino Uno, odpowiednio skonfigurowanymi jako nadawca i odbiorca. Płytki są bezpośrednio połączone liniami TX / RX (piny 0 i 1) z prędkością 9600 bitów na sekundę. Nadawca wysyła ciąg testowy co sekundę, gdy odbiornik nasłuchuje nadchodzących danych. Korzystam z istniejącej linii (brak informacji o jakości / specyfikacjach tego kabla. W każdym razie wydaje się, że para nadawca / odbiornik działa bez problemu przy tej odległości i konfiguracji.
hobie
Dzięki, czy masz jakieś sugestie / linki do układów scalonych lub sterowników?
hobie
@hobie Przy 50 metrach i 9600 bodach możesz prawdopodobnie osiągnąć dobre wyniki (spróbuj i zobacz) z prawie każdym układem cyfrowym sterownika 5V, a nawet tylko cyfrowymi wyjściowymi układami scalonymi. Przydatnym punktem wyjściowym są falowniki Schmitt z wyzwalaczem CMOS, zazwyczaj 74xxx14, CDxxx14, MM ..... 14. Poszukaj falowników wyzwalanych przez Schmitta, unikaj tych o najniższej mocy napędu.
Russell McMahon