Programmatūras sērijas bibliotēka Arduino

Programmaturas Serijas Biblioteka Arduino



Arduino platforma ļauj cilvēkiem izveidot dažādus projektus. Arduino ir lietotājam draudzīga platforma, kas atbalsta plašu bibliotēku klāstu, tostarp Programmatūras sērijas bibliotēka . The Programmatūras sērijas bibliotēka ļauj izveidot seriālo portu jebkurai no jūsu Arduino plates digitālajām tapām.

Šajā rakstā mēs iedziļināsimies SoftwareSerial bibliotēkā un izpētīsim, kā tā darbojas.







Ievads SoftwareSerial Library

The Programmatūras sērijas bibliotēka ir standarta Arduino bibliotēka, kas nodrošina seriālo saziņu ar citiem digitālajiem kontaktiem, izņemot TX un RX. Bibliotēka ļauj izveidot programmatūras seriālo portu, ko var izmantot, lai sazinātos ar citām ierīcēm, piemēram, citiem mikrokontrolleriem, datoriem vai pat Bluetooth moduļiem. SoftwareSerial bibliotēka ir iekļauta Arduino IDE, un to var izmantot ar jebkuru Arduino plati.



Piezīme: Kopumā TX un RX tapas tiek izmantotas seriālajai saziņai, taču, izmantojot šo bibliotēku, mēs varam ļaut Arduino platei izmantot jebkuru no digitālajām tapām, lai aizstātu TX un RX tapas.



Izpratne par SoftwareSerial bibliotēkas funkcijām

The Programmatūras sērijas bibliotēka ir vairākas funkcijas, kas ļauj iestatīt un kontrolēt programmatūras seriālo portu. Šeit ir dažas no galvenajām funkcijām, kas jums jāzina:





SoftwareSerial()

Šī funkcija izveido jaunu eksemplāru Serial programmatūra klasē. Šai funkcijai ir divi argumenti, RX pin un TX pin. Piemēram, ja vēlaties izveidot programmatūras seriālo portu 2. un 3. tapām, izmantojiet šādu kodu:

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



The SoftwareSerial() metode tiek izmantota, lai izveidotu jaunu a instanci Serial programmatūra objektu. Tas ļauj izveidot vairākas instances, taču vienlaikus var būt aktīva tikai viena.

Sintakse

Sintakse SoftwareSerial() metode ir šāda:

Serial programmatūra ( rxPin, txPin, inverse_logic )

Parametri

Parametri priekš SoftwareSerial() ir

rxPin: Šis parametrs norāda tapu, kas tiks izmantota sērijas datu saņemšanai.

txPin: Šis parametrs norāda tapu, kas tiks izmantota sērijas datu pārsūtīšanai.

apgrieztā_loģika: Šis parametrs nav obligāts, un tas apvērš ienākošo bitu sajūtu. Noklusējuma vērtība ir nepatiesa, kas nozīmē, ka LOW uz RX kontakta tiek interpretēts kā 0 bits un HIGH kā 1 bits. Ja iestatīts uz True, RX tapas LOW tagad būs 1 bits un HIGH kā 0 bits.

Atgriezties

The SoftwareSerial() neko neatdod.

Arduino SoftwareSerial() bibliotēkas funkcijas

Arduino SoftwareSerial() ir funkciju saraksts seriālajai saziņai starp ierīcēm. Šeit ir apskatītas dažas no galvenajām funkcijām:

sākt ()

The sākt () funkcija inicializē programmatūras seriālo portu ar datu pārraides ātrumu. Bodu pārraides ātrums ir datu pārraides ātrums pa seriālo portu. Piemēram, lai iestatītu 9600 kā seriālās komunikācijas pārraides ātrumu, izmantojiet šādu kodu:

mySerial.begin ( 9600 ) ;

pieejams ()

The pieejams() f unction atgriež baitus, kas pieejami lasīšanai programmatūras seriālajā portā. Piemēram, lai pārbaudītu, vai ir pieejami lasāmie dati, izmantojiet šādu kodu:

ja ( mySerial.available ( ) > 0 ) {
// lasīt ievades dati
char incomingByte = mySerial.read ( ) ;
}

lasīt ()

The lasīt () funkcija nolasa nākamo datu baitu no programmatūras seriālā porta. Piemēram, lai nolasītu datu baitu un izdrukātu to seriālajā monitorā, jāizmanto šāds kods:

char incomingByte = mySerial.read ( ) ;
Serial.println ( ienākošais baits ) ;

rakstīt ()

The rakstīt () funkcija ieraksta datu baitu programmatūras seriālajā portā. Piemēram, lai nosūtītu vēstuli “A” izmantojot programmatūras seriālo portu, jūs izmantotu šādu kodu:

mySerial.write ( 'A' ) ;

Arduino SoftwareSerial() bibliotēkas piemēra kods

Tagad mēs sazināsimies starp divām Arduino platēm, izmantojot seriālo komunikāciju, izmantojot šo bibliotēku. Paņemiet divus Arduino dēļus un pievienojiet tos, kā parādīts zemāk esošajā attēlā.

Savienot D2 no Master Arduino dēļa ar D3 Slave Arduino plates, līdzīgi pievienojiet D3 Master Arduino ar D2 no Slave Arduino.

