Tarkvara jadateek Arduinos

Tarkvara Jadateek Arduinos



Arduino platvorm võimaldab inimestel luua erinevaid projekte. Arduino on kasutajasõbralik platvorm, mis toetab mitmesuguseid teeke, sealhulgas TarkvaraSerial raamatukogu . The TarkvaraSerial raamatukogu võimaldab teil luua jadapordi mis tahes oma Arduino plaadi digitaalsele kontaktile.

Selles artiklis sukeldume sügavamale SoftwareSeriali teeki ja uurime, kuidas see töötab.







Sissejuhatus SoftwareSerial Librarysse

The TarkvaraSerial raamatukogu on standardne Arduino teek, mis võimaldab jadasidet muudel digitaalviigudel kui TX ja RX. Raamatukogu võimaldab luua tarkvaralise jadapordi, mille abil saab suhelda teiste seadmetega, näiteks teiste mikrokontrollerite, arvutite või isegi Bluetoothi ​​moodulitega. SoftwareSeriali teek on kaasas Arduino IDE-ga ja seda saab kasutada mis tahes Arduino plaadiga.



Märge: Üldiselt TX ja RX tihvte kasutatakse jadakommunikatsiooniks, kuid seda teeki kasutades saame lubada Arduino plaadil kasutada TX- ja RX-tihvtide asendamiseks mis tahes digitaalset tihvti.



Tarkvarajadateegi funktsioonide mõistmine

The TarkvaraSerial raamatukogu Sellel on mitu funktsiooni, mis võimaldavad teil seadistada ja juhtida tarkvara jadaporti. Siin on mõned peamised funktsioonid, mida peaksite teadma:





TarkvaraSerial()

See funktsioon loob uue eksemplari TarkvaraSerial klass. Sellel funktsioonil on kaks argumenti, RX viik ja TX viik. Näiteks kui soovite luua viigudele 2 ja 3 tarkvara jadapordi, kasutage järgmist koodi:

TarkvaraSerial mySerial ( 2 , 3 ) ; // RX, TX



The TarkvaraSerial() meetodit kasutatakse a uue eksemplari loomiseks TarkvaraSerial objektiks. See võimaldab luua mitu eksemplari, kuid korraga saab aktiivne olla ainult üks.

Süntaks

Süntaks jaoks TarkvaraSerial() meetod on järgmine:

TarkvaraSerial ( rxPin, txPin, inverse_logic )

Parameetrid

Selle parameetrid TarkvaraSerial() on

rxPin: See parameeter määrab PIN-koodi, mida kasutatakse jadaandmete vastuvõtmiseks.

txPin: See parameeter määrab PIN-koodi, mida kasutatakse jadaandmete edastamiseks.

inverse_logic: See parameeter on valikuline ja see inverteerib sissetulevad bitid. Vaikeväärtus on false, mis tähendab, et RX-i viigu LOW-d tõlgendatakse 0-bitisena ja HIGH-i 1-bitisena. Kui see on seatud väärtusele Tõene, on RX-i viigu LOW nüüd 1-bitine ja HIGH 0-bitine.

Tagasi

The TarkvaraSerial() ei tagasta midagi.

Arduino SoftwareSerial() raamatukogu funktsioonid

Arduino TarkvaraSerial() sisaldab seadmetevahelise jadaside funktsioonide loendit. Siin käsitletakse mõnda põhifunktsiooni:

alusta ()

The alusta () funktsioon lähtestab tarkvara jadapordi edastuskiirusega. Boodikiirus on andmeedastuskiirus jadapordi kaudu. Näiteks jadaside edastuskiiruseks 9600 määramiseks kasutage järgmist koodi:

mySerial.begin ( 9600 ) ;

saadaval ()

The saadaval() f unction tagastab tarkvara jadapordis lugemiseks saadaolevad baidid. Näiteks selleks, et kontrollida, kas lugemiseks on andmeid, kasutage järgmist koodi:

kui ( mySerial.available ( ) > 0 ) {
// lugeda sisendandmed
char incomingByte = mySerial.read ( ) ;
}

loe ()

The loe () funktsioon loeb tarkvara jadapordist järgmise baidi andmeid. Näiteks baidi andmete lugemiseks ja seeriamonitorile printimiseks kasutaksite järgmist koodi:

char incomingByte = mySerial.read ( ) ;
Serial.println ( sissetulev bait ) ;

kirjuta ()

The kirjuta () funktsioon kirjutab baidi andmeid tarkvara jadaporti. Näiteks kirja saatmiseks 'A' tarkvara jadapordi kaudu kasutaksite järgmist koodi:

mySerial.write ( 'A' ) ;

Arduino SoftwareSerial() raamatukogu näitekood

Nüüd suhtleme kahe Arduino plaadi vahel jadaside kaudu, kasutades seda teeki. Võtke kaks Arduino plaati ja ühendage need, nagu on näidatud alloleval pildil.

