QU ES EL PUERTO DE
SERIE?
Un puerto es el nombre genrico con que denominamos a los
interfaces, fsicos o virtuales, que permiten la comunicacin entre dos
ordenadores o dispositivos.
Antes de conectar dos sistemas debemos comprobar que los voltajes empleados
son compatibles. En caso de no serlo, necesitaremos un subsistema que adapte los
niveles de la seal, o podemos daar alguno de los dispositivos.
ARDUINO Y EL PUERTO
DE SERIE
Prcticamente todas las placas Arduino disponen al menos de una
unidad UART. Las placas Arduino UNO y Mini Pro disponen de una unidad
UART que operan a nivel TTL 0V / 5V, por lo que son directamente
compatibles con la conexin USB. Por su parte, Arduino Mega y Arduino
Due disponen de 4 unidades UART TTL 0V / 5V.
En Arduino UNO y Mini Pro los pines empleados son 0 (RX) y 1 (TX). En
el caso de Arduino Mega y Arduino Due el puerto de serie 1 est conectado
a los pines 0 (RX) y 1 (TX), el puerto de serie 1 a los pines 19 (RX) y 18 (TX) el
puerto de serie 2 a los pines 17 (RX) y 16 (TX), y el puerto serie 3 a los pines
15 (RX) y 14 (TX).
CDIGOS DE EJEMPLO
RECIBIR INFORMACIN DESDE
EL ARDUINO
En este primer cdigo vamos a recibir el valor de un contador enviado
desde la placa Arduino. Este valor se incrementa cada segundo. Podemos
observar como se reciben los valores desde del monitor serial.
1
3 int cont=0;
5 void setup(){
7 Serial.begin(9600);
8 }
1 void loop(){
0
//Imprimimos el valor del contador
1
1 Serial.print("Contador: ");
1 Serial.println(cont);
2
1
//incrementamos el contador y esperamos un segundo
3
cont++;
1
4 delay(1000);
1 }
5
1
6
ENVIAR INFORMACIN AL
ARDUINO
En este ejemplo empleamos el puerto de serie para encender o apagar
el LED integrado en la placa Arduino. Para ello enviamos un carcter a la
placa Arduino, empleando el monitor serial. En caso de enviar a la placa
Arduino apaga el LED, y en caso de enviar b lo enciende.
1 int option;
4 void setup(){
5 Serial.begin(9600);
6 pinMode(led, OUTPUT);
7 }
9 void loop(){
1 option=Serial.read();
2
if(option=='a') {
1
digitalWrite(led, LOW);
3
Serial.println("OFF");
1
4 }
1 if(option=='b') {
5
digitalWrite(led, HIGH);
1
6 Serial.println("ON");
1 }
7
}
1
8 }
1
9
2
0
2
1
2
2
2
3
1 int option;
4 void setup(){
5 Serial.begin(9600);
6 pinMode(led, OUTPUT);
7 }
9 void loop(){
1
2
1
3
1 if (Serial.available()>0){
4
//leeemos la opcion
1
5 char option = Serial.read();
2 digitalWrite(led, LOW);
1
delay(200);
2
2 }
2 }
3
}
2
4 }
2
5
2
6
2
7
Hasta aqu los ejemplos bsicos. No obstante, el puerto serie no es la
nica forma de comunicacin en Arduino. Otros sistemas importantes de
comunicacin entre dispositivos son el bus SPI y el bus I2C.