Piezīme: Seriālajai saziņai, TX tapa vienmēr ir savienota ar RX pretējā Arduino tapa un RX Vadītāja tapa vienmēr ir savienota ar TX otra Arduino tapa.

Tālāk ir norādīta abu Arduino dēļu aparatūra.

Šeit ir Arduino koda piemērs, kas parāda, kā izmantot Programmatūras sērijas bibliotēka lai izveidotu saziņu starp divām Arduino plāksnēm:

Sūtītāja padomes kods

Tālāk norādītais kods ir paredzēts sūtītājam Arduino, kas ierakstīs virkni uztvērēja Arduino plates.

#include

// Iestatiet programmatūras sērijas objektu
SoftwareSerial mySerial ( 2 , 3 ) ;

tukša iestatīšana ( ) {
// Sāciet seriālo komunikāciju
Sērija.sākt ( 9600 ) ;
kamēr ( ! Seriāls ) {
; // pagaidi priekš seriālais ports savienojuma izveidei
}

// Sāciet programmatūras seriālo komunikāciju
mySerial.begin ( 9600 ) ;
}

tukša cilpa ( ) {
// Nosūtiet ziņojumu, izmantojot programmatūras seriālo savienojumu
mySerial.println ( 'Sveiks, uztvērēja dēlis!' ) ;
kavēšanās ( 1000 ) ;
}

Uztvērēja plates kods

Tālāk norādītais kods ir paredzēts uztvērēja panelim. Izmantojot šo kodu, Arduino saņems virkni no citas plates, izmantojot seriālo saziņu, kas izveidota starp diviem Arduino dēļiem.

#include

// Iestatiet programmatūras sērijas objektu
SoftwareSerial mySerial ( 2 , 3 ) ;

tukša iestatīšana ( ) {
// Sāciet seriālo komunikāciju
Sērija.sākt ( 9600 ) ;
kamēr ( ! Seriāls ) {
; // pagaidi priekš seriālais ports savienojuma izveidei
}

// Sāciet programmatūras seriālo komunikāciju
mySerial.begin ( 9600 ) ;
}

tukša cilpa ( ) {
// Pārbaudiet ja dati ir pieejami programmatūras seriālajā savienojumā
ja ( mySerial.available ( ) ) {
// Izlasiet datus un izdrukājiet tos sērijas monitorā
Serial.println ( mySerial.readString ( ) ) ;
}
}

Šajā piemērā mēs vispirms iekļaujam Programmatūras sērijas bibliotēka koda sākumā. Pēc tam mēs izveidojam a Serial programmatūra objekts ar nosaukumu ' mySerial ” ar tapām 2 un 3, kas norādītas attiecīgi kā RX un TX tapas.

Iekš uzstādīt() funkciju, mēs sākam gan aparatūras seriālo, gan programmatūras seriālo komunikāciju ar bodu ātrumu 9600. cilpa () sūtītāja paneļa funkciju, mēs nosūtām ziņojumu, izmantojot programmatūras seriālo savienojumu, izmantojot metodi mySerial.println(), un nogaidām sekundi pirms nākamā ziņojuma nosūtīšanas.

Uztvērēja plates funkcijā loop() kods pārbaudīs sērijas datu pieejamību programmatūras seriālajā savienojumā, izmantojot mySerial.available() metodi. Ja ir pieejami dati, mēs nolasām datus, izmantojot metodi mySerial.readString() un izdrukājam tos seriālajā monitorā, izmantojot Serial.println() metodi.

SoftwareSerial() bibliotēkas ierobežojumi

The Programmatūras sērijas bibliotēka ir vairākas atšķirīgas priekšrocības, taču tai ir arī daži ierobežojumi, kas lietotājiem būtu jāzina. Šie ierobežojumi ietver

  • Nespēja pārsūtīt un saņemt datus vienlaicīgi.
  • Izmantojot vairākus programmatūras seriālos portus, datus vienlaikus var saņemt tikai viens ports.
  • Programmatūras seriālie porti, kas izveidoti, izmantojot šo bibliotēku, darbojas ar zemāku datu pārraides ātrumu un nav tik uzticami kā aparatūras seriālie porti.
  • Dažas Mega un Mega 2560 paneļu tapas neatbalsta RX maiņas pārtraukumus, ierobežojot to, kuras tapas var izmantot.
  • Tāpat Leonardo un Micro dēļiem RX var izmantot tikai noteiktas tapas, jo trūkst maiņas pārtraukumu.
  • Maksimālais RX ātrums uz Arduino vai Genuino 101 plates ir 57600 bps.
  • RX nedarbojas ar Arduino vai Genuino 101 plates digitālo tapu 13.
Valde RX tapas
Mega un 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 un mikrofons 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

Secinājums

The Programmatūras sērijas bibliotēka In Arduino ir noderīgs rīks saziņai ar ierīcēm, izmantojot seriālos sakaru protokolus. Tas ļauj izstrādātājiem izveidot uz programmatūru balstītus seriālos portus, ko var izmantot kopā ar aparatūras seriālajiem portiem. Šai bibliotēkai ir daži ierobežojumi, jo tā neļauj vienlaicīgi pārsūtīt datus. Lai iegūtu sīkāku informāciju, izlasiet rakstu iepriekš.