Skip to content
2026.04.19.
  • F
  • X
  • LinkedIn
  • YouTube
  • Instagram
  • GitHub
TavIR

TavIR

Mikrokontroller világ

  • TavIR Tudástár
  • TavIR WebShop
  • TavIR Fórum
  • Hírek
  • Könyvek
    • Egyszerű elektronika – Kezdőlap
    • ESP8266/ESP32
    • Tippek
      • Tippek-trükkök (AVR)
      • Tippek-trükkök (ESP8266/ESP32)
  • +Gyorstippek
  • +Mélyvíz
  • +Témakereső
  • Kapcsolat
  • Főoldal
  • Könyv
  • Mit ne használjunk Arduino projektekben?
  • SoftwareSerial
  • Mit ne használjunk Arduino projektekben?

SoftwareSerial

Robert 2022.05.02.
157 softwareserial - Cseh Robert / TavIR - softwareserial soros port
Az ATMega328 chipet tartalmazó Arduino lapok egyetlen hardware UART-ot (soros portot) tartalmaznak. De mit lehet tenni, ha második soros portra is szükség van? Egyszerű: a SoftwareSerial eljárással létrehozunk annyit, amennyi csak kell. De mi ezzel a probléma?
A probléma, hogy hiányzik a közvetlen hardware támogatás és a SoftwareSerial folyamatosan ciklikusan figyeli a változásokat és az eközben eltelt időből számolható a fogadott/küldött adat. Erre csak akkor van mód, ha a megszakítások letiltásra kerülhetnek – különben elcsúszik az időzítés és széthullik a kommunikáció. Ez így elég nagy felfordulást okoz az időzítésérzékeny folyamatokban. Ha egynél több UART-ra van szükség, akkor az Arduino Mega vagy a Leonardo lehet megfelelő választás. Így az USB porton marad az illesztés (Mega) vagy a chip integrált USB-je biztosítja a soros kommunikációt. Mindenképp marad így szabadon hardware soros port.

Tartalomjegyzék

Toggle
  • De mikor lehet használni a SoftwareSerial vagy a NewSoftwareSerial eljárásokat?
  • SoftwareSerial mintakód
    • Hol használható a szoftveres sorosport?
    • Mit ne használjunk Arduino projektekben? – Tartalomjegyzék

De mikor lehet használni a SoftwareSerial vagy a NewSoftwareSerial eljárásokat?

Amikor a szoftver UART pl. debug információt küld, és megengedhető a megszakítások miatti csúszás vagy a megszakítások tiltása. A küldés során a SoftSerial eljárások használatából fakadóan előforduló időzítéscsúszást még tolerálnak a vevőáramkörök, ugyanakkor a SoftSerial vételre való használata a megszakítások kiszámíthatatlansága miatt erősen bizonytalan működést eredményez!
A NewSoftserial az Arduino-0022 verziójához jelent meg először, majd az Arduino-1.0 kiadásában a SoftSerial ejárás kicserélésre is került. Azaz az Arduino 1.0-ban már SoftSerial néven a NewSoftSerial található meg.
Ami a NewSoftSerial előnye a SoftSerialhoz képest:
  • 4-600 byte SRAM megtakarítás, mivel a print osztályt használja. Így nem szükséges duplikált kódrészlet.
  • A vétel (Rx) ugyanúgy bufferelésre kerül, mint a hardware sorosport esetén. 
  • A Tx kivezetés bármelyik szabad I/O láb lehet, míg vétel esetén az Arduino Uno, Dieclimila/Duemilanove (ATMega168/328) esetén a 0..13 mellett az A0…A5 is megfelel Rx kivezetésnek. Ám Arduino Mega esetén csak az alábbi kivezetésekre kerülhet a szoftveres Rx láb: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69. Leonardo (ATMega32U4) esetén ugyanilyen kötöttség a  8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI) kivezetések használhatósága Rx esetén. A megkötések oka, hogy a NewSoftSerial megszakításkezelést használ az adatok fogadásának detektálására – így csökkentve az adatvesztések kockázatát.
  • Egyidőben több SoftwareSerial is használható a programon belül.
  • A 8, 16 és 20 MHz processzorok is támogatottak.
  • A szoftveres soros port begin() párja az end() is elérhető. A kivezetés a felszabadítás után standard I/O kivezetésként használható.
