Anda di halaman 1dari 29

¿Qué es Arduino?

Arduino es una herramienta para hacer que los ordenadores puedan sentir y
controlar el mundo físico a través de tu ordenador personal. Es una
plataforma de desarrollo de computación física (physical computing) de
código abierto, basada en una placa con un sencillo microcontrolador y un
entorno de desarrollo para crear software (programas) para la placa.

Puedes usar Arduino para crear objetos interactivos, leyendo datos de una
gran variedad de interruptores y sensores y controlar multitud de tipos de
luces, motores y otros actuadores físicos. Los proyecto de Arduino pueden
ser autónomos o comunicarse con un programa (software) que se ejecute en
tu ordenador (ej. Flash, Processing, MaxMSP). La placa puedes montarla tu
mismo o comprarla ya lista para usar, y el software de desarrollo es abierto y
lo puedes descargar gratis.

El lenguaje de programación de Arduino es una implementación de Wiring,


una plataforma de computación física parecida, que a su vez se basa en
Processing, un entorno de programación multimedia.

¿Por qué Arduino?

Hay muchos otros microcontroladores y plataformas con microcontroladores


disponibles para la computación física. Parallax Basic Stamp, BX-24 de
Netmedia, Phidgets, Handyboard del MIT, y muchos otros ofrecen
funcionalidades similares. Todas estas herramientas organizan el complicado
trabajo de programar un microcontrolador en paquetes fáciles de usar.
Arduino, además de simplificar el proceso de trabajar con microcontroladores,
ofrece algunas ventajas respecto a otros sistemas a profesores, estudiantes y
amateurs:

Asequible - Las placas Arduino son más asequibles comparadas con


otras plataformas de microcontroladores. La versión más cara de un
modulo de Arduino puede ser montada a mano, e incluso ya montada
cuesta bastante menos de 90 dólares americanos
Multi-Plataforma - El software de Arduino funciona en los sistemas
operativos Windows, Macintosh OSX y Linux. La mayoría de los
entornos para microcontroladores están limitados a Windows.
Entorno de programación simple y directo - El entorno de
programación de Arduino es fácil de usar para principiantes y lo
suficientemente flexible para los usuarios avanzados. Pensando en los
profesores, Arduino está basado en el entorno de programación de
Procesing con lo que el estudiante que aprenda a programar en este
entorno se sentirá familiarizado con el entorno de desarrollo Arduino.
Software ampliable y de código abierto- El software Arduino esta
publicado bajo una licencia libre y preparado para ser ampliado por
programadores experimentados. El lenguaje puede ampliarse a través
de librerías de C++, y si se está interesado en profundizar en los
detalles técnicos, se puede dar el salto a la programación en el
lenguaje AVR C en el que está basado. De igual modo se puede
añadir directamente código en AVR C en tus programas si así lo
deseas.
Hardware ampliable y de Código abierto - Arduino está basado en
los microcontroladores ATMEGA168, ATMEGA328 y ATMEGA1280.
Los planos de los módulos están publicados bajo licencia Creative
Commons, por lo que diseñadores de circuitos con experiencia pueden
hacer su propia versión del módulo, ampliándolo u optimizándolo.
Incluso usuarios relativamente inexpertos pueden construir la versión
para placa de desarrollo para entender cómo funciona y ahorrar algo
de dinero.

¿Cómo uso Arduino?

Los textos de la guía "Como empezar con Arduino" están licenciados bajo
Creative Commons Attribution-ShareAlike 3.0 License. El código fuente de los
ejemplos en la guía están liberados como dominio público.

Comenzando con Arduino en Windows

Este documento explica cómo conectar tu placa Arduino al ordenador y volcar


el código de tu primer programa.

1 | Consigue un Arduino y un cable USB


2 | Descarga el IDE de Arduino
3 | Conecta la placa
4 | Instala los drivers
5 | Ejecuta la Aplicación Arduino
6 | Abre el ejemplo Blink
7 | Selecciona tu placa
8 | Selecciona tu puerto serie
9 | Sube el sketch a la placa

1 | Consigue un Arduino y un cable USB

En este tutorial asumimos que estás usando un placa Arduino Duemilanove,


Nano o Diecimila. Si tienes cualquier otra placa necesitas leer la página
correspondiente a la placa que uses en esta guía de iniciación.

También necesitarás un cable estandar USB (conexión A a conexión B),


como los que se usan para conectar, por ejemplo, una impresora USB. (En el
caso de la placa Arduino Nano necesitarás un cable de conexión A a
conexión mini-B).
Fotos cortesía de SparkFun Electronics.

2 | Descarga el IDE de Arduino

Descarga la última versión de la página de descargas.

Cuando la descarga finalice, descomprime el fichero. Asegúrate de mantener


la estructura de directorios. Haz doble click en la carpeta arduino-00XX para
abrirla. Deberías ver una serie de ficheros y carpetas ahí dentro.

En el CD que acompaña a esta obra se e cnuentran los programas para


Windows, Macintosh y Linux. Al finalizar este texto se indica cómo
descargarlo desde la web

3 | Conecta la placa

Conecta la placa Arduino a tu ordenador usando el cable USB. el LED verde


indicador de la alimentación (nombrado como PWR en la placa) debería
quedar encendido a partir de ese momento.

Si estás usando una placa Arduino Diecimila, necesitarás asegurarte de que


la placa está configurada para alimentarse mediante la conexión USB. La
fuente de alimentación se selecciona con un puente ("jumper"), una pequeña
pieza de plástico que encaja en dos de los tres pins situados entre las
conectores USB y de alimentación de la placa. Comprueba que el puente
esté conectando los dos pins más cercanos al puerto USB de la placa.

En las placas Arduino Duemilanove y Arduino Nano la fuente de alimentación


adecuada se selecciona de forma automática y no requiere de realizar
ninguna comprobación en este sentido.

4 | Instala los drivers

