Está en la página 1de 5

La transferencia serie en Arduino.

Siga el enlace para saber ms


1 http://arduino.cc/en/Reference/serial
2 http://www.ladyada.net/learn/arduino/lesson4.html
Programacin de MATLAB. Para obtener ms informacin, vaya a
1 http://users.ece.gatech.edu/bonnie/book/TUTORIAL/
tut_1.html
2 http://www.mathworks.in/help/techdoc/matlab_
product_page.html
Usted debe estar familiarizado con las estructuras de MATLAB, objetos, etc
Conceptos bsicos de programacin.
Serial Communication
De serie significa "Uno tras otro".
La comunicacin en serie es cuando transferimos datos un bit a la tiempo, uno despus del
otro.
La informacin pasa hacia atrs y adelante entre el ordenador y Arduino por, esencialmente,
el establecimiento de un alfiler alto o bajo.
Al igual que nos volvemos un LED y o?, Tambin podemos enviar datos.
Un lado establece el pasador y el otro lo lee.
MATLAB puede leer / enviar datos desde / hasta el puerto serie de la computadora y
procesarla.
Buffer
Es ms importante para entender la naturaleza de BUFF ER para evitar errores ms tarde al
escribir cdigos.
Existe una BUFF ER entre los dos eventos de enviar y leer los datos.
Digamos que un sensor est fluyendo de nuevo los datos de su programa, con ms frecuencia
que su programa lo lee.
Luego los datos se almacenan en una lista que llamamos un BUFFER.
Uno escribe datos en l y otra lo lee, puede ser con diferentes velocidades.
BUFFER son de longitud infinita.

Configuracin de puerto serie de objetos
Esta lnea de comando slo construye el objeto. No comprueba / setup / inicializar la
comunicacin.
Este comando funcionar incluso si el puerto serie no est conectado a ningn dispositivo.
Muchos objetos pueden ser creados para un puerto serie, pero slo uno se pueden conectar a
la vez. (Veremos ms adelante)
Esto muestra todas las propiedades del objeto puerto serie construida.
En MATLAB, s es una estructura que tiene todas las propiedades anteriores. Podemos acceder
/ modificar utilizando punto (.) Operador.
Tenga en cuenta que el Estado est cerrado. Esto implica que el puerto serie no est
conectado.
BaudRate
Es la tasa de transferencia de los datos en bits / seg.
Podemos cambiar la velocidad de transmisin utilizando el mtodo set de la siguiente manera-
>> set(s, 'BaudRate', 4800);
>> s.BaudRate = 4800;
Tambin puede configurar la velocidad en baudios diferente al tiempo que el objeto del puerto
serie de la siguiente manera-
>> s = serial('COM1','BaudRate', 4800);
Usted puede verificar el cambio utilizando get mtodo
>> get(s, 'BaudRate')
ans = 4800
Lo siguiente tambin se mostrar el resultado similar
>> s.BaudRate
ans = 4800
Tambin puede hacer lo siguiente para verificar el cambio-
>> s
Serial Port Object : Serial-COM1
Communication Settings
Port: COM1
BaudRate: 4800
Terminator: 'LF'
Communication State
Status: closed
RecordStatus: o_
Read/Write State
TransferStatus: idle
BytesAvailable: 0
ValuesReceived: 0
ValuesSent: 0
Tenga en cuenta el nuevo valor de BaudRate muestra.
Properties of Serial port object
Como ya hemos dicho que s es de tipo de datos MATLAB llamada estructura (similar a las
estructuras en C + +).
Hay un montn de flexibilidad MATLAB proporciona para cambiar las propiedades del objeto
de puerto serie.
Los comandos son similares a lo que hemos utilizado para BaudRate.
Utilice siguiente comando para enumerar abajo de todas estas propiedades y su valor actual-
>> get(s)
Para ver los valores posibles de todas estas propiedades, utilice-
>> set(s)
Setup the connection
Antes de que realmente escribir los datos en el puerto serie, debe conectarse al dispositivo.
Esto es como una cerradura de JAVA. Slo una entidad puede adquirir el bloqueo a la vez.
Utilice fopen adquirir el bloqueo y la configuracin de la conexin.
>> fopen(s)
Observe la propiedad de estado del puerto serie objeto-
>> s.Status
ans = open
Si el bloqueo ya est adquirido, fopen dar un error.
Para evitar el error, compruebe primera la propiedad Status del objeto puerto serie. Si est
cerrado luego tratar de configurar la conexin.




Writing to the Serial Port in MATLAB
Escribir en el puerto serie en MATLAB
MATLAB puede escribir cualquier tipo de datos en el puerto serie binaria, string, int, avena etc
con precisin especificada.
Utilizamos fwrite o fprintf para escribir datos.
Transferir una matriz de int / float
>> fwrite(s, vector array, 'precision');
La especificacin de precisin es el tipo de datos de la matriz de vectores. Puede ser
'int8', 'int16', 'oat32', 'oat64', 'uint8', 'char' etc.
String-
>> fwrite(s, 'string');
Usted puede utilizar fprintf para cuerdas, as-
>> fprintf(s, 'string');
Puede especificar el formato en el fprintf para una cadena.
Reading from Serial Port in MATLAB
Lectura de puerto serie en MATLAB.
fscanf se utiliza para leer los datos-
>> data = fscanf(s);
Esto leer todos los datos hasta que encuentra una nueva lnea / Terminator.
Es por eso que utilizamos println en lugar de print.
Siguiendo este procedimiento usted estar leyendo todos los datos enviados en un comando
de Serial.println a la vez.
En este caso, MATLAB convierte automticamente los datos en el formato correcto y lo
almacena en la variable de MATLAB.
Si no hay datos para leer, se producir una salida.
Reading from Serial Port in MATLAB
Para evitar el tiempo de espera, puede rst compruebe la propiedad del objeto bytesAvailable
puerto serie al igual que lo hicimos en Arduino-
>> if s.BytesAvailable > 0
data = fscanf(s);
end