Rebre des de l’ordinador

Pots utilitzar l’ordre Serial.read() per obtenir dades que arribin a l’Arduino a través del port serial.

El següent exemple mostra com utilitzar l’ordinador per controlar un LED amb l’Arduino. Utilitzarem l’on-board LED, així que només necessites pujar aquest codi:

int ledPin=13;
int incomingByte;

void setup() {
Serial.begin(9600);
pinMode(ledPin,OUTPUT);
}
void loop() {
if(Serial.available()>0){
incomingByte=Serial.read();
if(incomingByte=='H'){
digitalWrite(ledPin, HIGH);
}
if(incomingByte=='L'){
digitalWrite(ledPin,LOW);
}
}
}

Obre el monitor del port sèrie des d’Eines -> Monitor Serial o amb l’icona que hi ha al final de la barra de tasques. Hi ha un quadre d’entrada de text amb el botó enviar al costat. Escriu H al quadre d’entrada i fes clic al botó enviar. S’hauria d’encendre el LED connectat al Pin 13 del teu Arduino. Tecleja L i envia. El LED s’apagarà. Assegura’t d’utilitzar majúscules.

Les ordres utilitzades són:

  • Serial.available(): Comprova si hi ha senyals procedents del port serial. Retorna o bé true (veritable) o false (fals). Llegeix els senyals només quan estiguin disponibles.
  • Serial.read(): Llegeix un byte del port sèrie.

Només volem llegir del port serial quan hi hagi dades entrants. Per tant, primer comprovarem amb Serial.available si hi ha alguna cosa per llegir. En cas afirmatiu, llegirem amb Serial.read() i ho guardarem a incomingByte. Després, comprovarem si incomingByte és igual a ‘H’ o a ‘L’: encenem o apaguem el LED en funció d’això.

Continua experimentant!

  1. Consulta qualsevol dels exemples a Arxiu –> Exemples –> Castilla –> Help. Quasi tots fan ús del port sèrie. Per exemple, controla el programa breath light amb els senyals del port serial.
  2. Si disposes de dues bateries de 9V, fes que un Arduino controli l’altre. L’Arduino que rep els senyals ha de tenir el codi anterior. L’Arduino emissor, ha d’enviar els senyals “H” o “L” alternativament.