Cuando conectas la placa, Windows debería inicializar la instalación de los


drivers (siempre y cuando no hayas utilizado ese ordenador con una placa
Arduino anteriormente).

En Windows Vista y Windows 7, los drivers deberían descargarse e instalarse


automáticamente.

En Windows XP, se abrirá el diálogo de instalación de Nuevo Harware:

Cuando te pregunten: ¿Puede Windows conectarse a Windows


Update para buscar el software? selecciona No, no esta vez. Haz click
en Siguiente.
Selecciona Instalar desde una lista o localización específica
(Avanzado) haz click en Siguiente.
Asegurate que Buscar los mejores drivers en estas localizaciones esté
seleccionado; deselecciona Buscar en medios removibles; selecciona
Incluye esta localización en la búsqueda y navega al directorio
drivers/FTDI USB Drivers dentro de la carpeta de Arduino que has
descomprimido previamente. (La versión más reciente de los drivers
se puede encontrar en la página web del fabricante delchip FTDI.) Haz
click en Siguiente.
El asistente de instalación buscará los drivers y te anunciará que
encontró un "USB Serial Converter" (se traduce por Conversor USB-
Serie). Haz click en Finalizar.
El asistente de instalación de hardware volverá a iniciarse. Repite los
mismos pasos que antes y selecciona la misma carpeta de instalación
de los drivers. Esta vez el sistema encontrará un "USB Serial Port" (o
Puerto USB-Serie).

Puedes comprobar que los drivers se han instalado correctamente abriendo


la carpeta del Administrador del Dispositivos, en el grupo Dispositivos del
panel de control del sistema. Busca "USB Serial Port" (o Puerto USB-Serie)en
la sección de puertos; esa es tu placa Arduino.

5 | Ejecuta la Aplicación Arduino

Haz doble click en la aplicación Arduino.

6 | Abre el ejemplo Blink

Abre el programa de ejemplo para hacer parpadear un LED ("LED blink"): File
> Examples > Digital > Blink.
7 | Selecciona tu placa
Necesitarás seleccionar el tipo de placa de tu Arduino en el menu Tools >
Board. Para las nuevas placas Arduino con el chip ATmega 328 (comprueba
el texto escrito en el chip de la placa), selecciona la opción Arduino
Duemilanove or Nano w/ ATmega328 del menú desplegable. Anteriormente
las placas Arduino incluían un chip ATmega 168; para estos casos selecciona
la opción Arduino Diecimila, Duemilanove, or Nano w/ ATmega168. (Se
puede encontrar más detalles sobre los dispositivos de entrada de las placas
en el menú desplegable en la página del entorno arduino.)

8 | Selecciona tu puerto serie

Selecciona el dispositivo serie de la placa Arduino en el menú Tools | Serial


Port (Herramientas | Puertos Serie). Lo más probable es que sea COM3 o
mayor (COM1 y COM2 se reservan, por regla general para puertos serie de
hardware). Para asegurarte de cual es, puedes desconectar la placa y volver
a mirar el menú; el puerto de la placa habrá desaparecido de la lista.
Reconecta la placa y selecciona el puerto apropiado.

9 | Sube el sketch a la placa

Ahora simplemente pulsa sobre el botón "Upload" en el Entorno Arduino.


Espera unos pocos segundos - deberías ver parpadear los led RX y TX de la
placa. Si el volcado del código es exitoso verás aparecer el mensaje "Done
uploading" en la barra de estado. (Aviso: Si tienes una placa Arduino Mini, NG,
u otras placas, necesitarás presionar el boton de reseteo de la placa
inmediatamente antes de presional el botón "Upload" el Entorno de
programación Arduino.)
Unos pocos segundos despues de finalizar el volcado del programa deberías
ver cómo el led de la placa conectado al pin 13 (L) comienza a parpadear
(con un color naranja). Si ocurre esto ¡enhorabuena! Ya tienes tu Arduino listo
y funcionando.

Si tienes problemas, por favor, consulta nuestras sugerencias ante problemas.

A partir de ahora también podrás encontrar interesante consultar:

Los ejemplos sobre el funcionamiento de distintos sensores y


dispositivos.
La sección reference para conocer el lenguaje de programación
Arduino.

Los textos de la guía "Como empezar con Arduino" están licenciados bajo
Creative Commons Attribution-ShareAlike 3.0 License. El código fuente de los
ejemplos en la guía están liberados como dominio público.

Entorno de Desarrollo para Arduino

Puede visitar el siguiente enlace:

http://arduino.cc/es/Guide/Environment

El entorno de Desarrollo Arduino está constituido por un editor de texto para


escribir el código, un área de mensajes, una consola de texto, una barra de
herramientas con botones para las funciones comunes, y una serie de
menús. Permite la conexión con el hardware de Arduino para cargar los
programas y comunicarse con ellos.

Arduino utiliza para escribir el software lo que denomina "sketch" (programa).


Estos programas son escritos en el editor de texto. Existe la posibilidad de
cortar/pegar y buscar/remplazar texto. En el área de mensajes se muestra
información mientras se cargan los programas y también muestra errores. La
consola muestra el texto de salida para el entorno de Arduino incluyendo los
mensajes de error completos y otras informaciones. La barra de herramientas
permite verificar el proceso de carga, creación, apertura y guardado de
programas, y la monitorización serie:

Verify/Compile 
Chequea el código en busca de errores.


Stop 
Finaliza la monitorización serie y oculta otros botones
New 
Crea un nuevo sketch.
Open 
Presenta un menú de todos los programas sketch de su "sketchbook",
(librería de sketch) . Un click sobre uno de ellos lo abrirá en la ventana actual.
Nota: Debido a un error bug en Java, la barra de desplazamiento scroll no
funciona en este menú; si necesita abrir un programa que no se vea en la lista,
utilice File | Sketchbook en el menú.
Save 
Salva el programa sketch.
Upload to I/O Board 
Compila el código y lo vuelca en la placa E/S de Arduino.
Ver Volcado más detalles abajo.
Serial Monitor 
Inicia la monitorización serie Monitorización Serie.

