Serwisy partnerskie:
Close icon
Serwisy partnerskie

Wirtualny port szeregowy w Arduino

Arduino ma tylko jeden port szeregowy umieszczony na pinach 0 i 1. Jest to ograniczenie w przypadku jeśli masz dwa lub więcej modułów szeregowych. W dzisiejszym tutorialu opiszę w jaki sposób można utworzyć wirtualny port szeregowy.
Article Image

Witajcie przyjaciele, mam nadzieję, że wszyscy macie się dobrze. W dzisiejszym tutorialu pokażę wam jak używać komunikacji szeregowej w Arduino. Wszyscy wiemy, że Arduino ma tylko jeden port szeregowy umieszczony na pinach 0 i 1. Jest to ograniczenie w przypadku jeśli masz dwa lub więcej modułów szeregowych. W takich przypadkach trzeba utworzyć dodatkowy port szeregowy i można to zrobić na dowolnych dwóch pinach Arduino. Jest to tzw. programowy lub wirtualny port szeregowy. 

Jest to naprawdę bardzo wygodne, jeśli pracujesz na modułach szeregowych. W zasadzie nigdy nie używałem sprzętowego portu szeregowego, ponieważ pin # 0 i pin # 1 są również używane do przesyłania kodu i debugowania kodu. Zawsze podłączam moje moduły szeregowe za pomocą programowego portu szeregowego, a następnie sprawdzam ich wyjście na Monitorze Szeregowym

Jak używać wirtualnego portu szeregowego?

Zamierzam użyć oprogramowania Proteus do testowania kodów.

Możesz pobrać Arduino Proteus klikając w link na końcu artykułu.

Skopiuj i wklej poniższy kod do swojego oprogramowania Arduino:

#include <SoftwareSerial.h>

SoftwareSerial SoftSerial(2, 3);

void setup()
{
  Serial.begin(9600);
  SoftSerial.begin(9600);
  
  SoftSerial.println("       **** Its a Software Serial **** ");
  SoftSerial.println(" Designed by www.TheEngineeringProjects.com");
  SoftSerial.println();
  
  Serial.println("       **** Its a Hardware Serial **** ");
  Serial.println(" Designed by www.TheEngineeringProjects.com");
  Serial.println();
}

void loop()
{
      
      if (Serial.available())
      {
           char data = Serial.read();
           SoftSerial.print(data);
      }
}

W powyższym kodzie, najpierw dołączyliśmy bibliotekę programowego portu szeregowego używając #include<SoftwareSerial.h>.

Następnie utworzyłem obiekt SoftSerial, którego parametry to SoftSerial(RX, TX). Oznacza to, że pin nr 2 stał się RX naszego Arduino, a pin nr 3 stał się TX.

W ten sposób obiekt SoftSerial jest gotowy i można zainicjalizować nasz programowy port szeregowy za pomocą SoftSerial.begin(9600). W ten sposób ustawiamy prędkość transmisji na 9600.

Symulacja w Proteus

Zbuduj prosty układ w Proteusie, jak pokazano na poniższym rysunku:

Pobierz plik hex i załaduj go do oprogramowania Proteus.

Uruchom symulację Proteus i otrzymasz rezultaty podobne, jak pokazano na poniższym rysunku:

Jak widać – jeden to sprzętowy port szeregowy a drugi programowy port szeregowy utworzony na pinach #2 i #3. Gdy prześlesz coś na sprzętowy port szeregowy to zostanie wydrukowane również na programowej wersji portu szeregowego. Tak jak to zapisaliśmy w funkcji loop().

To wszystko na dzisiaj. Mam nadzieję, że podobał ci się ten przykład. Pobierz symulację z powyższego przycisku i sprawdź jak działa. Dobrej zabawy!

Do pobrania
Download icon Pobierz symulacje i kod

Artykuł How to use Arduino Software Serial? opracowano w wersji polskiej na podstawie współpracy z portalem www.theengineeringprojects.com.

Tematyka materiału: Symulator Arduino, Symulacja w Proteus
AUTOR
Źródło
www.theengineeringprojects.com
Udostępnij
UK Logo