SERIJSKA KOMUNIKACIJA PCA I DASDUINA- SERIAL MONITOR

SERIJSKA KOMUNIKACIJA PCA I CRODUINA - SERIAL MONITOR-Uncategorized

Mnogo je načina na koje možemo čitati s i pisati na Serial Port koristeći Arduinu, a ovdje ćemo pokazati najjednostavniji. Koristite ga kako biste izbjegli frustrirajuće načine 🙂
Dok smo se u prijašnjim tutorialima samo kratko osvrnuli na Serial Monitor, u ovome ćemo detaljno objasniti kako raditi s njim, bilo s Arduino IDE ili Atmel AVR Studiom. Generalno, Serial Monitor možete koristiti s bilokojim serijskim uređajem priključenim na računalo.

SERIAL MONITOR

Serial Monitor je dodatak Arduino IDE softwareu. Vrlo vjerovatno ste se susreli s njim ako ste radili neki Arduino projekt, npr. očitavali temperaturu s DHT senzora. Osim čitanja trenutnog stanja koda, omogućava slanje i primanje tekstualnih poruka te je kao takav vrlo praktičan u traženju greške u kodu(debuggiranju, kontroliranju Dasduina pomoću tipkovnice ili za pregled ispisa podataka. No krenimo redom…

Napomena: prije nego nastavite priključite Dasduino pločicu i odaberite Board i Port pod Tools tabom ArduinoIDE softwarea

Serial monitor pokrečemo klikom na ikonicu povećala ili kombinacijom tipki Ctrl+Shift+M.

Osnovne postavke:

COM Port – virtualni port preko kojeg želimo ostvarti serijsku komunikaciju između računala i Dasduino pločice
BAUD – jedinica broja pulseva po sekundi za UART komunikaciju
LINE ENDING: (detaljnije)
No line editing – šalje ono što je napisano

Newline – na napisano dodaje ASCII simbol za novu liniju (ekvivalentno s “\n”)

Carriage return – na napisano dodaje ASCII simbol za return (ekvivalentno s “\r”)

Both NL & CR – na napisano dodaje i Newline i Carriage return

 

DASDUINO NA SERIAL MONITOR

Serijsku komunikaciju započinjemo sa Serial.begin(); kojeg zadajemo u setup dijelu koda. Parametar koji dajemo funkciji je BAUD rate. On se mora podudarati s onim iz Serial Monitora kako u njemu ne bismo čitali “hijeroglife” koji se mogu dogoditi zbog neusklađenosti u brzini komunikacije.

void setup() {
  // zapocinjem serijsku komunikaciju
  Serial.begin(9600); // isti BAUD Rate postavljamo u Serial Monitoru
}
void loop() {
}

Naredbe za pisanje:

Serial.print() – ispisuje čovjeku čitljive podatke koje podržava ASCII, npr.

Serial.print(“Pozz”); – ispisuje Pozz
Serial.print(22); – ispiuje 22
Serial.print(1.4142); – ispisuje samo dvije znamenke nakon decimalne točke, 1.41

Serial.println() – nakon unesenog ispisuje novi red, tj. dodaje “\n” na kraj poslanog stringa
Serial.write() – ispisuje samo jedan byte

Dodatni parametar:

npr.:
Serial.print(22,BIN);
 – pretvara 22 u binarni broj, ispisuje 10110
Serial.print(22,HEX); – ispisuje 16
Serial.print(1.4142,5); – broj 5 označava broj decimanlih mjesta koja se ispisuju, ispisuje 1.41420

SERIAL MONITOR NA DASDUINO

Naredbe za čitanje:

Serial.read() – čita prvi byte zadane varijable

int sm_int = 0;
void setup() {
  // zapocinjem serijsku komunikaciju
  Serial.begin(9600); // isti BAUD Rate postavljamo u Serial Monitoru
}
void loop() {
  if( Serial.available() ) {
    sm_int = Serial.read();
    Serial.println(sm_int, DEC);
  }
}

Serial.readString() – čita zadanu varijablu te ju sprema u String

String sm_string = "";
void setup() {
  // zapocinjem serijsku komunikaciju
  Serial.begin(9600); // isti BAUD Rate postavljamo u Serial Monitoru
}
void loop() {
  if( Serial.available() ) {
    sm_string = Serial.readString();
    Serial.println(sm_string);
  }
}