Encontrará otros comandos en los cinco menús: File, Edit, Sketch, Tools,
Help. Los menús son sensibles al contexto, lo que significa que estarán
disponibles sólo los elementos relevantes para la tarea que este realizando
en ese momento.

Edit

Copy for Discourse 
Copia el código de su sketch en el portapapeles


para con el formato adecuado para publicarlo en un foro, incluyendo la
sintaxis coloreada.
Copy as HTML 
Copia el código de un programa(sketch) al
portapapeles en formato HTML, adecuándolo para incrustarlo en una
página web.
Sketch

Verify/Compile 
Verifica los errores de su programa (sketch)


Import Library 
Añade una librería a su programa(sketch) insertando la
sentencia #include en el código. Para más detalles ver Librerías más
abajo.
Show Sketch Folder 
Abre la carpeta de programas (sketch) en el
escritorio.
Add File... 
Añade un fichero fuente al programa (se incluirá desde su
ubicación actual). El fichero aparece en una nueva pestaña en la
ventana del programa. Los ficheros pueden ser quitados del programa
(sketch) utilizando el menú "tab".
Tools

Auto Format 
Da formato al código proporcionando estética: por


ejemplo realiza tabulaciones entre la apertura y cierre de llaves, y las
sentencias que tengan que ser tabuladas lo estarán.
Board 
Selecciona la placa que estás usuando. Ver más abajo
Descripción de las placas.
Serial Port 
Este menú contiene todos los dispositivos serie (reales o
virtuales) de su equipo. Se refrescará automáticamente cada vez que
abras el menú tools.
Burn Bootloader 
Este elemento del menú le permite grabar un gestor
de arranque (bootloader) dentro del microcontrolador de la placa
Arduinio. Aunque no es un requisito para el normal funcionamiento de
la placa Arduino, le será útil si compra un nuevo ATmega (el cual viene
normalmente sin gestor de arranque). Asegúrese que ha seleccionado
la placa correcta en el menú Boards antes de grabar el bootloader.
Cuando use AVR ISP, tendrá que seleccionar en el menú Serial Port el
puerto correspondiente.

Sketchbook (Librería de Sketch)

El entorno de Arduino incluye el concepto de "sketchbook": que es el lugar


estándar para el almacenamiento de sus programas (o "sketch"). Los
"sketches" dentro de su "sketchbook" pueden abrirse desde el menú File >
Sketchbook o desde el botón de la barra de herramientas Open. La primera
vez que arranque el software Arduino, se creará un directorio para su
"sketchbook". Puede visualizar o cambiar su localización dentro de
"sketchbook location" desde el apartado Preferences

Tabs, Multiple Files, and Compilation (Pestañas, Ficheros múltiples y


compilación)

Permite manejar "sketches" con más de un fichero (cada uno de los cuales
aparece en su pestaña). Pueden ser normalmente ficheros de código Arduino
(no extensiones), ficheros C (extensiones .c), ficheros c++ (.cpp), o ficheros
de cabecera (.h)
Uploading (Volcado)

Antes de volcar su "sketch", necesitaa seleccionar los elementos


correspondientes desde los menús Tools > Board y Tools > Serial Port. Las
boards (placas) están descritas abajo. En los Mac, el puerto serie será
probablemente algo como /dev/tty.usbserial-1B1 (para una placa USB), o
/dev/tty.USA19QW1b1P1.1 (para una placa serie conectada con un
adaptador Keyspan USB-to-Serial). En Windows, probablemente sea COM1
o COM2 (para una placa serie) o COM4, COM5, COM7, o superior (para una
placa USB)- para encontrarlos, debes buscar los dispositivos serie USB en la
sección de puertos del Administrador de Dispositivos de Windows. En Linux,
debería ser /dev/ttyUSB0, /dev/ttyUSB1 o similar.

Una vez que ha seleccionado el puerto serie y la placa, presione el botón de


volcado en la barra de harramientas o selecione Upload to I/O Board desde el
menú File. Las actuales placas de Arduino se resetearán automáticmamente
y comenzará el volcado. Como las placas antiguas carecen de auto-reset,
necesitará presionar el botón de reset en la placa, justo antes de iniciar el
volcado. En muchas placas verá el led RX y TX parpadeando cuando el
"sketch" está actualizándose. El entorno de Arduino mostrará un mensaje
cuando el volcado esté completado, o mostrará un error.

Cuando se vuelca un "sketch", está utilizando el "bootloader" de Arduino, un


pequeño programa que ha sido cargado en el microcontrolador en su placa.
Permite el volcado del código sin utilizar hardware adicional. El "bootloader"
está activo durante unos segundos cuando la placa es reseteada; después se
incia el "sketch" que más recientemente se hubiera actualizado en el
microcontrolador. El "bootloader" produce un parpadeo en el LED de la placa
(pin 13) cuando se inicia (p.e. cuando las placas son reseteadas)

Libraries (Librerías)

Las librerías proporcionan funcionalidad extra para la utilización en


"sketches", por ejemplo para trabajar con hardware o manipular datos. Para
utilizar una librería en un "sketch", seleccione el menú Sketch > Import
Library. Esto insertará una o más sentencias #include al principio del "sketch"
y compilará la librería con su "sketch". Debido a que las librerías se vuelcan a
la placa junto con su "sketch", incrementan la ocupación del espacio
disponible. Si un "sketch" no precisa de una libreria, simplemente borra su
sentencia #include en la parte inicial de su código.

Existe una Lista de librerías en las referencias. Algunas librerias estan


incluidas en el software Arduino, otras pueden ser descargadas desde una
gran variedad de fuentes. Para instalar estas librerías de terceros, crea un
directorio denominado libraries en su Directorio sketchbook. Después
descomprime la librería allí. Por ejemplo, para instalar la librería Data Time,
sus ficheros deberían estar en una subcarpeta /libraries/DateTime en su
carpeta de sketchbook.