Fontos! A 300,600, 1200 bps sebesség használata a millis() függvény futásában fennakadást okozhat. Nagyobb sebességek esetén a túl gyakori megszakítás adatvesztést okozhat. Így a 38.4kbps, 57.6kbps és a  115.2kbps sebesség kerülendő.
Adáskor nincsen bufferelés, és feltartja a program futását!
 

SoftwareSerial mintakód

A hardware sorosport lábait használjuk, azonban szoftveres sorosortként. A bejövő karaktert visszaküldjük a porton át, minden beérkező karakter átbillenti az alaplapi LED állapotát az ellenkezőjébe.   
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*Software serial test
*/
// include the SoftwareSerial library so you can use its functions:
#include <SoftwareSerial.h>
 
#define rxPin 0
#define txPin 1
#define ledPin 13
 
// set up a new serial port
SoftwareSerial mySerial =  SoftwareSerial(rxPin, txPin);
 
byte pinState = 0;
void setup()  {
  // define pin modes for tx, rx, led pins:
  pinMode(rxPin, INPUT);
  pinMode(txPin, OUTPUT);
  pinMode(ledPin, OUTPUT);
  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
  //Serial.begin(9600);
  mySerial.println("Hello World - SoftwareSerial");
}
 
void loop() {
  if (mySerial.available() > 0){
  // listen for new serial coming in:
  char someChar = mySerial.read();
  // print out the character:
  mySerial.print(someChar);
  // toggle an LED just so you see the thing's alive.  
  // this LED will go on with every OTHER character received:
  toggle(ledPin);
  }
}
 
void toggle(int pinNum) {
  // set the LED pin using the pinState variable:
  digitalWrite(pinNum, pinState);
  // if pinState = 0, set it to 1, and vice versa:
  pinState = !pinState;
}

Hol használható a szoftveres sorosport?

Minden olyan helyen, ahol a soros kommunikációs sebessége nem több mint 19200 bps. Például GPS vevőkkel való kommunikációra, másik Arduinoval való összekötésre vagy akár RS-485 busz használatára. A fokozott megszakításkezelés miatt a főprogramban nem lehet sok idővesztességet okozó programrészlet, megszakításba beágyazva nem lehet időigényes művelet (pl. várakozás, LCD kezelés, soros porti adás/vétel, 1-Wire busz kezelés, stb.).  Érdemes kerülni a többszörös SoftwareSerial használatot, mert egymást is feltartják! 
De a lehetőségek szerint Arduino Mega áramkör ekkor az igazi, vagy a soros porti kommunikáció kiváltása például TWI/Wire vagy SPI kapcsolódással.
Tipp: A szoftveres soros port 64 byte SRAM bufferrel rendelkezik, azaz ha nem tudjuk azonnal kiolvasni/feldolgozni – akkor sem vesznek el az adatok. 
Mintaprogramok találhatóak az Arduino keretrendszerben a Fájl > Minták > SoftwareSerial alatt.
 
Felhasznált források:
  • http://arduiniana.org/libraries/newsoftserial/
  • http://www.arduino.cc/en/Reference/SoftwareSerial
  • http://arduiniana.org/libraries/NewSoftSerial/

 

Mit ne használjunk Arduino projektekben? – Tartalomjegyzék

1
[catlist name="Mit ne használjunk Arduino projektekben?" orderby=date order=asc numberposts=50]

Tags: SoftwareSerial

Post navigation

Előző String osztály
Következő Felhúzóellenállások

Kapcsolódó anyagok

Külső prellmentesítés rotary-enkóderhez 160 rotary - Cseh Robert / TavIR - softwareserial soros port
  • Mit ne használjunk Arduino projektekben?

Külső prellmentesítés rotary-enkóderhez

2022.05.16.
Darlington tranzisztor Tranzisztor belső felépítése
  • Mit ne használjunk Arduino projektekben?

Darlington tranzisztor

2022.05.15.
Felhúzóellenállások 158 pullup - Cseh Robert / TavIR - softwareserial soros port
  • Mit ne használjunk Arduino projektekben?

Felhúzóellenállások

2022.05.03.

Hírlevél

Hogy az újdonságokról első kézből értesülj:
→ Feliratkozás a Hírlevélre

Ingyenes tanfolyam

60 nap alatt Arduino - az ingyenes tanfolyam
→ Kattints ide és iratkozz fel!
60 nap alatt Arduino

Szeretnél egy lépéssel a többiek előtt járni?

Ne hagyd ki a legújabb tanfolyamokat, amik még csak most bontogatják szárnyaikat.

