Comunicación serial, paralela
Muchas veces necesitamos depurar, o encontrar fallos en nuestro código. Aprender a localizar errores de nuestro código es tan importante como programarlo, para ello Arduino cuenta con el manejo de comunicaciones que permite interacción con un pc o con otros dispositivos que manejen protocolos seriales.
Pero qué es un puerto serie y para qué nos puede servir con nuestra pequeña, pero gran, placa Arduino: Un puerto serie o puerto en serie es una interfaz de comunicaciones de datos digitales, frecuentemente utilizado por computadoras y periféricos, donde la información es transmitida bit a bit, enviando un solo bit a la vez; en contraste con el puerto paralelo que envía varios bits simultáneamente.
Todas las placas Arduino tienen al menos un puerto serie disponible en los pines digitales 0 (RX) y 1 (TX) compartido con el USB. Por lo tanto, no es posible usar estos pines como entradas/salidas digitales.
Arduino dispone de un puerto serie en los pines 0-1, donde el pin 0 es Rx y el pin 1 es Tx. Los pines Tx y Rx estarán internamente conectados al puerto USB, por lo que podremos utilizar el puerto Serie a través del conector USB directamente a nuestra computadora.
Para poder usar la comunicación serial del Arduino, es necesario el uso de varias funciones. La funciones más importantes que debemos conocer para manejar el puerto serie son: begin(), read(), write(), print() y available()
begin() – establece la velocidad de la UART en baudios para la transmisión serie, también es posible configurar el número de bits de datos, la paridad y los bits de stop, por defecto es 8 bits de datos, sin paridad y un bit de stop.[Serial.begin()]
read() – lee el primer byte entrante del buffer serie. [Serial.read ()]
write() – escribe datos en binario sobre el puerto serie. El dato es enviado como un byte o serie de bytes.[Serial.write()]
print() – imprime datos al puerto serie como texto ASCII, también permite imprimir en otros formatos.[Serial.print()]
println()-- Imprime los datos al puerto serie como texto ASCII seguido de un retorno de carro (ASCII 13, o ‘\r’) y un carácter de avance de línea (ASCII 10, o ‘\n’). Este comando tiene la misma forma que Serial.print ().[Serial.println()]
Por ejemplo, si deseamos enviar el valor 81 en formato decimal al PC. El programa sería el siguiente:
Ejemplo comunicación serial
El circuito propuesto consta de un generador de funciones conectado al puerto 5 de un Arduino, la salida del Arduino está conectada a tres leds con su respectiva resistencia limitadora por los puertos 2, 3, 4, El circuito replicará la entrada del puerto 5 en los puertos de salida, adicionalmente los valores de salida serán enviados por puerto serial, para ello usaremos:
• 1 Arduino uno
• 1 Generador de funciones a 5Hz
• 3 Diodos Leds color rojo
• 3 Resistencias 330Ω
• 1 Protoboard
Imprimir por puerto serie