Para escribir su propia librería, revisa este tutorial

Third-Party Hardware (Hardware de terceros)

Se puede agregar soporte para hardware de terceros en el directorio


hardware del directorio "sketchbook". Las plataformas instaladas aquí pueden
incluir la definición de las placas (que aparecen en el menú board), librerías
del núcleo, "bootloaders", y definiciones de programador. Para instalarla, cree
un directorio hardware, y en él descomprima la plataforma de terceros con su
directorio. (No utilices "arduino" como nombre del subdirectorio o
sobreescribirás la plataforma Arduino). Para desinstalarlo, simplemente borre
ese directorio.

Para más detalles sobre la creación de paquetes de hardware de terceros


visita Páginas de Plataformas en la web de Google Code developers.

Serial Monitor (Monitor Serie)

Muestra los datos enviados desde la placa Arduino (placa USB o serie). Para
enviar datos a la placa, teclee el texto y pulsa el botón "send" o enter.
Seleccione la velocidad (baud rate) en el menú desplegable que coincida con
el configurado en Serial.begin dentro de su "sketch". Advertir que en Mac o
Linux, la placa Arduino se resetea (su "sketch" es reiniciado desde el
principio) cuando conecta con el monitor serie.

Se puede también comunicar con la placa desde Processing, Flash,


MaxMSP, etc (ver Web de interface ('interfacing page') para más detalles)

Preferences (Preferencias)

Pueden configurarse otras preferencias en el apartado preference (lo podrás


encontrar bajo el menú Arduino para los Mac, o en File para Windows y
Linux). El resto de opciones puede ser localizado en el fichero de
preferencias, que se podrá encontrar dentro del mismo apartado preference.

Boards (Placas)

La selección de placa tiene dos efectos: los parámetros utilizados cuando


compila(por ejemplo, CPU usada y velocidad (baud rate)) y vuelcan los
"sketches"; y el fichero y configuración utilizados por el gestor de arranque
(bootloader)) al ser cargado. Algunas de las definiciones de las placas
difieren sólo en lo segundo, incluso si ha sido cargado satisfactoriamente con
una particular selección, usted podrá comprobarlo antes de grabar el
"bootloader"

Arduino Duemilanove o Nano w/ ATmega328 
Un ATmega328


trabajando a 16MHz con auto-reset. También usado para las versiones
16 MHz (5V) de los Arduino Pro o Pro Mini con ATmega328.
Arduino Diecimila, Duemilanove, o Nano w/ ATmega168 
Un
ATmega168 trabajando a 16MHz con auto-reset. En cuanto a la
compilación y volcado es equivalente al Arduino NG o el más antiguo
w/ATmega168, pero el "bootloader" tiene un timeout rápido (el LED en
el pin 13 parpace sólo en el reset).También usa las versiones 16 MHz
(5V) de los Arduino Pro y Pro Mini con ATmega168.
Arduino Mega 
Un ATmega1280 trabajando a 16MHz con auto-reset.
Arduino Mini 
Equivalente al Ardunio NG o el más antiguo
w/ATmega168 (por ejemplo un ATmega168 trabajando a 16MHz sin
auto-reset)
Arduino BT 
ATmega168 trabajando a 16MHz. El bootloader incluye
código para iniciar el módulo bluetooth de la placa.
LilyPad Arduino w/ ATmega328 
Un ATmega328 trabajando a 8MHz
(3.3V) con autor-reset. Equivalente al Arduino Pro o Pro Mini (3.3V 8
MHz) w/ATmega328.
LilyPad Arduino w/ ATmega168 
Un ATmega168 trabajando a 8MHz.
En cuanto a la compilación y volcado es equivalente a Arduino Pro o
Pro Mini (8MHz) w/ARmega168. El "bootloader", sin embargo, tiene un
lento timeout (el LED 13 parpadea 3 veces y realiza el reset) debido a
que la versión original del LilyPad no soporta auto-reset. Tampoco
incluyen un reloj externo, por lo que el boottloader se ha cargado
comfigurando los fuses del ATmega168 con el reloj interno de 8MHz.

Si
tenes una versión actual del LilyPad, (con un conector de
programación de 6 pines) tendrás que seleccionar Arduino Pro o Pro
Mini (8MHz) con ATmega168 antes de grabar el "bootloader"
Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328 
Un ATmega328
trabajando a 8MHz (3.3V) con auto-reset. Equivalente a LilyPad
Arduino w/ ATmega328.
Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168 
Un ATmega168
trabajando a 8 MHz (3.3V) con auto-reset.
Arduino NG or older w/ ATmega168 
Un ATmega168 trabajando
16MHz sin auto-reset. En cuanto a la Compilación y volcado es
equivalente al Arduino Diecimila o Duemilanove w/ATmega168, pero el
grabado del "bootloader" es más lento (el LED 13 parpadea 3 veces y
realiza el reset)
Arduino NG or older w/ ATmega8 
Un ATmega8 trabajando en 16MHz
sin auto-reset

Los textos de la guía "Como empezar con Arduino" están licenciados bajo
Creative Commons Attribution-ShareAlike 3.0 License. El código fuente de los
ejemplos en la guía están liberados como dominio público.

Arduino Solución de problemas

¿Porqué no puedo subir mis programas a la placa Arduino?


