Está en la página 1de 9

Programación de Arduino

Comunicación Serial Arduino

CEFEI
Juan R Vizcaya R
USART
 Unidad Sincrónica Asincrónica de Recepción Transmisión serial.
 Transmisión y recepción Independiente(Full Duplex)
 Modo Sincróno y Asíncrono
 Modo Sincróno: Maestro_Esclavo.
 Generador de alta resolución de Baud rate.
 Soporta tramas con 5, 6, 7, 8 o 9 bits de datos y 1 o 2 bits de para-
da.
 Generación de paridad Par o Impar y Chequeo por hardware.
 Detección de sobreescritura datos (OverRun).
 Detección de de error en la trama.
 Filtrado de ruido incluido, detección de bit de inicio falso y filtro
pasa-bajo ideal.
 Tres interrupciones separadas: Finalización de Tx, Registro de da-
tos vacío Tx, Recepción Completa Rx.
 Modo de comunicación Multiprocesador.
 Modo de comunicación de doble velocidad Asíncrona
Funciones
 Serial.begin(data): abre el puerto serial, habilita el pin 0
como RX y el 1 como TX. Trama :8 bits de datos, 1 bit de
inicio, 1 bit de parada, sin paridad.
 data: velocidad de transmisión en bps. [300, 1200, 2400,
4800, 9600,14400, 19200, 28800, 38400, 57600, 115200]
 if (Serial) : indicada si el puerto serial esta conectado a la
PC por USB CDC.
 Serial.available(): retorna el numero de bytes recibido por
el puerto serial. Los datos son recibidos en un buffer de
64 bytes.
 Serial.end(): cierra el puerto serial, habilita los pines 0 y 1
como E/S digitales.
Funciones
 Serial.read(): retorna un dato tipo entero (int) recibido
desde el puerto serie (cuando el dato es leído se elimina
del buffer).
 Serial.flush(); limpia el buffer.
 Serial.print(data); transmite data por el puerto serial en
formato Ascii, legible parar el ser humano.
 Ejemplos:
 Serial.print(78) muestra "78"
 Serial.print(1.23456) muestra "1.23", por defecto dos luga-
res decimales.
 Serial.print('N') muestra "N"
 Serial.print("Hello world.") muestra "Hello world."
Funciones
 Serial.print(data,M) : M parámetro opcional, muestra data
en el formato especificado por. BIN, OCT, DEC, HEX. Bi-
nario, Octal, Decimal, Hexadecimal, respectivamente.
Para numeros flotantes, indica el numero de lugares de-
cimales.
 Ejemplos:
 Serial.print(78, BIN) muestra "1001110"
 Serial.print(78, OCT) muestra "116"
 Serial.print(78, DEC) muestra "78"
 Serial.print(78, HEX) muestra "4E"
 Serial.print(1.23456, 0) muestra"1"
 Serial.print(1.23456, 2) muestra"1.23"
 Serial.print(1.23456, 4) muestra"1.2346"
Funciones
 Serial.println(data) : transmite data por el puerto serial en
formato Ascii, legible parar el ser humano seguido por
una salto de carro (ASCII 13, o '\r') y un salto de linea,
(ASCII 10, o '\n').
 Serial.println(data,M): M parámetro opcional, similar a Se-
rial.println(data,M).
 Serial.write(data) , Serial.write(str), Serial.write(buf, len) :
transmite data por el puerto serial en formato binario,
byte o series de bytes.
 Parámetros:
 data: dato tipo byte, str: series de bytes, buf: un arreglo o
series de bytes, len: longitud del buffer.
 Retorna: el numero de bytes escritos en el puerto serial.
Funciones
 Serial.println(data) : transmite data por el puerto serial en
formato Ascii, legible parar el ser humano seguido por
una salto de carro (ASCII 13, o '\r') y un salto de linea,
(ASCII 10, o '\n').
 Serial.println(data,M): M parámetro opcional, similar a Se-
rial.println(data,M).
 Serial.write(data) , Serial.write(str), Serial.write(buf, len) :
transmite data por el puerto serial en formato binario,
byte o series de bytes.
 Parámetros:
 data: dato tipo byte, str: series de bytes, buf: un arreglo o
series de bytes, len: longitud del buffer.
 Retorna: el numero de bytes escritos en el puerto serial.
Ejemplo 5
/* created 24 March 2006, by Tom Igoe */
int analogValue = 0; // variable to hold the analog value
void setup() {
// open the serial port at 9600 bps:
Serial.begin(9600);
}
void loop() {
analogValue = analogRead(0);
Serial.println(analogValue); // print as an ASCII-encoded decimal
Serial.println(analogValue, DEC); // print as an ASCII-encoded decimal
Serial.println(analogValue, HEX); // print as an ASCII-encoded hexadecimal
Serial.println(analogValue, OCT); // print as an ASCII-encoded octal
Serial.println(analogValue, BIN); // print as an ASCII-encoded binary
delay(200); // delay 200 milliseconds before the next reading:
}
Simulación
 Para el ejemplo 5, escriba, verifique y compile el
SKETCH en el IDE ARDUINO, siga las instruc-
ciones del facilitador.
 En el escritorio del PC, abra el archivo de proteus
ejemplo5 en la carpeta curso_arduino\ejemplo5\
 Simule siguiendo las instrucciones del facilitador.

También podría gustarte