Arduino Excel
Arduino Excel
Arduino Excel
com/enviar-datos-arduino-a-excel-tiempo-real/
Cmo Enviar Datos De Arduino A Excel En Tiempo
Real
Si ests leyendo esto seguramente no haga falta que te hable de las bondades de Excel. A la
hora de trabajar con datos, Excel te proporciona una gran versatilidad y mejor presentacin de
la informacin. Es por eso que en este post te voy a ensear cmo enviar datos de Arduino
a Excel en tiempo real.
Contenidos de este post [ocultar]
1 Cmo Enviar Datos De Arduino A Excel En Tiempo Real
o 1.1 Exportar Datos De Arduino A Excel.
1.1.1 Cmo Configurar Arduino Para Mandar Informacin A Excel.
1.1.1.1 Cdigo Para Mandar El Valor De Un Sensor De Arduino A
Excel.
1.1.2 Cmo Configurar Excel Para Recibir Informacin Por El USB.
1.1.2.1 Cmo Poner La Librera En Una Hoja De Excel Habilitada
Para Macros.
1.1.2.2 Cmo Implementar Funciones En VBA Para Leer El Puerto
USB.
1.1.2.3 Qu Funciones Crear Para Leer Los Datos Enviados De
Arduino A Excel.
1.1.3 Libro De Excel Que Lee La Informacin Enviada De Arduino A Excel.
1.1.4 Informacin Adicional.
1.1.4.1 19 Comentarios
Las Macros son bsicamente programas escritos en VBA cuyas instrucciones pueden
ser ejecutadas por Excel. Si te gusta trabajar con Excel, te recomiendo encarecidamente
que le des una oportunidad a las Macros. Las Macros llevan a Excel al siguiente nivel,
permitindote hacer cosas que ni te imaginas. Hay un sin fin de posibilidades!
Volviendo al tema, a nosotros lo que nos interesa es enviar datos de Arduino a Excel. Para ello
he utilizado una librera creada por David M. Hitchner y adaptada para trabajar con 64bits
por Hal Evensen. El trabajo duro de verdad es el suyo, as que no puedo ms que mostrarles
mi gratitud a estos autnticos profesionales. Lo nico que yo he hecho es utilizar su trabajo (al
cul, por cierto, se le puede sacar mucho ms partido del que le he sacado yo).
Y ya que estoy de agradecimientos, tengo que decir que los chicos de Arduino.cc tambin
han puesto su granito de arena a la hora de ayudarme con esto de enviar datos de Arduino a
Excel. Un usuario muy activo del foro de nick Lucario448 me ayud ver dnde estaba el error
de uno de los cdigos que estuve probando As que si lo veis por ah dadle un saludo de mi
parte! smile
Cmo Poner La Librera En Una Hoja De Excel Habilitada Para Macros.
Como te acabo de comentar, este pequeo trabajo de enviar informacin de Arduino a Excel
se basa en el gran trabajo de David M. Hitchner. El primer paso ser aadir su librera a tu
libro de Excel.
Para incorporar la librera a tu hoja de Excel debes descargrtela. Para ello tienes dos
opciones:
1. Descargarte la librera desde la web de Hal Evensen: sta debera ser tu opcin
principal. Aunque solo sea por ver su trabajo y proporcionarle algo ms de trfico a su web.
2. Si no te manejas bien con el ingls, te dejo el archivo aqu: vba_com_port. Me gustara
que utilizases esta opcin solo si no te ves capaz de manejarte en su web. Recuerda que el
trabajo que vas a utilizar es suyo.
Una vez te descargues el archivo, vers que se trata de un documento con extensin .bas.
En l encontrars implementadas las funciones que se utilizarn en el proyecto (ms unos
cuantos aadidos). Para agregarlas en tu libro de Excel basta con que vayas a la seccin
Desarrollador > Importar y selecciones el archivo .bas. A partir de ese momento
podrs ver la informacin dndole al botn Visual Basic.
Si abres la librera vers todas las funciones que tiene implementadas. Si te fijas, vers
que dispones de herramientas no solo para enviar datos de Arduino a Excel, sino
tambin para recibirlos.
Originalmente quera hacer un post ensendote tanto a enviar informacin de Arduino a
Excel como al revs. sta librera no solo lo permite, sino que lo deja fcil. Te permite incluso
ver el estado de los pines habituales en el envo y recepcin de datos por el puerto serie.
El problema est en que estas facilidades que te proporciona la librera no te las proporciona
Arduino. Tuve problemas de sincronizacin. En cualquier caso, no desisto. Cuando solucione
los problemas que tengo, te traigo el resultado. Eso s, de momento me voy a tomar un
descanso de puertos serie y de enviar informacin de Arduino a Excel y de Excel a
Arduino. smile
Cmo Implementar Funciones En VBA Para Leer El Puerto USB.
Si has abierto la librera (y sabes algo de VBA), seguramente te habrs dado cuenta de que lo
que he hecho para enviar datos de Arduino a Excel es bastante cutre teniendo en cuenta las
herramientas disponibles.
Para sincronizar la informacin he utilizado un simple delay() de Arduino. Todo esto a pesar de
que siempre te recomiendo que evites los delay() (puedes ver por qu aqu). Como te he
dicho, no era la idea inicial. sad
En el caso de VBA, la cosa est ms o menos igual. Entre que no tengo mucha experiencia
con el lenguaje de programacin y los problemas de sincronizacin al final he optado por no
complicarme mucho.
Lo que he hecho ha sido asociar funciones a botones de Excel. Si t tampoco tienes amplios
conocimientos de VBA y quieres aplicar el mismo procedimiento que yo, basta con que vayas
a la pestaa Desarrollador > Insertar > Controles de ActiveX > Botn de comando. Una
vez pulses sobre esa opcin, podrs dibujar tu botn.
Cuando tengas el botn dibujado, puedes hacer click derecho sobre l y darle a la opcin Ver
Cdigo para agregarle funciones al botn. Ten en cuenta que para hacer esto tendrs que
tener la opcin Modo Diseo activada. Cuando vayas a enviar informacin de Arduino a
Excel y quieras leerla, tendrs que desactivar este modo.
Informacin Adicional.
Por si todava no te has saturado de Excel, te cuento ms cosas. smile
Como te he dicho, he tenido bastantes problemas para hacer esto. Te presento este modelo
porque es el ms estable, pero tambin el ms simpln.
La verdad es que subo este contenido con mal sabor de boca. Tena muchas y muy buenas
ideas sobre cmo mejorar el envo y recepcin de datos de Arduino a Excel La cosa est en
que ya le he dedicado demasiado tiempo, tengo otras cosas que hacer y he perdido un poco
la motivacin. A lo mejor ms adelante. smile
Te cuento algunas de las cosas que he probado al intentar gestionar la informacin de Arduino
a Excel por si quieres mejorar mi proyecto: smile
Familiarzate con las funciones Serial.flush() para gestionar el Buffer de Arduino.
Utiliza Serial.read() para limpiar el Buffer de Arduino si vas a enviarle informacin.
while(Serial.available()==){} puede serte til para hacer que Arduino espere a que se le
enve un dato.
No olvides que tanto Arduino como Excel tienen que estar trabajando a los mismos
baudios.
Recuerda cambiar el cdigo del puerto de los botones de Excel para que se ajuste al
de tu placa (ID_Puerto). Por defecto es 3.
Juega con el valor del delay() si ves que se copia ms de un dato por celda o no se
copian bien.
Modifica la funcin dtostrf() para que se ajuste al tipo de dato que quieres mandar de
Arduino a Excel.
La funcin MsgBox puede serte til para encontrar errores en el Excel. Tambin la
variable estado.
Recuerda que primero debes abrir el puerto, luego leer y por ltimo cerrarlo.
No leas el puerto hasta que Arduino no le est enviando informacin a Excel.
Las funciones Left() y Mid() de VBA pueden serte tiles para gestionar las cadenas de
caracteres.
Analiza el resto de herramientas de la librera. Puede que ah est tu solucin.
La informacin relativa al envo de seales con RS-232 es bastante similar a lo que
ests haciendo. Puede serte til mirar la teora.
Ten paciencia si no te sale bien a la primera. La clave siempre est en los
detalles.