¿Porqué aparece "Build folder disappeared or could not be written"
(Mac OS X)?
¿Porqué el software de Arduino no se ejecuta después haber
actualizado el Java en mi Mac? (Arduino 0016)
¿Porqué aparece un java.lang.StackOverflowError cuando intento
compilar mi programa?
¿Porqué no arranca mi sketch cuando estoy alimentando la tarjeta con
una fuente de alimentación externa? (Arduino Diecimila o anterior)
¿Porqué se congela Arduino cuando intento cargar un programa? (En
Windows)?
¿Qué pasa si mi tarjeta no se enciende (el LED verde no se
enciende)?
¿Porqué mi Diecimila necesita tanto tiempo (6-8 segundos) para iniciar
mi sketch?
¿Qué debo hacer si me da un error al lanzar arduino.exe en Windows?
¿Porqué no se ejecuta Arduino en las versiones anteriores de Mac
OSX?
¿Qué hago si me da un error "UnsatisfiedLinkError ( librxtxSerial.jnilib
native library )" al lanzar Arduino?
¿Qué pasa con el error "No se pudo encontrar la clase principal."?
¿Qué puedo hacer al respecto de conflictos con cygwin en Windows?
¿Porqué tardan el software Arduino y/o el menú Herramientas mucho
tiempo en abrir (en Windows)?
¿Porqué no mi no aparece mi placa en el menú Tools | Serial Port?
¿Qué pasa si recibo una "gnu.io.PortInUseException" al cargar código
o utilizando el monitor de serie (en Mac)?
Tengo problemas con los controladores USB FTDI.
¿Porqué no arraca mi sketch al encender o reiniciar la placa Arduino?
¿Porqué mi sketch parece que carga correctamente, pero no hace
nada?
¿Cómo puedo reducir el tamaño de mi sketch?
¿Porqué no puedo obtener un PWM (una salida analógica) cuando
llamo analogWrite () en los otros pines que 3, 5, 6, 9, 10 o 11?
(Arduino Duemilanove y Diecimila)
¿Porqué recibo errores acerca de funciones o tipos no declaradas?
¿Porqué recibo errores sobre un dispositivo de firma no válida cuando
se trata de subir un sketch?

¿Porqué no puedo subir mis programas a la placa Arduino?

Hay algunas cosas que podrían no estar bien.

En primer lugar asegúrate de que tu placa está encendida (el LED


verde está encendido) y conectada al ordenador (si no es así, consulta
la sección "¿qué pasa si mi placa no se activa?").
A continuación, comprueba que el puerto correcto se ha seleccionado
en el menú Tools > Serial Port (si el puerto no aparece, reinicia el IDE
con la placa conectada al ordenador).
Asegúrate de que tiene el item correcto seleccionado en el menú
Tools>Board. En particular, las nuevas placas Arduino Duemilanove
vienen con un ATmega328, mientras que las antiguas tienen un
ATmega168. Para comprobarlo, lee el texto impreso sobre el
microcontrolador (el chip más grande) en tu placa Arduino. Para
obtener más información sobre los ítems del menú Board, consulta la
Guía para el entorno Arduino.
Desconecta los pines digitales 0 y 1, mientras que secarga el firmware
(pueden conectarse y utilizarse después de que el código se haya
subido).
Trata de cargar con nada más conectado a la placa (aparte del cable
USB, por supuesto).
Asegúrate que la placa no toca nada metálico o conductor.
Comprueba que no estás ejecutando ningún programa que escanee
todos los puertos serie, como aplicaciones de sincronización de PDA,
Bluetooth, controladores USB (por ejemplo, BlueSoleil), Virtual
Daemon Tools, etc
Asegúrate de que no tienes un software de firewall que bloquee el
acceso al puerto serie (por ejemplo ZoneAlarm).
Es posible que debas salir de Processing, PD, vvvv, etc, si los estás
utilizando para leer datos a través de la conexión USB o serie a la
placa Arduino.
Si tienes una placa que no es compatible con auto-reset, asegúrate de
que reinicias la placa un par de segundos antes de cargar. (Arduino
Diecimila, Duemilanove, Mega, y Nano soportan auto-reset al igual que
LilyPad, Pro y Pro Mini con conector de programación de 6-pines).
Sin embargo, ten en cuenta que algunos Diecimila fueron programados
accidentalmente con el bootloader incorrecto y tal vez requieran volver
a presionar el botón de reset físico antes de cargar, ver más sobreesta
cuestión más adelante.
Sin embargo, en algunos equipos, es posible que tengas que pulsar el
botón de reset en la placa después de clicar el botón de descarga en
el entorno Arduino. Pruebe diferentes intervalos de tiempo entre los
dos, hasta 10 segundos o más. Ésto sucede con ordenadores antiguos
o que ejecutan muchos procesos en paralelo.
Si recibes este error: [VP 1] device is not responding correctly. Intenta
cargar el programa otra vez (es decir, resetea la placa y pulse el botón
de descarga por segunda vez).
Asegúrate de que hay un bootloader en la placa Arduino. Para
comprobarlo, conectar un LED al pin 13 (Arduino Duemilanove,
Diecmila y Mega tienen un LED marcado con L que ya está conectado
al pin 13) y resetea la placa. El LED debe parpadear. Si no es así,
consulta la página del bootloader para obtener instrucciones sobre la
grabación de un bootloader en la placa.
Si tienes una placa Arduino muy antigua, puede que tengas que
cambiar la velocidad de transmisión de carga de sketches a 9.600
(19.200 es lo normal, o 57.600 para Arduino Mega). Tendrás que
cambiar la velocidad en el archivo preferences directamente. Ver la
página sobre el fichero de preferencias para obtener instrucciones
sobre cómo encontrarlo. Búscalo en tu equipo y cambia la propiedad
serial.download_rate para que coincida con la de tu placa. Lo dicho, si
tu placa es muy antigua (Arduino NG o anterior), se recomienda que
actualices al último bootloader (que funciona a 19.200 baudios). Esto
se puede hacer con el menú Tools > Burn Bootloader por medio de un
programador de hardware externo.
Si aún así no funciona, puedes pedir ayuda en el foro. Por favor incluye la
siguiente información:

