Blog o spletnem programiranju in elektroniki
💬 👤
back Nazaj na blog
Arduino & Elektronika

Kako deluje UART serijska komunikacija in kako jo uporabljamo pri Arduinu

Vsakič ko na svojem računalniku odprete Serial Monitor v Arduino IDE za izpis meritev senzorjev ali nalaganje nove programske kode na ploščico, uporabljate protokol UART (Universal Asynchronous Receiver-Transmitter). Za razliko od I2C in SPI protokolov je UART asinhron, kar pomeni, da za prenos podatkov ne potrebuje skupne taktne linije (ure), temveč zgolj dve žici.

Liniji in delovanje UART vmesnika

Komunikacija poteka med dvema napravama s križno povezavo linij za oddajanje in sprejemanje.

Linija Pomen Pravilna vezava med napravama
TX Transmit (Oddajanje) Poveže se na RX vhod druge naprave.
RX Receive (Sprejemanje) Poveže se na TX izhod druge naprave.
GND Ground (Masa) Skupna referenčna masa je obvezna za usklajenost napetostnih nivojev.

Ključni parametri UART prenosa

Ker UART nima taktne linije (ura), se morata obe napravi vnaprej natančno dogovoriti o parametrih prenosa.

  1. Hitrost prenosa (Baud Rate): Število prenesenih bitov na sekundo (najpogosteje 9600 ali 115200 baudov). Obe napravi morata imeti nastavljeno identično hitrost.
  2. Začetni in končni bit (Start & Stop bit): Označujeta začetek in konec vsakega poslanega bajta.
  3. Parnostni bit (Parity): Izbirni bit za osnovno preverjanje napak pri prenosu (običajno se uporablja konfiguracija 8N1: 8 podatkovnih bitov, brez parnosti, 1 stop bit).

Primer uporabe UART v Arduino kodi

Arduino ima vgrajen objekt Serial za delo z glavno strojno UART enoto.

void setup() {
  // Nastavitev UART hitrosti na 115200 baudov
  Serial.begin(115200);
  Serial.println("UART komunikacija zagnana!");
}

void loop() {
  // Preverimo, ali smo prejeli nov znak preko UART vmesnika
  if (Serial.available() > 0) {
    char prejetZnak = Serial.read();

    // Pošljemo prejeti znak nazaj (Echo)
    Serial.print("Prejeto: ");
    Serial.println(prejetZnak);
  }
}

Uporaba programskega UART-a (SoftwareSerial)

Če ima vaš mikrokrmilnik (kot je npr. klasični Arduino Uno) le ena strojna UART vrata (pina 0 in 1), ki so zasedena s povezavo USB do računalnika, lahko z uporabo knjižnice SoftwareSerial poljubna druga dva digitalna pina spremenite v dodatna serijska vrata za komunikacijo z moduli Bluetooth (HC-05), GPS ali GSM.

back Nazaj na blog