Serijska komunikacija PCa i Croduina - Serial Monitor

 
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 Croduina pomoću tipkovnice ili za pregled ispisa podataka. No krenimo redom...
 
Napomena: prije nego nastavite priključite Croduino 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.
 
serial monitor
Osnovne postavke:
 
COM Port
- virtualni port preko kojeg želimo ostvarti serijsku komunikaciju između računala i Croduino 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

Croduino 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 Croduino

 
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);
}
}
Leave a Reply