Tu sistema operativo.
¿Qué tipo de placa es la que tienes? Si se trata de un Mini, LilyPad u
opción que requiera cableado adicional, incluye una foto de tu circuito,
si es posible.
Independientemente de si fuiste capaz alguna vez de cargar software
a la tarjeta. ¿Qué estabas haciendo con la tarjeta antes / cuando dejó
de trabajar, y que paquete de software has añadido o eliminado de tu
ordenador?
Los mensajes que aparecen cuando se intenta cargar con salida
detallada habilitada. Para ello, presiona la tecla Mayús mientras haces
click en el botón de subida en la barra de herramientas.

¿Porqué aparece "Build folder disappeared or could not be written"


(Mac OS X)?

Esto se produce por una instalación defectuosa del software en tu Mac.


¿Arrastraste la aplicación Arduino.app al instalar al icono de disco (y en, por
ejemplo, la carpeta de Aplicaciones)? Si no lo hiciste, no serás capaz de
cargar los ejemplos, ya que el programa no será capaz de localizarlos.

Actualización Mac

¿Porqué el software de Arduino no se ejecuta después haber


actualizado el Java en mi Mac? (Arduino 0016)

La última actualización de Java de Apple intenta utilizar la versión de 64 bits


de las bibliotecas nativas, pero la aplicación Arduino viene con una versión de
32 bits de la biblioteca RXTX. Si inicia Arduino, obtendrás un error como:
@ @ Uncaught exception in main method: java.lang.UnsatisfiedLinkError:
/Applications/arduino-0016/Arduino
16.app/Contents/Resources/Java/librxtxSerial.jnilib: no suitable image found.
Did find: /Applications/arduino-0016/Arduino
16.app/Contents/Resources/Java/librxtxSerial.jnilib: no matching architecture
in universal wrapper @ @

Para solucionar este problema, haz click en la aplicación Arduino (por


ejemplo,Arduino 16.app) en el Finder y selecciona Obtener Información de la
casilla Archivo del menú. En el panel de información, haz click en la casilla
Abrir en modo 32 bits. A continuación, deberías ser capaz de ejecutar
Arduino normalmente.

# StackOverflow

¿Porqué aparece un java.lang.StackOverflowError cuando intento


compilar mi programa?

El entorno de desarrollo hace algunas transformaciones en el sketch de


Arduino manipulando el código utilizando expresiones regulares. Esto a veces
se confunde con ciertas cadenas de texto. Si aparece un error como:

java.lang.StackOverflowError
at java.util.Vector.addElement(Unknown Source)
at java.util.Stack.push(Unknown Source)
at com.oroinc.text.regex.Perl5Matcher._pushState(Perl5Matcher.java)
esto es lo que está pasando. Puedes buscar secuencias inusuales que
supongan "comillas dobles", "comilla simple", las barras invertidas \,
comentarios, etc, en particular la secuencia '\ "' parece ser la causa
problemas, se recomienda el uso de '"' en su lugar.
Alimentación Externa

¿Porqué no arranca mi sketch cuando estoy alimentando la tarjeta con


una fuente de alimentación externa? (Arduino Diecimila o anterior)

Hay una serie de tarjetas Arduino antiguas (unas 1000) que presentan el
problema de tener una versión del bootloader que tiene el pin RX sin conectar
la resistencia de pull-up interna. Esto produce que, en ocasiones, el
bootloader piense que está recibiendo un nuevo programa, si bien se trata
sólo de datos aleatorios. Esto se puede solucionar actualizando el bootloader
a la última versión o conectando el pin RX con una resistencia de 10K a
tierra.

¿Porqué se congela Arduino cuando intento cargar un programa? (En


Windows)?

Esto podría ser causado por un conflicto con el proceso de Logitech


LVPrcSrv.exe, que es un programa residente en tu ordenador. Abre el
Administrador de tareas y comprueba si este programa se está ejecutando, y
si es así, cierra ese proceso antes de intentar subir más datos a la placa [
más información ].

Alimentación

¿Qué pasa si mi tarjeta no se enciende (el LED verde no se enciende)?

Si estás utilizando una tarjeta USB Diecimila o NG, asegúrate de que el


puente (pieza de plástico pequeña cerca del conector USB) es en los pines
correctos. Si tienes la certeza que tu placa recibe alimentación al usar una
fuente de alimentación externa (conectado a la clavija de red), el puente debe
ser más cercano a los dos pines para el cable de alimentación. Si, por el
contrario, alimentas tu placa a través del puerto USB, el puente debe estar en
los dos pines más cercanos a los conectores USB. Esta foto muestra la
disposición para la alimentación de la placa del puerto USB.

Attach: jumper.jpg
Bootloader equivocado

¿Porqué mi Diecimila necesita tanto tiempo (6-8 segundos) para iniciar


mi sketch?

Algunas de las placas de Arduino Diecimila (unas 1000) salieron de fábrica


accidentalmente con el bootloader Arduino NG, este es un error que en
ningún caso debiera manifestarse en placas Arduino posteriores al año 2008.
En cualquier caso, tu placa funciona bien, pero requiere hacer reset manual
de la placa al subir un sketch y necesita de ese tiempo de espera. Se puede
reconocer el bootloader NG porqué el LED en el pin 13 parpadeará tres veces
al efectuar presionar el botón de reset en la placa (el bootloader de la
Diecimila sólo parpadeará una vez). Puede el bootloader correcto en su
Diecimila, consulte la página del bootloader para más detalles.

Inicio

¿Qué debo hacer si me da un error al lanzar arduino.exe en Windows?

Si obtienes un error al hacer doble click en el ejecutable arduino.exe en


Windows, por ejemplo:

@ @ Arduino has encountered a problem and needs to close. @ @

tendrás que poner en marcha Arduino utilizando el archivo run.bat situado en


la misma carpeta. Por favor, ten paciencia, el entorno Arduino puede tomar
algún tiempo para abrir según la configuración de tu ordenador.

¿Porqué no se ejecuta Arduino en las versiones anteriores de Mac