Legyél te az első! Tanfolyamok

Alkatrész-tár

→ TavIR WebShop
→ Tanulókészletek

Témakörök

  • Cikk (58)
  • Hír (42)
  • Könyv (38)
    • Egyszerű elektronika tippek (18)
    • ESP8266/ESP32 (1)
    • Mélyvíz (12)
    • Mit ne használjunk Arduino projektekben? (6)
  • OmegaFlux (2)
  • Tippek (60)
    • Gyorstippek (20)
    • Tippek-trükkök (AVR) (21)
    • Tippek-trükkök (ESP8266/ESP32) (5)

Fórum

  • Apróhirdetés - csere-bere :: Re: Elajándékoznám mérnökhallgatónak ami a fotón látható!
  • Apróhirdetés - csere-bere :: Re: Elajándékoznám mérnökhallgatónak ami a fotón látható!
  • Apróhirdetés - csere-bere :: Elajándékoznám mérnökhallgatónak ami a fotón látható!

TavIR WebShop

→ Tovább a TavIR WebShopba
M3x20 műanyag csavar
M3x20 műanyag csavar

Az M3 műanyag csavar M3x20 kis terhelésű rögzítésekhez használt metrikus [...]

M3x12 műanyag csavar
M3x12 műanyag csavar

Könnyű, szigetelő rögzítés elektronikai és robotikai szerelésekhez Az M3 műanyag [...]

M3x10 műanyag távtartó
M3x10 műanyag távtartó

Az M3 műanyag távtartó egy apró, de nagyon hasznos szerelőelem: [...]

Mini fém/golyóscsapágyas servomotor (MG90S/360 )
Mini fém/golyóscsapágyas servomotor (MG90S/360  )

Az MG90S 360 fokos szervomotor egy apró méretű, fém fogaskerekes [...]

GPS modul (NEO-M9N) kerámiaantennával
GPS modul (NEO-M9N) kerámiaantennával

Ha olyan GNSS modult keresel, amit mikrokontrolleres projektbe is könnyen [...]

Eredeti Arduino UNO Q (4GB, QRB2210, STM32U585)
Eredeti Arduino UNO Q (4GB, QRB2210, STM32U585)

