Biblioteka oprogramowania w Arduino

Biblioteka oprogramowania w Arduino

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ć()
  • dostępny()
  • Czytać()
  • pisać()

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ą

  • Niemożność przesyłania i odbierania danych jednocześnie.
  • Podczas korzystania z wielu portów szeregowych oprogramowania tylko jeden port może odbierać dane jednocześnie.
  • Oprogramowane porty szeregowe utworzone za pomocą tej biblioteki działają przy niższych prędkościach BAUD i nie są tak niezawodne jak porty szeregowe oparte na sprzętowych.
  • Niektóre szpilki na płytkach Mega i Mega 2560 nie obsługują zmian Przerwane dla RX, ograniczając, które piny można użyć.
  • Podobnie, na Leonardo i Microards, tylko niektóre szpilki mogą być używane do RX z powodu braku zmian.
  • Maksymalna prędkość RX na płytkach Arduino lub Enyrynino 101 wynosi 57600 bps.
  • RX nie pracuje na cyfrowym PIN 13 z Arduino lub Enyrynino 101 płyt.
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ł.