OSX?

Si obtienes un error como este:


Link (dyld) error:

dyld: / Applications/arduino-0004/Arduino 04.app/Contents/MacOS/Arduino


símbolos Indefinido:
/ Applications/arduino-0004/librxtxSerial.jnilib undefined referencia a _printf $
LDBL128 espera que esté definido en / usr / lib / libSystem.B.dylib
es probable que necesites actualizar a Mac OSX 10.3.9 o posterior. Las
versiones anteriores tienen versiones incompatibles de algunas librerías del
sistema.

¿Qué hago si me da un error "UnsatisfiedLinkError ( librxtxSerial.jnilib


native library )" al lanzar Arduino?

Si obtienes un error como este al iniciar Arduino:

@ @ Uncaught exception in main method: java.lang.UnsatisfiedLinkError:


Native Library /Users/anu/Desktop/arduino-0002/librxtxSerial.jnilib already
loaded in another classloader @ @

es probable que tengas una versión antigua de la biblioteca de


comunicaciones en tu ordenador. Busca comm.jar, jcl.jar o en / System /
Library / Frameworks / JavaVM.framework / o en los directorios del
CLASSPATH o variables de entorno PATH.

¿Qué pasa con el error "No se pudo encontrar la clase principal."?

Si recibe este error al lanzar Arduino:

@ @ JJava Virtual Machine Launcher: Could not find the main class. Program
will exit. @ @

asegúrate de que descomprimiste correctamente el contenido del fichero


Arduino.zip - en particular, que el directorio lib está dentro del directorio
Arduino y contiene el archivo pde.jar.
¿Qué puedo hacer al respecto de conflictos con cygwin en Windows?

Si ya tienes cygwin instalado en tu máquina, podrías obtener un error como


este al intentar compilar un sketch en Arduino:

@ @ [main] ? (3512) C:\Dev\arduino-0006\tools\avr\bin\avr-gcc.exe: *** fatal


error - C:\Dev\arduino-0006\tools\avr\bin\avr-gcc.exe: *** system shared
memory version mismatch detected - 0x75BE0084/0x75BE009C.

This problem is probably due to using incompatible versions of the cygwin


DLL.

Search for cygwin1.dll using the Windows Start->Find/Search facility and


delete all but the most recent version. The most recent version *should* reside
in x:\cygwin\bin, where 'x' is the drive on which you have installed the cygwin
distribution. Rebooting is also suggested if you are unable to find another
cygwin DLL. @ @

Si es así, primero asegúrate de que no tienes cygwin en ejecución cuando se


utiliza Arduino. Si esto no funciona, puedes intentar eliminar las librerías
cygwin1.dll del directorio Arduino y cambiarlas por cygwin1.dll de tu
instalación existente de cygwin (probablemente en c: \ cygwin \ bin).

¿Porqué tardan el software Arduino y/o el menú Herramientas mucho


tiempo en abrir (en Windows)?

Si el software Arduino tarda mucho tiempo en ponerse en marcha y parece


bloquearse al intentar abrir el menú Herramientas, existe un conflicto con otro
dispositivo en su sistema. El software de Arduino, al arrancar y al abrir el
menú Tools, trata de obtener una lista de todos los puertos COM de tu
ordenador. Es posible que un puerto COM creado por uno de los dispositivos
de tu equipo ralentice este proceso. Echa un vistazo en el Administrador de
dispositivos. Intenta desactivar los dispositivos que usan los otros puertos
COM (por ejemplo, dispositivos Bluetooth).
Puerto Serie

¿Porqué no mi no aparece mi placa en el menú Tools | Serial Port?

Si estás usando una placa USB Arduino, asegúrate de instalar los drivers
FTDI (véase el link de instalación para instrucciones). Si estás utilizando un
adaptador de USB a serie con una placa serie, asegúrate de instalar los
drivers correspondientes.

Asegúrate de que la tarjeta está conectada: el menú del puerto serie se


actualiza cada vez que abres la casilla Tools del menú, así que si acabas de
desenchufar la placa, no estará en el menú.

Comprueba que no estás ejecutando ningún programa que escanea todos los
puertos serie, como aplicaciones de sincronización de PDA, Bluetooth
controladores USB (por ejemplo, BlueSoleil), etc

En Windows, el puerto COM asignado a la placa puede ser uno de código


muy alto. En ocasiones se recomienda probar a cambiar el número asignado
al chip FTDI por uno más bajo. Tal y cómo comenta Zeveland:

"Tuve un montón de puertos virtuales COM creados para Bluetooth por lo que
la placa estaba configurada para utilizar COM17. El IDE no fue capaz de
encontrarla de modo que suprimí los otros puertos virtuales en el Panel de
control (en XP) y trasladó el puerto asignado al chip FTDI de Arduino a otro
más bajo, en concreto el COM2. Asegúrate de configurar el IDE de Arduino
para utilizar el nuevo puerto y buena suerte. "

En Mac, si tienes una versión antigua de los controladores de FTDI, puede


ser necesario borrarlos y reinstalar la última versión. Mas información en esta
conversación del foro para instrucciones en cómo proceder (gracias a GCK).

¿Qué pasa si recibo una "gnu.io.PortInUseException" al cargar código o


utilizando el monitor de serie (en Mac)?

Error inside Serial.<init>()


gnu.io.PortInUseException: Unknown Application
at gnu.io.CommPortIdentifier.open(CommPortIdentifier.java:354)
at processing.app.Serial.<init>(Serial.java:127)
at processing.app.Serial.<init>(Serial.java:72)

Esto probablemente significa que el puerto está actualmente en uso por otra
aplicación. Por favor, asegúrate de que no estás ejecutando otros programas
con acceso al puerto serie o puertos USB de tu placa, como la aplicación de
sincronización de PDA, los administradores de dispositivos bluetooth, ciertos
servidores de seguridad, etc. Además, ten en cuenta que algunos programas
(por ejemplo, Max/MSP o Puredata) mantienen el puerto serie abierto, incluso
cuando no los usas - puedes necesitar cerrar todos los parches que usan el
puerto serie o salir de la aplicación por completo.

