Skocz do zawartości

Podłączenie dwóch modułów gsm i ethernet wykorzystujacych tx i rx pod jedno arduino


Pomocna odpowiedź

Napisano

czy jest możliwe podłączenie dwóch modułów wykorzystujących rx tx do jednego arduino uno ?

mam podłączony w obecnej chwili moduł gsm po tx rx , chciałbym dodać kolejny moduł ethernet który też komunikuje się przez tx rx ale arduino uno ma tylko jedno wejście rx tx .

Możesz wykorzystać bibliotekę SoftwareSerial.

Wchodzisz w przykłady, zakładka przykłady dla arduino uno i tam masz software serial. Na podstawie tego przykładu można to spokojnie ogarnąć.

Mam nadzieję, że pomogłem 🙂

uzywam tej biblioteki dla modułu gsm tylko czy moduł gsm nie pogryzie się z modułem ethernet .tzn czy dane tx rx będą rozpoznawane przez arduino .

właściwie jesli arduino wyśle komendę poprzez tx rx dla modułu gsm to moduł ethernet jej po prostu niewykona pomimo że też będzie podłączony do tx rx .czy dobrze myślę ?

Dlaczego miałby jej nie wykonać? Przecież jeśli wysyłasz po tych samym drucie to samo do obu, to oba urządzenia odbierają to samo. I dlatego potrzebujesz drugiego, osobnego UARTa z osobnymi Rx i Tx. I dlatego musisz użyć jakiejś biblioteki, tworzącej taki drugi, robiony całkowicie programowo UART. Tworzysz wtedy drugi "kanał" komunikacyjny przez który rozmawiasz z drugim urządzeniem. Wtedy jedno o drugim nic nie wie i to działa. Procesor za to musi wysyłać raz przez normalny Serial (i podstawową parę Tx/Rx):

Serial.print("A kuku");

a raz przez to nowe coś (i nową parę Tx/Rx - to Ty wskazujesz które piny to mają być), dla przykładu nazwane Serial2:

Serial2.print("Hej_ho!");

Pamiętaj, że taki programowy UART zżera czas procesora, bo trzeba programem udawać kawałek sprzętu. Dlatego przez ten nowy kanał podłącz coś wolnego, najlepiej nieprzekraczającego prędkości 9600.

  • Pomogłeś! 1

Tak się teraz zastanawiam, czy rzeczywiście potrzebujesz drugiego UARTa do komunikacji z modułem Ethernet? Te najbardziej popularne (na scalaku 28J60) działają przez o wiele szybsze SPI więc nie byłoby problemu z równoległa pracą modemu GSM. Na łączu asynchronicznym Tx/Rx znam tylko te z serii WIZZ, ale to stosunkowo drogie rzeczy. Czego używasz do LANu?

A do robienia programowego UARTa używałem kiedyś biblioteki AltSoftSerial. O ile pamiętam używa timera 1 (ze wszystkimi tego konsekwencjami typu zniknięcie 2 sprzętowych wyjść PWM) i ma ustalone dwa piny Tx/Rx, ale za to praktycznie wcale nie zjada czasu procesora i pracuje w pełnym duplexie (jednoczesne nadawanie i odbiór) do znacznie większych prędkości.

https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html

https://github.com/PaulStoffregen/AltSoftSerial

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