Serial Monitor

Utskrift

Serial monitor er et utrolig nyttig verktøy for oss, spesielt når vi skal finne feil i programmene våre. Serial monitor utveksler data med Arduino serielt, via USB-porten.

De mest brukte funksjonene vi bruker er Serial.print() og Serial.println(). Forskjellen på disse er at Serial.println lager et linjeskift etter det som skrives ut.

Eksempel:

Serial.print("Denne teksten kommer på linje 1 ");
Serial.println("Dette kommer på samme linje.");
Serial.print("Dette kommer på neste linje.");

Forutsetningen for at dette skal virke er at vi har brukt funksjonen Serial.begin(<hastighet>); før vi skriver ut. (Se eksempel under) Dette gjøres gjerne inne i setup-funksjonen.
<hastighet> oppgis i baud som er omtrent det samme som bit pr. sekund. Gyldige verdier er 300, 1200, 2400. 4800, 9600, 19200, 38400. 57600, 74880, 115200, 230400, 250000, 500000, 1000000, 2000000. Som standard ved installasjon er 9600 satt opp i Serial Monitor.

Serial Monitor (Seriell overvåker på norsk) kan startes fra hovedmenyen under "Verktøy", fra knappen med forstørrelsesglass oppe i høyre hjørne, eller med hurtigtasten <Ctrl>+<Shift>+M.

Hittil har data bare kunne sendes fra Arduino til PC, men fra versjon 1.8.11 kan vi også sende data fra PC til Arduino, og kan styre programmet på denne måten. Se program 2 for et eksempel på dette.

Eksempel program 1:

void setup(){
Serial.begin(9600); //Setter opp serieporten til å kommunisere med 9600 baud
}

void loop(){
int teller=0;
while (teller<10){ // En løkke som teller fra 0 til 9
Serial.print("Telleren er: "); //Skriver ut teksten "Telleren er: "
Serial.println(teller); //Skriver ut selve teller-variabelen, med et linjeskift (println)
teller++; //Øker telleren med 1
delay(200); //Pause på 200 millisekunder
}
Serial.println(); //Ekstra linjeskift
delay(2000); //Pause på 2 sekunder
}

Bilde av Serial Monitor

Eksempel program 2:
Dette programmet leser ett tegn fra serieporten, og blinker den innebygde lysdioden enten 10 eller 20 ganger ut fra hva brukeren sender.

//Enkel funksjon for å blinke innebygd LED et gitt antall ganger
void blink(int antall){
Serial.print("Blinker "); Serial.print(antall); Serial.println(" ganger!");
for (int i=0;i<antall;i++){
digitalWrite(13,HIGH);
delay(100);
digitalWrite(13,LOW);
delay(100);
}
}
void setup() {
Serial.begin(9600); //Setter opp serieporten til å kommunisere med 9600 baud
Serial.println("Send 1 for å blinke lysdioden 10 ganger, og 2 for å blinke 20 ganger");
}
void loop() {
char tegn;
if(Serial.available()){
tegn=Serial.read();
if (tegn=='1'){
blink(10);
} else if (tegn=='2'){
blink(20);
} else if (tegn=='\n'){
//Ikke gjør noe
} else {
Serial.println("Skjønner ikke");
Serial.println("Send 1 for å blinke lysdioden 10 ganger, og 2 for å blinke 20 ganger");
}

}
}

 

På bildet under har brukeren først sendt "1", deretter "2" og til slutt "3".
Serial Monitor Read