Si obtienes este error con Arduino 0004 o anterior, debieras actualizar a la


última versión.

Tengo problemas con los controladores USB FTDI.

Intenta instalar los controladores más recientes de FTDI o ponte en contacto


con su grupo de soporte en support1@ftdichip.com.

Arranque Sketch

¿Porqué no arraca mi sketch al encender o reiniciar la placa Arduino?

Lo más probable es que alguna aplicación esté enviando datos en serie a tu


placa al arrancar. Durante los primeros segundos, el bootloader (que viene
pregrabado en tu placa) escucha la llegada de datos desde el ordenador.
Después de unos segundos sin comunicación, el bootloader inicia el sketch
que ya está en la placa. Si continúa el envío de datos hacia el bootloader,
nunca se determinará el final de ejecución del bootloader y tu sketch no
arrancará. Tendrás que encontrar una manera de cesar el envío de datos
serie a la placa durante el tiempo que esta necesita para arrancar o grabar tu
sketch en la placa con un programador externo, que sustituya al bootloader.

¿Porqué mi sketch parece que carga correctamente, pero no hace


nada?

Es posible que hayas seleccionado tu placa apropiadamente, pero con la


opción de microcontrolador equivocado. Asegúrate de que el
microcontrolador corresponde al de tu placa (ya sea Atmega8, ATmega168,
ATmega328, o ATmega1280) - el nombre está escrito en el más grande de
los chips en la placa.

Comprueba si usas una fuente de alimentación ruidosa. Esto podría causar al


chip perder su sketch.

Por otra parte, el sketch puede ser demasiado grande para la tarjeta. Al subir
tu sketch, Arduino 0004 y posteriores comprueban si es demasiado grande
para el ATmega8, pero basa su cálculo en un bootloader de 1 Kb. Podrías
tener bootloaders de mayor tamaño (p.ej. 2 Kb de los 8 Kb disponibles en tu
placa). Si empleas placas Arduino oficiales, este problema no se presentará.

Si tienes acceso a un AVR-ISP, AVR-ISP-MKII, el programador de puerto


paralelo, o cualquier otro dispositivo externo de programación de chips de la
marca Atmel, puedes grabar la última versión del bootloader desde el menú
Tools | Burn Bootloader. De lo contrario, puedes determinar en el entorno
Arduino la cantidad de espacio disponible para tus programas editando la
variable upload.maximum_size en su archivo de preferencias (ver:
instrucciones sobre cómo encontrar el archivo?).

Tamaño

¿Cómo puedo reducir el tamaño de mi sketch?

Los chips ATmega en la placa Arduino son barato, pero tienen limitaciones en
el espacio reservado para tus programas: 7Kb para el ATmega8, 14Kb para
el ATmega168 y ATmega328, y 124Kb para el ATmega1280 (el resto del
espacio es usado por el bootloader).

Por ejemplo, un truco consiste en limitar que librerías usas. Si estás utilizando
operaciones en coma flotante, trata de reescribir el código para usar números
enteros, lo que debería ahorrar cerca de 2 Kb. Elimine los# include
declaraciones en la parte superior de tu programa para eliminar las
bibliotecas que no estás usando.

También puedes tratar de hacer tu programa más corto.


En cualquier caso, desde Arduino trabajamos para reducir el tamaño del
núcleo de Arduino para dejar más espacio para tus programas.

¿Porqué no puedo obtener un PWM (una salida analógica) cuando llamo


analogWrite () en los otros pines que 3, 5, 6, 9, 10 o 11? (Arduino
Duemilanove y Diecimila)

El microcontrolador de la placa Arduino Duemilanove (ATmega328) y


Diecimila (ATmega168) sólo es compatible con PWM / analogWrite () en los
pines determinados. Llamadas analogWrite () en las patas otro dará alto (5
voltios) para valores mayores de 128 y bajo (0 voltios) para valores inferiores
a 128. (Nótese que placas Arduino antiguas con Atmega8 sólo trabajan con
salida PWM en los pines 9, 10 y 11.)

¿Porqué recibo errores acerca de funciones o tipos no declaradas?

El entorno Arduino intenta generar automáticamente prototipos de sus


funciones, de modo que puedas llamarlos a tu gusto en tus programas. Este
proceso, sin embargo, no es perfecto, y en ocasiones produce mensajes de
error.

Si declaras un tipo personalizado en el código y creas una función que acepte


o devuelva valores de ese tipo, obtendrás un error al intentar compilar el
sketch. Esto se debe a que el prototipo automático para esa función
aparecerá sobre la definición de tipo.

Si declaras una función con un tipo de retorno de dos palabras (por ejemplo,
"unsigned int"), el entorno no se dará cuenta de que es una función y no
creará un prototipo para ello. Eso significa que debes proporcionar tu propia
definición, o colocar la definición de la función por encima de cualquier
llamada a la misma.

¿Porqué recibo errores sobre un dispositivo de firma no válida cuando


se trata de subir un sketch?

Si obtienes un error como:


avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.

puede significar una de dos cosas. Bien seleccionaste la placa equivocada en


el menú Tools > Board o no estás usando la versión correcta de avrdude.
Arduino utiliza una versión ligeramente modificada de avrdude para subir
programas a la placa Arduino. La versión estándar consulta la firma del
dispositivo en un modo que el bootloader no es capaz de comprender .
Asegúrate de que estás utilizando la versión de avrdude que viene con
Arduino (Código Fuente).

Guía Inicio Los textos de la guía "Como empezar con Arduino" están
licenciados bajo Creative Commons Attribution-ShareAlike 3.0 License. El
código fuente de los ejemplos en la guía están liberados como dominio
público.

Anda mungkin juga menyukai