Platforma Arduino umożliwia ludziom tworzenie różnych projektów. Arduino to platforma przyjazna dla użytkownika z obsługą szerokiej gamy bibliotek, w tym Biblioteka oprogramowania. Biblioteka oprogramowania umożliwia utworzenie portu szeregowego na dowolnym cyfrowym stylu na tablicy Arduino.
W tym artykule zanurzymy się głębiej w bibliotekę oprogramowania i zbadamy, jak to działa.
Wprowadzenie do biblioteki oprogramowania
Biblioteka oprogramowania to standardowa biblioteka Arduino, która umożliwia komunikację szeregową na cyfrowych pinach innych niż TX i RX. Biblioteka umożliwia tworzenie portu szeregowego oprogramowania, którego można użyć do komunikacji z innymi urządzeniami, takimi jak inne mikrokontrolery, komputery, a nawet moduły Bluetooth. Biblioteka oprogramowania jest dołączona do Arduino IDE i może być używana z dowolną płytą Arduino.
Notatka: Ogólnie, TX I Rx Piny są używane do komunikacji szeregowej, ale korzystając z tej biblioteki, możemy włączyć płytę Arduino używać dowolnego z cyfrowych pinów do wymiany pinów TX i RX.
Zrozumienie funkcji biblioteki oprogramowania
Biblioteka oprogramowania ma kilka funkcji, które umożliwiają skonfigurowanie i kontrolowanie oprogramowania portu szeregowego. Oto niektóre z głównych funkcji, które powinieneś wiedzieć:
Softwareserial ()
Ta funkcja tworzy nową instancję Softwareserial klasa. Ta funkcja ma dwa argumenty, pin RX i pin TX. Na przykład, jeśli chcesz utworzyć port szeregowy oprogramowania na pinach 2 i 3, użyjesz następującego kodu:
MySerial z oprogramowania (2, 3); // rx, tx
Softwareserial () Metoda służy do utworzenia nowej instancji Softwareserial obiekt. Pozwala na tworzenie wielu instancji, jednak tylko jeden może być aktywny.
Składnia
Składnia dla Softwareserial () Metoda jest następująca:
Softwareserial (RXPIN, TXPIN, Inverse_Logic)
Parametry
Parametry dla Softwareserial () Czy
rxpin: Ten parametr określa PIN, który zostanie użyty do odbierania danych szeregowych.
txpin: Ten parametr określa pin, który zostanie użyty do przesyłania danych szeregowych.
inverse_logic: Ten parametr jest opcjonalny i odwraca nadchodzące bity. Wartość domyślna jest fałszywa, co oznacza, że niski pin Rx jest interpretowany jako 0-bit i wysoki jako 1-bitowy. Jeśli zostanie ustawiony na true, niski pin Rx będzie teraz trwał jako 1-bitowy i wysoki jak 0-bit.
Powrót
Softwareserial () niczego nie zwraca.
Funkcje biblioteki Arduino softwareSerial ()
Arduino Softwareserial () ma listę funkcji komunikacji szeregowej między urządzeniami. Niektóre z głównych funkcji są tutaj omawiane:
zaczynać()
zaczynać() Funkcja inicjuje port szeregowy oprogramowania z szybkością transmisji. Szybkość transmisji jest prędkość transmisji danych w porcie szeregowym. Na przykład, aby ustawić 9600 jako szybkość transmisji seryjnej, użyjesz następującego kodu:
Myserial.rozpocząć (9600);
dostępny()
Dostępne () fDziałanie zwraca bajty dostępne do odczytania w porcie szeregowym oprogramowania. Na przykład, aby sprawdzić, czy są dostępne dane do odczytania, użyjesz następującego kodu:
if (myserial.Dostępne ()> 0)
// Odczytaj dane wejściowe
Char IncomingByte = myserial.Czytać();
Czytać()
Czytać() Funkcja odczytuje następny bajt danych z portu szeregowego oprogramowania. Na przykład, aby odczytać bajt danych i wydrukować je do monitora szeregowego, użyj następującego kodu:
Char IncomingByte = myserial.Czytać();
Seryjny.println (IncomingByte);
pisać()
pisać() Funkcja zapisuje bajt danych do portu szeregowego oprogramowania. Na przykład, aby wysłać list "A" Nad portem szeregowym oprogramowania użyjesz następującego kodu:
Myserial.Napisać');
Przykładowy kod biblioteki Arduino softwareSerial ()
Teraz będziemy komunikować się między dwoma tablicami Arduino w zakresie komunikacji szeregowej za pomocą tej biblioteki. Weź dwie tablice Arduino i podłącz je, jak pokazano na poniższym obrazku.
Łączyć D2 mistrza tablicy Arduino z D3 na płycie niewolniczej Arduino, podobnie połącz D3 mistrza arduino z D2 niewolnika Arduino.
Notatka: Do komunikacji seryjnej, TX Pin jest zawsze podłączony do Rx Pin of przeciw przeciwnej Arduino i Rx Pin of the Master jest zawsze podłączony do TX Pin drugiego Arduino.
Poniżej znajduje się sprzęt obu płyt Arduino.
Oto przykład kodu Arduino, który pokazuje, jak korzystać z Biblioteka oprogramowania Aby nawiązać komunikację między dwiema tablicami Arduino:
Kod tablicy nadawcy
Poniższy kod dotyczy nadawcy Arduino, który zapisze ciąg na płycie Arduino odbiornika.
#włączać
// Skonfiguruj obiekt szeregowy oprogramowania
MySerial z oprogramowania (2, 3);
void setup ()
// Rozpocznij komunikację szeregową
Seryjny.rozpocząć (9600);
chwila (!Seryjny)
; // Poczekaj, aż porto szeregowe się połączy
// Rozpocznij komunikację szeregową oprogramowania
Myserial.rozpocząć (9600);
void Loop ()
// Wyślij wiadomość przez połączenie szeregowe oprogramowania
Myserial.println („Cześć, płyta odbiorcza!");
opóźnienie (1000);
Kod tablicy odbiorczej
Poniższy kod dotyczy płyty odbiorczej. Korzystanie z tego kodu Arduino odbędzie ciąg z innej płyty w ramach komunikacji szeregowej ustanowionej między dwoma tablicami Arduino.
#włączać
// Skonfiguruj obiekt szeregowy oprogramowania
MySerial z oprogramowania (2, 3);
void setup ()
// Rozpocznij komunikację szeregową
Seryjny.rozpocząć (9600);
chwila (!Seryjny)
; // Poczekaj, aż porto szeregowe się połączy
// Rozpocznij komunikację szeregową oprogramowania
Myserial.rozpocząć (9600);
void Loop ()
// Sprawdź, czy dane są dostępne w połączeniu szeregowym oprogramowania
if (myserial.dostępny())
// Odczytaj dane i wydrukuj je na monitor szeregowych
Seryjny.println (myserial.readString ());
W tym przykładzie najpierw dołączamy Biblioteka oprogramowania Na początku kodu. Następnie tworzymy Softwareserial obiekt zwany „Myserial”Z przypinkami 2 i 3 określonymi odpowiednio jako szpilki RX i TX.
w organizować coś() Funkcja, rozpoczynamy zarówno komunikację seryjną sprzętową, jak i szeregową oprogramowania z szybkością BAUD 9600. w pętla() Funkcja płyty nadawcy wysyłamy wiadomość przez połączenie szeregowe oprogramowania za pomocą Myserial.metoda println () i poczekaj na sekundę przed wysłaniem następnej wiadomości.
W funkcji Loop () płyty odbiorczej kod sprawdzi dostępność danych szeregowych w połączeniu szeregowym oprogramowania za pomocą Myserial.dostępny() metoda. Jeśli dostępne są dane, czytamy dane za pomocą Myserial.Metoda ReadString () i wydrukuj ją do monitora szeregowego za pomocą szeregowego.metoda println ().
Ograniczenia biblioteki SoftwaReserial ()
Biblioteka oprogramowania ma kilka różnych zalet, ale ma również pewne ograniczenia, o których użytkownicy powinni być świadomi. Ograniczenia te obejmują
Tablica | Piny RX |
Mega i Mega 2560 | 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69). |
Leonardo i Micro | 8, 9, 10, 11, 14 (Miso), 15 (SCK), 16 (MOSI). |
Wniosek
Biblioteka oprogramowania W Arduino jest przydatnym narzędziem do komunikowania się z urządzeniami za pomocą szeregowych protokołów komunikacji. Umożliwia programistom tworzenie opartych na oprogramowaniu porty szeregowe, które mogą być używane w połączeniu z sprzętem opartymi na portach szeregowych. Ta biblioteka ma pewne ograniczenia, ponieważ nie pozwala na jednoczesne przesyłanie danych. Aby uzyskać więcej informacji, przeczytaj powyższy artykuł.