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.
- Hitrost prenosa (Baud Rate): Število prenesenih bitov na sekundo (najpogosteje 9600 ali 115200 baudov). Obe napravi morata imeti nastavljeno identično hitrost.
- Začetni in končni bit (Start & Stop bit): Označujeta začetek in konec vsakega poslanega bajta.
- 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.