Sei sulla pagina 1di 5

Registro de datos con Arduino y C#

por medio del puerto serial


2012/09/18 por Carlos Ramos 22 comentarios

0
inShare

En esta entrada se plantea el desarrollo de un pequeo programa en C# para leer


datos provenientes de un Arduino UNO, con la posibilidad de pausar y reanudar
el envo.

El cdigo para Arduino


El cdigo de Arduino es simple, basado en los ejemplos de lectura de sensor
anlogo y lectura de puerto serial:

La variable enviar permite saber cuando se envirn datos a travs del


puerto serial.

La funcin recibirDatos (lneas 19 a 30) se encargar de cambiar el


valor de la bandera enviar en base a los datos provenientes de la
aplicacin en C#.

En la funcin loop (8 a 15) nos encargamos de enviar los datos


pertinentes en caso de tener activada la bandera enviar.
Listado 1: Cdigo para Arduino UNO.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

//Bandera para saber si debemos enviar datos.


bool enviar = false;
void setup() {
Serial.begin(9600);
}
void loop() {
recibirDatos();
if (enviar == true){
int sensor = analogRead(A0);
Serial.println(sensor);
}
delay(100);
}
//Recibimos los datos del programa de C# con el fin
//de determinar si debemos enviar o no datos.
void recibirDatos(){
if (Serial.available() > 0){
int recibido = Serial.read();
// El nmero 49 equivale a "1", equivale a comenzar el envo.
// El nmero 50 equivale a "2", equivale a pausar envo.
if (recibido == 49){
enviar = true;
}else if (recibido == 50){
enviar = false;
}
}
}

La aplicacin en C#
En la figura 1 se muestra la interfaz inicial del programa, la cual permite
determinar en cual puerto se encuentra conectada la tarjeta y la velocidad de

transmisin (o baud rate). Adems, muestra el estado de la conexin en la parte


inferior de la pantalla.

Figura 1: Arduino Logger - pantalla inicial.

Tras presionar "Archivo - Conectar con Arduino", se habilitan los botones de


control: Play (iniciar registro) y Stop (terminar conexin). El botn Play se
convierte en Pausa, y viceversa.

Figura 2: Leyendo datos desde Arduino.

Al finalizar la conexin se habilitan las ltimas dos opciones: Limpiar registro,


utilizada para eliminar todos los datos capturados; yGuardar registro, utilizada
para almacenar los datos en un archivo en disco.

El cdigo fuente
El proyecto completo est disponible para su descarga (gracias al bonito botn
que hay debajo) y est protegido por la licencia LGPL3 (por lo cual puedes
utilizarlo en cualquier proyecto o modificarlo sin consultarme, aunque las
contribuciones siempre son bienvenidas).
Descargar Arduino Logger de Google Code
Arduino Logger fue realizado utilizando Visual Studio 2010, aunque no debe
haber problema si se utiliza #develop u otro IDE. En caso de dudas o aportes al
proyecto, no dudes en comentar.

Encuesta
Para este proyecto asum la lectura de un solo sensor, capturando nicamente ese
dato. Para diversos proyectos se puede incluir ms informacin, como la hora de
la medicin, el nmero de muestra, o el valor de mltiples dispositivos (digitales
y anlogos). Con el objetivo de hacer crecer el proyecto, quisiera saber un poco
del para qu ests usando este programa:

Cules son los datos que necesitas almacenar?

Existen ms funciones que consideres pertinentes para la aplicacin?

Qu tipo de grficas o informacin esperas obtener a la salida


(histogramas, de pastel) y cmo la obtendrs (MATLAB, gnuplot)?

Potrebbero piacerti anche