Az Arduino UNO Q (ABX00173, 4 GB RAM / 32 [...]

M3 műanyag anya
M3 műanyag anya

Az M3 műanyag anya praktikus választás, ha könnyű szereléshez keresel [...]

RS232-Bluetooth adapter D-SuB9 apa (vezeték nélküli kapcsolat régi soros eszközökhöz)
RS232-Bluetooth adapter D-SuB9 apa (vezeték nélküli kapcsolat régi soros eszközökhöz)

Van egy megbízható, régebbi RS232-es eszközöd, de eleged van a [...]

AVR-Duino / Nano (328+CH340)
AVR-Duino / Nano (328+CH340)

Egyszerű, kicsi, és rögtön munkára fogható Ha egy kompakt, jól [...]

NodeMCU ESP32 / NodeMCU32 terminal-adapter (30/38pin)
NodeMCU ESP32 / NodeMCU32 terminal-adapter (30/38pin)

Az ESP32 38 pin terminal adapter egy praktikus bővítőpanel azokhoz [...]

uSD/microSD kártya (2GB) (uSD/SD adapter és tok)
uSD/microSD kártya (2GB) (uSD/SD adapter és tok)

Ez a 2 GB-os microSD kártya nem a "mindent rámentek" [...]

M3x10+6 műanyag távtartó
M3x10+6 műanyag távtartó

Ha két panelt, modult vagy szerkezeti elemet nem egymásra szorítva, [...]

  • Tovább a TavIR Fórumra...

Címkék

alappanel Arduino Arduino nap Arduino nap 2023 art AVR biztosíték darlington dióda eeprom egyszerű elektronika elem ellenállás ESP Espressif Systems flash Forrasztás ft232 hang hőmérő i2c i2clcd infravörös ISP JTAG kijelző LCD lm35 MOSFET motor pcb páratartalom Qualcomm Relé RTC telepítés tmp36 tranzisztor Történelem Uno wiring WOM Zener április 1 óra

Archívum

  • 2026. április (1)
  • 2026. március (5)
  • 2026. február (4)
  • 2026. január (3)
  • 2025. december (2)
  • 2025. november (2)
  • 2025. október (3)
  • 2025. augusztus (3)
  • 2025. július (7)
  • 2025. június (4)
  • 2025. május (6)
  • 2025. április (3)
  • 2025. március (3)
  • 2025. február (1)
  • 2025. január (6)
  • 2024. december (5)
  • 2024. november (5)
  • 2024. október (6)
  • 2024. szeptember (5)
  • 2024. augusztus (4)
  • 2024. július (3)
  • 2024. június (1)
  • 2024. május (3)
  • 2024. március (1)
  • 2024. február (2)
  • 2024. január (1)
  • 2023. december (5)
  • 2023. szeptember (2)
  • 2023. augusztus (6)
  • 2023. július (2)
  • 2023. június (1)
  • 2023. május (1)
  • 2023. április (10)
  • 2023. február (1)
  • 2022. szeptember (2)
  • 2022. július (1)
  • 2022. május (6)
  • 2022. április (1)
  • 2022. március (2)
  • 2022. január (3)
  • 2021. december (1)
  • 2021. november (4)
  • 2021. október (2)
  • 2021. szeptember (1)
  • 2021. július (1)
  • 2021. május (2)
  • 2021. április (1)
  • 2021. március (2)
  • 2020. szeptember (1)

Eddig nem olvasott...

Signetics WOM-25120: Egy alternatív adatarchitektúra újrafogalmazása a félvezetők korában (ChipTeszt!) WOM-25120 mérés
  • Hír

Signetics WOM-25120: Egy alternatív adatarchitektúra újrafogalmazása a félvezetők korában (ChipTeszt!)

2026.04.01.
ESP-IDF 6.0: nagy ugrás vagy fájdalmas nagytakarítás? 11123 ispidf 55 60 melyviz - Cseh Robert / TavIR - softwareserial soros port
  • Cikk
  • Mélyvíz

ESP-IDF 6.0: nagy ugrás vagy fájdalmas nagytakarítás?

2026.03.21.
ESP-IDF 6.0 laikus szemmel: mikor válts, mikor ne? Elektronikai munkaasztalon működő ESP32 mikrokontroller és kódoló laptop, amely az ESP-IDF firmware fejlesztés és beágyazott rendszer tanulás folyamatát szemlélteti.
  • Cikk

ESP-IDF 6.0 laikus szemmel: mikor válts, mikor ne?

2026.03.20.
Mit ünneplünk március 14-én? – A PI nap története és érdekességei Egy misztikus, matematikai és csillagászati témájú fantáziafestmény, amelyben a π (pi) számjegyei egy spirális galaxis formájában lebegnek az univerzumban, miközben egy tudós tanulmányozza azokat.
  • Hír

Mit ünneplünk március 14-én? – A PI nap története és érdekességei

2026.03.12.

Információk

Cégadatok-impresszum | Használati feltételek
Adatvédelmi irányelvek | Kapcsolat

Elérhetőség

Ügyfélszolgálat: +36 (20) 99-23-781
E-mail: avr (kukac)tavir (pont) hu
Iroda/telephely: 1181 Budapest, Szélmalom utca 13.
Copyright © TavIR Minden jog fenntartva | DarkNews by AF themes.
TavIR
Manage your privacy

To provide the best experiences, we and our partners use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us and our partners to process personal data such as browsing behavior or unique IDs on this site and show (non-) personalized ads. Not consenting or withdrawing consent, may adversely affect certain features and functions.

Click below to consent to the above or make granular choices. Your choices will be applied to this site only. You can change your settings at any time, including withdrawing your consent, by using the toggles on the Cookie Policy, or by clicking on the manage consent button at the bottom of the screen.

Funkcionális Always active
A technikai tárolás vagy hozzáférés szigorúan szükséges az előfizető vagy felhasználó által kifejezetten kért konkrét szolgáltatás használatának lehetővé tételének jogos céljához, vagy kizárólag a közlés elektronikus hírközlő hálózaton keresztüli továbbításának céljához.
Beállítások
A technikai tárolás vagy hozzáférés a jogos célból szükséges, hogy olyan beállításokat tároljunk, amelyeket az előfizető vagy a felhasználó nem kért.
Statisztika
Kizárólag statisztikai célokra használt technikai tároló vagy hozzáférés. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
A technikai tárolás vagy hozzáférés felhasználói profilok létrehozásához szükséges hirdetések küldéséhez, illetve a felhasználó nyomon követéséhez egy vagy több weboldalon hasonló marketingcélokból.
Statistics

Marketing

Features
Always active

Always active
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
Manage options
{title} {title} {title}