Lliuirament 2a.- Comunicació Arduino-Ordinador
PORT SÈRIE
Les plaques Arduino es connecten al teu ordinador utilitzant un cable USB. La manera en què les plaques “parlen” amb l’ordinador consisteix en una tècnica anomenada Port Serial o Port Sèrie. Es pot utilitzar per intercanviar dades relativament complicades entre l’Arduino i l’ordinador. Enlloc de senyals digitals o analògics, pots enviar un text (string).
Mitjançant la comunicació sèrie pots comunicar-te també amb altres programes. Per exemple, pots utilitzar l’Arduino per llegir l’estat d’un botó i enviar les dades a un sketch de Processing que canviï el color de la pantalla quan el botó estigui premut.
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, no utilitzis la funció digitalRead() ni digitalWrite() en aquests pins si vols utilitzar la comunicació sèrie.

Enviament a l'ordinador
En moltes ocasions és molt útil poder visualitzar a l'ordinador els valors de lectura del pins d'entrada i de sortida d'Arduino. Tanmateix, també pot ser necessari enviar informació a Arduino des del teclat de l'ordinador.
Instruccions
Per enviar un missatge a l’ordinador, necessitaràs tres ordres diferents: Serial.begin(), Serial.println() o Serial.print().
Puja el codi de sota a la teva placa i fes clic a Eines -> Monitor Serial a l’IDE de l’Arduino. En cas que facis servir l'Arduino cloud editor, a la part dreta teni la icona de Serla Monitor.
void setup() {Serial.begin(9600);}void loop() {Serial.println("Sou unes màquines");delay(1000);}Les ordres utilitzades a dalt són:
Serial.begin(velocitat): Inicia la comunicació serial. Velocitat correspon a la rapidesa amb què els missatges són transmesos. É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. En cas contrari seria com si dues persones s’intentessin comunicar l’una en xinès i l’altra en català. Per ara, utilitza 9600 bits/segon(bps). Aquesta és la velocitat més habitual quan es treballa amb Arduino i Processing.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. Elmissatgeés la cadena de text (tipusString) que vols enviar.Serial.print(missatge): Mostra un missatge a través del port serial. Cada vegada que cridis aSerial.print(), el següent missatge apareixerà just després, sense nova línia. Novament, elmissatgeés la cadena de text que vols enviar.
Més explicacions:
- Serial.print(val); //imprime el valor de la variable val
- Serial.println(val); //imprime el valor de val e inserta una línea nueva
- Serial.print('\t'); //imprime una tabulación
- Serial.print(val,BASE); /*imprime el valor de la variable val pero pasando la variable en la base que le especifiquemos: DEC, HEX, OCT, BIN, BYTE, que corresponden a: Decimal, Hexadecimal, Base 8, Binario, y caracter del código ASCII respectivamente */
- x = Serial.available(); /*asigna a x el número de bytes disponibles en el puerto serie que aún no han sido leídos. Después de haberlos leídos todos, la función Serial.available() devuelve un valor 0 hasta que lleguen nuevos datos al puerto serie */
- y = Serial.read(); /*asigna a y el valor disponible en el puerto serie, que lo introducimos desde el teclado del ordenador en la zona de textos del Serial Monitor */
- Serial.flush(); /*porque los datos pueden llegar al puerto serie a más velocidad que la del proceso del programa, Arduino puede guardar todos los datos de entrada en un buffer. Si es necesario limpiar el buffer para llenarlo de datos nuevos, debemos usar la función flush(); */
TASCA:
Fes una captura de pantalla del monitor series amb un text personalitat.
Resum de la qualificació
| Ocult per a l'estudiantat | Sí |
|---|---|
| Participants | 19 |
| S'han tramès | 18 |
| Necessiten qualificació | 18 |