Ühendage D2 Master Arduino plaadist koos D3 Slave Arduino plaadilt, ühendage samamoodi D3 Master Arduino koos D2 Slave Arduinost.

Märge: Jadaside jaoks on TX pin on alati ühendatud RX pin vastassuunas Arduino ja RX Masteri pin on alati ühendatud TX teise Arduino tihvt.

Järgnevalt on mõlema Arduino plaadi riistvara.

Siin on näide Arduino koodist, mis näitab, kuidas kasutada TarkvaraSerial raamatukogu side loomiseks kahe Arduino plaadi vahel:

Saatja juhatuse kood

Allolev kood on saatja Arduino jaoks, mis kirjutab stringi vastuvõtja Arduino tahvlile.

#include

// Seadistage tarkvara jadaobjekt
TarkvaraSerial mySerial ( 2 , 3 ) ;

tühine seadistus ( ) {
// Käivitage jadaühendus
Serial.begin ( 9600 ) ;
samal ajal ( ! Sari ) {
; // oota jaoks jadaport ühendamiseks
}

// Käivitage tarkvara jadaside
mySerial.begin ( 9600 ) ;
}

tühi silmus ( ) {
// Saatke sõnum tarkvara jadaühenduse kaudu
mySerial.println ( 'Tere, vastuvõtulaud!' ) ;
viivitus ( 1000 ) ;
}

Vastuvõtja juhatuse kood

Allolev kood on vastuvõtja plaadi jaoks. Seda koodi kasutades saab Arduino stringi teiselt plaadilt kahe Arduino plaadi vahel loodud jadaside kaudu.

#include

// Seadistage tarkvara jadaobjekt
TarkvaraSerial mySerial ( 2 , 3 ) ;

tühine seadistus ( ) {
// Käivitage jadaühendus
Serial.begin ( 9600 ) ;
samas ( ! Sari ) {
; // oota jaoks jadaport ühendamiseks
}

// Käivitage tarkvara jadaside
mySerial.begin ( 9600 ) ;
}

tühi silmus ( ) {
// Kontrollima kui andmed on saadaval tarkvara jadaühenduse kaudu
kui ( mySerial.available ( ) ) {
// Lugege andmeid ja printige need jadamonitorile
Serial.println ( mySerial.readString ( ) ) ;
}
}

Selles näites lisame esmalt TarkvaraSerial raamatukogu koodi alguses. Seejärel loome a TarkvaraSerial objekt nimega ' mySerial ” koos tihvtidega 2 ja 3, mis on määratud vastavalt RX- ja TX-viikudena.

Aastal setup() funktsioon, käivitame nii riistvaralise kui ka tarkvaralise jadaside edastuskiirusega 9600. loop () saatjaplaadi funktsiooni, saadame sõnumi tarkvara jadaühenduse kaudu, kasutades meetodit mySerial.println() ja ootame enne järgmise sõnumi saatmist sekundi.

Vastuvõtjaplaadi funktsioonis loop() kontrollib kood tarkvara jadaühenduse jadaandmete saadavust, kasutades mySerial.available() meetod. Kui andmed on saadaval, loeme andmed meetodi mySerial.readString() abil ja prindime need jadamonitorisse, kasutades meetodit Serial.println().

SoftwareSerial() raamatukogu piirangud

The TarkvaraSerial raamatukogu sellel on mitmeid erinevaid eeliseid, kuid sellel on ka mõned piirangud, mida kasutajad peaksid teadma. Need piirangud hõlmavad

  • Suutmatus andmeid samaaegselt edastada ja vastu võtta.
  • Mitme tarkvara jadapordi kasutamisel saab andmeid korraga vastu võtta ainult üks port.
  • Selle teegi abil loodud tarkvarapõhised jadapordid töötavad madalama andmeedastuskiirusega ega ole nii usaldusväärsed kui riistvarapõhised jadapordid.
  • Mõned Mega ja Mega 2560 plaatide kontaktid ei toeta RX-i muutmise katkestusi, piirates sellega, milliseid kontakte saab kasutada.
  • Sarnaselt saab Leonardo ja Micro plaatidel RX-i jaoks kasutada ainult teatud kontakte, kuna vahetuskatkestused puuduvad.
  • Maksimaalne RX-kiirus Arduino või Genuino 101 plaatidel on 57600 bps.
  • RX ei tööta Arduino või Genuino 101 plaatide digitaalse viiguga 13.
juhatus RX tihvtid
Mega ja 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 ja mikrofon 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

Järeldus

The TarkvaraSerial raamatukogu In Arduino on kasulik tööriist jadakommunikatsiooniprotokolle kasutavate seadmetega suhtlemiseks. See võimaldab arendajatel luua tarkvarapõhiseid jadaporte, mida saab kasutada koos riistvarapõhiste jadaportidega. Sellel teegil on mõned piirangud, kuna see ei võimalda samaaegset andmeedastust. Lisateabe saamiseks lugege ülaltoodud artiklit.