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!