Arduino: Comunicació amb l’ordinador
- jomvi00
- 20 abr 2016
- 3 Min. de lectura
Enviament de dades de la placa al Monitor
Les plaques Arduino no tenen pantalla però existeix la possibilitat de mostrar dades per la pantalla, connectant Arduino amb el teu ordinador utilitzant un cable USB.
La manera en què les plaques es comuniquen amb l’ordinador consisteix en una tècnica anomenada Port Serial o Port Sèrie. En lloc de senyals digitals o analògics, pots enviar-hi un text i mostrar-lo per la pantalla del pc. Això pot servir per monitoritzar valors, per exemple que vinguin d’un sensor i que puguin haver estat tractats matemàticament pel programa.
Cal tenir en compte el port sèrie utilitza els pins digitals 0 i 1:
El pin 0, RX o recepció. Per aquí arriben les dades a l’Arduino.
El pin 1, TX o transmissió. Per aquí surten les dades des de l’Arduino.
Per tant, això vol dir que no es podrà utilitzar la funció digitalWrite() ni digitalRead() en aquests pins si volem utilitzar la comunicació sèrie amb el pc, perquè estaran inhabilitats i no funcionaran.
Puja el codi d’exemple a la teva placa, connecta-la al pc amb el port USB. Quan ja s’estigui executant el programa, fes clic a Eines -> Monitor Sèrie al menú de l’IDE de l’Arduino.
Serial.begin(9600);
}
void loop() {
Serial.println("text a mostrar per pantalla");
delay(1000);
}
Veuràs una petita finestra amb el text que apareix una vegada per segon. Aquesta finestra mostra tot el que s’envia al teu ordinador a través del port serial de l’Arduino.
Figura 8. Font: elaboració pròpia.
Les ordres que es poden utilitzar són:
Serial.begin(velocitat): Inicia la comunicació serial. Es defineix al bloc setup. Velocitat correspon a la rapidesa amb què els missatges són transmesos pel cable USB. És important que tant l’emissor (en aquest cas la placa Arduino) com el receptor (en aquest cas el monitor serial) es comuniquin a la mateixa velocitat. Es pot utilitzar el valor 9600 bits/segon(bps). Aquesta és la velocitat més habitual quan es treballa amb Arduino UNO.
Serial.println(missatge): Mostra un missatge a través del port serial, amb un salt de línia al final, de manera que cada vegada que cridis a la funció Serial.println(), el missatge següent s’iniciarà en una nova línia. El missatge és la cadena de text (tipus String) que vols enviar.
Serial.print(missatge): Mostra un missatge a través del port serial. Cada vegada que cridis a Serial.print(), el següent missatge apareixerà just després, sense nova línia.
Serial.println(message,format): els formats disponibles són decimals, hexadecimal, octal, binari i bytes.
Fonts consultades:
Arduino Reference. Llenguatge programació. Enllaç: https://www.arduino.cc/en/Reference/HomePage
Serial Plotter
A partir de la versió 1.6.6 del IDE d’Arduino, una de les novetats és la inclusió d'una finestra per fer gràfics amb els valors rebuts pel port sèrie. Trobem aquesta opció en el menú “Eines”, just al costat del tradicional “Serial Monitor”.
Figura 9. Font: elaboració pròpia
Anem a mostrar el seu ús amb un simple exemple. Per a això, vam començar connectant Arduino amb USB des del PC. Carreguem el següent codi que genera números aleatoris entre 1 i 10 amb dos decimals, i els envia pel port de sèrie cada 100 ms.
void setup() {
Serial.begin(9600);
}
void loop() {
float value;
value = random(0,10);
Serial.println(value);
delay(100);
}
I el resultat de la opció Serial Plotter:

Fonts consultades:
Arduino Reference. Llenguatge programació. Enllaç: https://www.arduino.cc/en/Reference/HomePage
Recepció de dades
El monitor serial és una eina que incorpora el ID’Arduino a través de la qual podem enviar i rebre informació de la nostra placa. A l'exemple anterior vam veure l’enviament. Ara anem a invertir el procés, anem a enviar dades del PC al Arduino. El programa bàsic per rebre dades és el següent. En aquest exemple controlarem un led des del teclat del PC.

En aquest cas només podem llegir un caràcter que haurem d’introduir dins el caixetí superior de la finestra del Monitor (Eines>Monitor Sèrie).
Si volguéssim introduir un text més llarg, la programació es complica una mica més.

Fonts consultades:
Arduino Reference. Llenguatge programació. Últim Enllaç: https://www.arduino.cc/en/Reference/HomePage
Comments