Show minor edits - Show changes to markup
The easiest way to check if the drivers for your board are installed correctly is by opening the Tools > Serial Port menu in the Arduino software with the Arduino board connected to your computer. Additional menu items should appear relative to when you open the menu without the Arduino connected to your computer.
The easiest way to check if the drivers for your board are installed correctly is by opening the Tools > Serial Port menu in the Arduino software with the Arduino board connected to your computer. Additional menu items should appear relative to when you open the menu without the Arduino connected to your computer. Note that it shouldn't matter what name the Arduino board's serial port gets assigned as long as that's the one you pick from the menu.
Drivers provide a way for software on your computer (i.e. the Arduino software) to talk to hardware you connect to your computer (the Arduino board). In the case of Arduino, the drivers work by providing a virtual serial port (or virtual COM port). The Arduino Uno and Mega 2560 use standard CDC drivers provided by the operating system to communicate with the ATmega8U2 on the board. Other Arduino boards use FTDI drivers to communicate with the FTDI chip on the board (or in the USB-serial convertor).
Drivers provide a way for software on your computer (i.e. the Arduino software) to talk to hardware you connect to your computer (the Arduino board). In the case of Arduino, the drivers work by providing a virtual serial port (or virtual COM port). The Arduino Uno and Mega 2560 use standard drivers (USB CDC) provided by the operating system to communicate with the ATmega8U2 on the board. Other Arduino boards use FTDI drivers to communicate with the FTDI chip on the board (or in the USB-serial convertor).
Because the RX pin is unconnected, the bootloader on the board may be seeing garbage data coming in, meaning that it never times out and starts your sketch. Try tying the RX pin to ground with a 10K resistor (or connecting it to the TX pin).
Because the RX pin is unconnected, the bootloader on the board may be seeing garbage data coming in, meaning that it never times out and starts your sketch. Try tying the RX pin to ground with a 10K resistor (or connecting RX directly to the TX pin).
If you're using a USB board, make sure that the jumper (little plastic piece near the USB plug) is on the correct pins. If you're powering the board with an external power supply (plugged into the power plug), the jumper should be on the two pins closest to the power plug. If you're powering the board through the USB, the jumper should be on the two pins closest to the USB plug. This picture shows the arrangment for powering the board from the USB port.
If you're using a Diecimila or older USB board (e.g. NG), make sure that the jumper (little plastic piece near the USB plug) is on the correct pins. If you're powering the board with an external power supply (plugged into the power plug), the jumper should be on the two pins closest to the power plug. If you're powering the board through the USB, the jumper should be on the two pins closest to the USB plug. This picture shows the arrangment for powering the board from the USB port.
Arduino Software
Drivers provide a way for software on your computer (i.e. the Arduino software) to talk to hardware you connect to your computer (the Arduino board). In the case of Arduino, the drivers work by providing a virtual serial port (or virtual COM port). The Arduino Uno and Mega 2560 use standard CDC drivers provided by the operating system to communicate with the ATmega8U2 on the board. Other Arduino boards use FTDI drivers to communicate with the FTDI chip on the board (or in the USB-serial convertor).
The easiest way to check if the drivers for your board are installed correctly is by opening the Tools > Serial Port menu in the Arduino software with the Arduino board connected to your computer. Additional menu items should appear relative to when you open the menu without the Arduino connected to your computer.
Arduino Software
There are a few things that could be wrong.
There are many pieces involved in getting a program onto your Arduino board, and if any of them aren't right, the upload can fail. They include: the drivers for the board, the board and serial port selections in the Arduino software, access to the serial port, the physical connection to the board, the firmware on the 8U2 (on the Uno and Mega 2560), the bootloader on the main microcontroller on the board, the microcontroller's fuse settings, and more. Here are some specific suggestions for troubleshooting each of the pieces.
Drivers
Arduino Software
Access to the Serial Port
Physical Connection
Auto-Reset
Bootloader
this is what's happening. Look for unusual sequences involving "double-quotes", "single-quotes", \backslashes, comments, etc. In particular the sequence '\"' seems to cause problems; use '"' instead.
or:
at com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java) at com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java) at com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java) at com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java) at com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java) at com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java) at com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java)
this is what's happening. Look for unusual sequences involving "double-quotes", "single-quotes", \backslashes, comments, etc. For example, missing quotes can cause problems and so can the sequence '\"' (use '"' instead).
(:title Solución de Problemas:)
(:*toc Tabla de Contenidos:)
Hay algunas cosas que podrÃan no estar bien.
[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).
Si aún asà no funciona, puedes pedir ayuda en el foro. Por favor incluye la siguiente información:
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.
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.
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:
[@
(:*toc:)
There are a few things that could be wrong.
[VP 1] Device is not responding correctly. try uploading again (i.e. reset the board and press the download button a second time).
If it still doesn't work, you can ask for help in the forum. Please include the following information:
Did you drag the Arduino.app out of the disk image (and into, say, your Applications folder)? If not, you won't be able to upload the examples.
The latest Java update from Apple attempts to use 64-bit version of native libraries, but the Arduino application comes with a 32 bit version of the RXTX library. If you launch Arduino, you'll get an error like:
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
To fix this, click on the Arduino application (e.g. Arduino 16.app) in the Finder, and select Get Info from the File menu. In the info panel, click the Open in 32 Bit Mode checkbox. You should then be able to launch Arduino normally.
The Arduino environment does some preliminary processing on your sketch by manipulating the code using regular expressions. This sometimes gets confused by certain strings of text. If you see an error like:
[@
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.
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.
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 ].
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
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.
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.
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.
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.
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.
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).
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).
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).
[@
at com.oroinc.text.regex.Perl5Matcher._pushState(Perl5Matcher.java) @]
this is what's happening. Look for unusual sequences involving "double-quotes", "single-quotes", \backslashes, comments, etc. In particular the sequence '\"' seems to cause problems; use '"' instead.
Because the RX pin is unconnected, the bootloader on the board may be seeing garbage data coming in, meaning that it never times out and starts your sketch. Try tying the RX pin to ground with a 10K resistor (or connecting it to the TX pin).
This might be caused by a conflict with the Logitech process 'LVPrcSrv.exe'. Open the Task Manager and see if this program is running, and if so, kill it before attempting the upload. more information
If you're using a USB board, make sure that the jumper (little plastic piece near the USB plug) is on the correct pins. If you're powering the board with an external power supply (plugged into the power plug), the jumper should be on the two pins closest to the power plug. If you're powering the board through the USB, the jumper should be on the two pins closest to the USB plug. This picture shows the arrangment for powering the board from the USB port.
(thanks to mrbbp for report and picture)
Some of the Arduino Diecimila boards were accidently burned with the Arduino NG bootloader. It should work fine, but has a longer delay when the board is reset (because the NG doesn't have an automatic reset, so you have to time the uploads manually). You can recognize the NG bootloader because the LED on pin 13 will blink three times when you reset the board (as compared to once with the Diecimila bootloader). If your Diecimila has the NG bootloader on it, you may need to physically press the reset button on the board before uploading your sketch. You can burn the correct bootloader onto your Diecimila, see the bootloader page for details.
If you get an error when double-clicking the arduino.exe executable on Windows, for example:
Arduino has encountered a problem and needs to close.
you'll need to launch Arduino using the run.bat file. Please be patient, the Arduino environment may take some time to open.
If you get an error like this:
Link (dyld) error: dyld: /Applications/arduino-0004/Arduino 04.app/Contents/MacOS/Arduino Undefined symbols: /Applications/arduino-0004/librxtxSerial.jnilib undefined reference to _printf$LDBL128 expected to be defined in /usr/lib/libSystem.B.dylib
you probably need to upgrade to Max OS X 10.3.9 or later. Older versions have incompatible versions of some system libraries.
Thanks to Gabe462 for the report.
If you get an error like this when launching Arduino:
Uncaught exception in main method: java.lang.UnsatisfiedLinkError: Native Library /Users/anu/Desktop/arduino-0002/librxtxSerial.jnilib already loaded in another classloader
you probably have an old version of the communications library lying around. Search for comm.jar or jcl.jar in /System/Library/Frameworks/JavaVM.framework/ or in directories in your CLASSPATH or PATH environment variables. (reported by Anurag Sehgal)
If you get this error when launching Arduino:
Java Virtual Machine Launcher: Could not find the main class. Program will exit.
make sure that you correctly extracted the contents of the Arduino .zip file - in particular that the lib directory is directly inside of the Arduino directory and contains the file pde.jar.
If you already have cygwin installed on your machine, you might get an error like this when you try to compile a sketch in Arduino:
6 [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.
If so, first make sure that you don't have cygwin running when you use Arduino. If that doesn't help, you can try deleting cygwin1.dll from the Arduino directory and replacing it with the cygwin1.dll from your existing cygwin install (probably in c:\cygwin\bin).
Thanks to karlcswanson for the suggestion.
If the Arduino software takes a long time to start up and appears to freeze when you try to open the Tools menu, there by a conflict with another device on your system. The Arduino software, on startup and when you open the Tools menu, tries to get a list of all the COM ports on your computer. It's possible that a COM port created by one of the devices on your computer slows down this process. Take a look in the Device Manager. Try disabling the devices that provide COM ports (e.g. Bluetooth devices).
If you're using a USB Arduino board, make sure you installed the FTDI drivers (see the Howto for directions). If you're using a USB-to-Serial adapter with a serial board, make sure you installed its drivers.
Make sure that the board is plugged in: the serial port menu refreshes whenever you open the Tools menu, so if you just unplugged the board, it won't be in the menu.
Check that you're not running any programs that scan all serial ports, like PDA sync applications, Bluetooth-USB drivers (e.g. BlueSoleil), virtual daemon tools, etc.
On Windows, the COM port assigned to the board may be too high. From zeveland:
"One little note if you aren't able to export and your USB board is trying to use a high COM port number: try changing the FTDI chip's COM port assignment to a lower one.
"I had a bunch of virtual COM ports set up for Bluetooth so the board was set to use COM17. The IDE wasn't able to find the board so I deleted the other virtual ports in Control Panel (on XP) and moved the FTDI's assignment down to COM2. Make sure to set Arduino to use the new port and good luck."
On the Mac, if you have an old version of the FTDI drivers, you may need to remove them and reinstall the latest version. See this forum thread for directions (thanks to gck).
[@
@]
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.
Intenta instalar los controladores más recientes de FTDI o ponte en contacto con su grupo de soporte en support1@ftdichip.com.
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.
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?).
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.
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.)
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.
Si obtienes un error como:
[@
@]
This probably means that the port is actually in use by another application. Please make sure that you're not running other programs that access serial or USB ports, like PDA sync application, bluetooth device managers, certain firewalls, etc. Also, note that some programs (e.g. Max/MSP) keep the serial port open even when not using it - you may to need to close any patches that use the serial port or quit the application entirely.
If you get this error with Arduino 0004 or earlier, or with Processing, you'll need to run the macosx_setup.command, and then restart your computer. Arduino 0004 includes a modified version of this script that all users need to run (even those who ran the one that came with Arduino 0003). You may also need to delete the contents of the /var/spool/uucp directory.
Try installing the latest drivers from FTDI or contacting their support at support1@ftdichip.com.
Most likely because you are sending serial data to the board when it firsts turns on. During the first few seconds, the bootloader (a program pre-burned onto the chip on the board) listens for the computer to send it a new sketch to be uploaded to the board. After a few seconds without communication, the bootloader will time out and start the sketch that's already on the board. If you continue to send data to the bootloader, it will never time out and your sketch will never start. You'll either need to find a way to stop serial data from arriving for the first few seconds when the board powers (e.g. by enabling the chip that sends the data from within your setup() function) or burn your sketch onto the board with an external programmer, replacing the bootloader.
You have selected the wrong item from the Tools > Microcontroller menu. Make sure the selected microcontroller corresponds to the one on your board (either ATmega8 or ATmega168) - the name will be written on the largest chip on the board.
Check for a noisy power supply. It's possible this could cause the chip to lose its sketch.
Alternatively, the sketch may be too big for the board. When uploading your sketch, Arduino 0004 checks if it's too big for the ATmega8, but it bases its calculation on a 1 Kb bootloader. You may have a older bootloader that takes up 2 Kb of the 8 Kb of program space (flash) on the ATmega8 instead of the 1 Kb used by the current bootloader. If yours is bigger, only part of the sketch will be uploaded, but the software won't know, and your board will continually reset, pause, reset.
If you have access to an AVR-ISP or parallel port programmer, you can burn the latest version of the bootloader to your board with the Tools | Burn Bootloader menu item. Otherwise, you can tell the Arduino environment the amount of space available for sketches by editing the upload.maximum_size variable in your preferences file (see: instructions on finding the file). Change 7168 to 6144, and the environment should correctly warn you when your sketch is too big.
The ATmega168 chip on the Arduino board is cheap, but it has only 16 Kb of program code, which isn't very much (and 2 Kb is used by the bootloader).
If you're using floating point, try to rewrite your code with integer math, which should save you about 2 Kb. Delete any #include statements at the top of your sketch for libraries that you're not using.
Otherwise, see if you can make your program shorter.
We're always working to reduce the size of the Arduino core to leave more room for your sketches.
The microcontroller on the Arduino board (the ATmega168) only supports PWM/analogWrite() on certain pins. Calling analogWrite() on any other pins will give high (5 volts) for values greater than 128 and low (0 volts) for values less than 128. (Older Arduino boards with an ATmega8 only support PWM output on pins 9, 10, and 11.)
The Arduino environment attempts to automatically generate prototypes for your functions, so that you can order them as you like in your sketch. This process, however, isn't perfect, and sometimes leads to obscure error messages.
If you declare a custom type in your code and create a function that accepts or returns a value of that type, you'll get an error when you try to compile the sketch. This is because the automatically-generated prototype for that function will appear above the type definition.
If you declare a function with a two-word return type (e.g. "unsigned int") the environment will not realize it's a function and will not create a prototype for it. That means you need to provide your own, or place the definition of the function above any calls to it.
If you get an error like:
[@
@]
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
@]
it can mean one of two things. Either you have the wrong board selected from the Tools > Board menu or you're not using the right version of avrdude. Arduino uses a slightly modified version of avrdude to upload sketches to the Arduino board. The standard version queries for the board's device signature in a way not understood by the bootloader, resulting in this error. Make sure you're using the version of avrdude that comes with Arduino (source code).
Guide Home
(:Solución de Problemas:)
(:title Solución de Problemas:)
Guide Inicio
GuÃa Inicio
(:*toc:)
There are a few things that could be wrong.
[VP 1] Device is not responding correctly. try uploading again (i.e. reset the board and press the download button a second time).
If it still doesn't work, you can ask for help in the forum. Please include the following information:
Did you drag the Arduino.app out of the disk image (and into, say, your Applications folder)? If not, you won't be able to upload the examples.
The latest Java update from Apple attempts to use 64-bit version of native libraries, but the Arduino application comes with a 32 bit version of the RXTX library. If you launch Arduino, you'll get an error like:
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
To fix this, click on the Arduino application (e.g. Arduino 16.app) in the Finder, and select Get Info from the File menu. In the info panel, click the Open in 32 Bit Mode checkbox. You should then be able to launch Arduino normally.
The Arduino environment does some preliminary processing on your sketch by manipulating the code using regular expressions. This sometimes gets confused by certain strings of text. If you see an error like:
[@
(:Solución de Problemas:)
(:*toc Tabla de Contenidos:)
Hay algunas cosas que podrÃan no estar bien.
[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).
Si aún asà no funciona, puedes pedir ayuda en el foro. Por favor incluye la siguiente información:
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.
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.
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:
[@
at com.oroinc.text.regex.Perl5Matcher._pushState(Perl5Matcher.java) @]
this is what's happening. Look for unusual sequences involving "double-quotes", "single-quotes", \backslashes, comments, etc. In particular the sequence '\"' seems to cause problems; use '"' instead.
Because the RX pin is unconnected, the bootloader on the board may be seeing garbage data coming in, meaning that it never times out and starts your sketch. Try tying the RX pin to ground with a 10K resistor (or connecting it to the TX pin).
This might be caused by a conflict with the Logitech process 'LVPrcSrv.exe'. Open the Task Manager and see if this program is running, and if so, kill it before attempting the upload. more information
If you're using a USB board, make sure that the jumper (little plastic piece near the USB plug) is on the correct pins. If you're powering the board with an external power supply (plugged into the power plug), the jumper should be on the two pins closest to the power plug. If you're powering the board through the USB, the jumper should be on the two pins closest to the USB plug. This picture shows the arrangment for powering the board from the USB port.
(thanks to mrbbp for report and picture)
Some of the Arduino Diecimila boards were accidently burned with the Arduino NG bootloader. It should work fine, but has a longer delay when the board is reset (because the NG doesn't have an automatic reset, so you have to time the uploads manually). You can recognize the NG bootloader because the LED on pin 13 will blink three times when you reset the board (as compared to once with the Diecimila bootloader). If your Diecimila has the NG bootloader on it, you may need to physically press the reset button on the board before uploading your sketch. You can burn the correct bootloader onto your Diecimila, see the bootloader page for details.
If you get an error when double-clicking the arduino.exe executable on Windows, for example:
Arduino has encountered a problem and needs to close.
you'll need to launch Arduino using the run.bat file. Please be patient, the Arduino environment may take some time to open.
If you get an error like this:
Link (dyld) error: dyld: /Applications/arduino-0004/Arduino 04.app/Contents/MacOS/Arduino Undefined symbols: /Applications/arduino-0004/librxtxSerial.jnilib undefined reference to _printf$LDBL128 expected to be defined in /usr/lib/libSystem.B.dylib
you probably need to upgrade to Max OS X 10.3.9 or later. Older versions have incompatible versions of some system libraries.
Thanks to Gabe462 for the report.
If you get an error like this when launching Arduino:
Uncaught exception in main method: java.lang.UnsatisfiedLinkError: Native Library /Users/anu/Desktop/arduino-0002/librxtxSerial.jnilib already loaded in another classloader
you probably have an old version of the communications library lying around. Search for comm.jar or jcl.jar in /System/Library/Frameworks/JavaVM.framework/ or in directories in your CLASSPATH or PATH environment variables. (reported by Anurag Sehgal)
If you get this error when launching Arduino:
Java Virtual Machine Launcher: Could not find the main class. Program will exit.
make sure that you correctly extracted the contents of the Arduino .zip file - in particular that the lib directory is directly inside of the Arduino directory and contains the file pde.jar.
If you already have cygwin installed on your machine, you might get an error like this when you try to compile a sketch in Arduino:
6 [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.
If so, first make sure that you don't have cygwin running when you use Arduino. If that doesn't help, you can try deleting cygwin1.dll from the Arduino directory and replacing it with the cygwin1.dll from your existing cygwin install (probably in c:\cygwin\bin).
Thanks to karlcswanson for the suggestion.
If the Arduino software takes a long time to start up and appears to freeze when you try to open the Tools menu, there by a conflict with another device on your system. The Arduino software, on startup and when you open the Tools menu, tries to get a list of all the COM ports on your computer. It's possible that a COM port created by one of the devices on your computer slows down this process. Take a look in the Device Manager. Try disabling the devices that provide COM ports (e.g. Bluetooth devices).
If you're using a USB Arduino board, make sure you installed the FTDI drivers (see the Howto for directions). If you're using a USB-to-Serial adapter with a serial board, make sure you installed its drivers.
Make sure that the board is plugged in: the serial port menu refreshes whenever you open the Tools menu, so if you just unplugged the board, it won't be in the menu.
Check that you're not running any programs that scan all serial ports, like PDA sync applications, Bluetooth-USB drivers (e.g. BlueSoleil), virtual daemon tools, etc.
On Windows, the COM port assigned to the board may be too high. From zeveland:
"One little note if you aren't able to export and your USB board is trying to use a high COM port number: try changing the FTDI chip's COM port assignment to a lower one.
"I had a bunch of virtual COM ports set up for Bluetooth so the board was set to use COM17. The IDE wasn't able to find the board so I deleted the other virtual ports in Control Panel (on XP) and moved the FTDI's assignment down to COM2. Make sure to set Arduino to use the new port and good luck."
On the Mac, if you have an old version of the FTDI drivers, you may need to remove them and reinstall the latest version. See this forum thread for directions (thanks to gck).
[@
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.
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.
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 ].
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
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.
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.
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.
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.
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.
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).
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).
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).
[@
@]
This probably means that the port is actually in use by another application. Please make sure that you're not running other programs that access serial or USB ports, like PDA sync application, bluetooth device managers, certain firewalls, etc. Also, note that some programs (e.g. Max/MSP) keep the serial port open even when not using it - you may to need to close any patches that use the serial port or quit the application entirely.
If you get this error with Arduino 0004 or earlier, or with Processing, you'll need to run the macosx_setup.command, and then restart your computer. Arduino 0004 includes a modified version of this script that all users need to run (even those who ran the one that came with Arduino 0003). You may also need to delete the contents of the /var/spool/uucp directory.
Try installing the latest drivers from FTDI or contacting their support at support1@ftdichip.com.
Most likely because you are sending serial data to the board when it firsts turns on. During the first few seconds, the bootloader (a program pre-burned onto the chip on the board) listens for the computer to send it a new sketch to be uploaded to the board. After a few seconds without communication, the bootloader will time out and start the sketch that's already on the board. If you continue to send data to the bootloader, it will never time out and your sketch will never start. You'll either need to find a way to stop serial data from arriving for the first few seconds when the board powers (e.g. by enabling the chip that sends the data from within your setup() function) or burn your sketch onto the board with an external programmer, replacing the bootloader.
You have selected the wrong item from the Tools > Microcontroller menu. Make sure the selected microcontroller corresponds to the one on your board (either ATmega8 or ATmega168) - the name will be written on the largest chip on the board.
Check for a noisy power supply. It's possible this could cause the chip to lose its sketch.
Alternatively, the sketch may be too big for the board. When uploading your sketch, Arduino 0004 checks if it's too big for the ATmega8, but it bases its calculation on a 1 Kb bootloader. You may have a older bootloader that takes up 2 Kb of the 8 Kb of program space (flash) on the ATmega8 instead of the 1 Kb used by the current bootloader. If yours is bigger, only part of the sketch will be uploaded, but the software won't know, and your board will continually reset, pause, reset.
If you have access to an AVR-ISP or parallel port programmer, you can burn the latest version of the bootloader to your board with the Tools | Burn Bootloader menu item. Otherwise, you can tell the Arduino environment the amount of space available for sketches by editing the upload.maximum_size variable in your preferences file (see: instructions on finding the file). Change 7168 to 6144, and the environment should correctly warn you when your sketch is too big.
The ATmega168 chip on the Arduino board is cheap, but it has only 16 Kb of program code, which isn't very much (and 2 Kb is used by the bootloader).
If you're using floating point, try to rewrite your code with integer math, which should save you about 2 Kb. Delete any #include statements at the top of your sketch for libraries that you're not using.
Otherwise, see if you can make your program shorter.
We're always working to reduce the size of the Arduino core to leave more room for your sketches.
The microcontroller on the Arduino board (the ATmega168) only supports PWM/analogWrite() on certain pins. Calling analogWrite() on any other pins will give high (5 volts) for values greater than 128 and low (0 volts) for values less than 128. (Older Arduino boards with an ATmega8 only support PWM output on pins 9, 10, and 11.)
The Arduino environment attempts to automatically generate prototypes for your functions, so that you can order them as you like in your sketch. This process, however, isn't perfect, and sometimes leads to obscure error messages.
If you declare a custom type in your code and create a function that accepts or returns a value of that type, you'll get an error when you try to compile the sketch. This is because the automatically-generated prototype for that function will appear above the type definition.
If you declare a function with a two-word return type (e.g. "unsigned int") the environment will not realize it's a function and will not create a prototype for it. That means you need to provide your own, or place the definition of the function above any calls to it.
If you get an error like:
[@
@]
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.
Intenta instalar los controladores más recientes de FTDI o ponte en contacto con su grupo de soporte en support1@ftdichip.com.
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.
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?).
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.
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.)
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.
Si obtienes un error como:
[@
@]
it can mean one of two things. Either you have the wrong board selected from the Tools > Board menu or you're not using the right version of avrdude. Arduino uses a slightly modified version of avrdude to upload sketches to the Arduino board. The standard version queries for the board's device signature in a way not understood by the bootloader, resulting in this error. Make sure you're using the version of avrdude that comes with Arduino (source code).
Guide Home
@]
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).
Guide Inicio
Did you drag the Arduino.app out of the disk image (and into, say, your Applications folder)? If not, you won't be able to upload the examples.
at com.oroinc.text.regex.Perl5Matcher._pushState(Perl5Matcher.java) @]
at com.oroinc.text.regex.Perl5Matcher._pushState(Perl5Matcher.java) @]
The Arduino environment does some preliminary processing on your sketch by manipulating the code using regular expressions. This sometimes gets confused by certain strings of text. If you see an error like:
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)
this is what's happening. Look for unusual sequences involving "double-quotes", "single-quotes", \backslashes, comments, etc. In particular the sequence '\"' seems to cause problems; use '"' instead.
Because the RX pin is unconnected, the bootloader on the board may be seeing garbage data coming in, meaning that it never times out and starts your sketch. Try tying the RX pin to ground with a 10K resistor (or connecting it to the TX pin).
The latest Java update from Apple attempts to use 64-bit version of native libraries, but the Arduino application comes with a 32 bit version of the RXTX library. If you launch Arduino, you'll get an error like:
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
To fix this, click on the Arduino application (e.g. Arduino 16.app) in the Finder, and select Get Info from the File menu. In the info panel, click the Open in 32 Bit Mode checkbox. You should then be able to launch Arduino normally.
Because the RX pin is unconnected, the bootloader on the board may be seeing garbage data coming in, meaning that it never times out and starts your sketch. Try tying the RX pin to ground with a 10K resistor (or connecting it to the TX pin).
[VP 1] Device is not responding correctly. try uploading again (i.e. reset the board and press the download button a second time).
[VP 1] Device is not responding correctly. try uploading again (i.e. reset the board and press the download button a second time).
@@
[@
this check.@@
this check.
@]
@@avrdude: Yikes! Invalid device signature.
@@ avrdude: Yikes! Invalid device signature.
If you get an error like:
@@avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.@@
it can mean one of two things. Either you have the wrong board selected from the Tools > Board menu or you're not using the right version of avrdude. Arduino uses a slightly modified version of avrdude to upload sketches to the Arduino board. The standard version queries for the board's device signature in a way not understood by the bootloader, resulting in this error. Make sure you're using the version of avrdude that comes with Arduino (source code).
This might be caused by a conflict with the Logitech process 'LVPrcSrv.exe'. Open the Task Manager and see if this program is running, and if so, kill it before attempting the upload. more information
If it still doesn't work, you can ask for help in the forum. Please include the following information:
The Arduino environment attempts to automatically generate prototypes for your functions, so that you can order them as you like in your sketch. This process, however, isn't perfect, and sometimes leads to obscure error messages.
If you declare a custom type in your code and create a function that accepts or returns a value of that type, you'll get an error when you try to compile the sketch. This is because the automatically-generated prototype for that function will appear above the type definition.
If you declare a function with a two-word return type (e.g. "unsigned int") the environment will not realize it's a function and will not create a prototype for it. That means you need to provide your own, or place the definition of the function above any calls to it.
Some of the Arduino Diecimila boards were accidently burned with the Arduino NG bootloader. It should work fine, but has a longer delay when the board is reset (because the NG doesn't have an automatic reset, so you have to time the uploads manually). You can recognize the NG bootloader because the LED on pin 13 will blink three times when you reset the board (as compared to once with the Diecimila bootloader). If your Diecimila has the NG bootloader on it, you may need to physically press the reset button on the board before uploading your sketch.
Some of the Arduino Diecimila boards were accidently burned with the Arduino NG bootloader. It should work fine, but has a longer delay when the board is reset (because the NG doesn't have an automatic reset, so you have to time the uploads manually). You can recognize the NG bootloader because the LED on pin 13 will blink three times when you reset the board (as compared to once with the Diecimila bootloader). If your Diecimila has the NG bootloader on it, you may need to physically press the reset button on the board before uploading your sketch. You can burn the correct bootloader onto your Diecimila, see the bootloader page for details.
Some of the Arduino Diecimila boards were accidently burned with the Arduino NG bootloader. It should work fine, but has a longer delay when the board is reset (because the NG doesn't have an automatic reset, so you have to time the uploads manually). You can recognize the NG bootloader because the LED on pin 13 will blink three times when you reset the board (as compared to once with the Diecimila bootloader). If your Diecimila has the NG bootloader on it, you may need to physically press the reset button on the board before uploading your sketch.
If the Arduino software takes a long time to start up and appears to freeze when you try to open the Tools menu, there by a conflict with another device on your system. The Arduino software, on startup and when you open the Tools menu, tries to get a list of all the COM ports on your computer. It's possible that a COM port created by one of the devices on your computer slows down this process. Take a look in the Device Manager. Try disabling the devices that provide COM ports (e.g. Bluetooth devices).
If you get an error like this when launching Arduino:
You probably have an old version of the communications library lying around. Search for comm.jar or jcl.jar in /System/Library/Frameworks/JavaVM.framework/ or in directories in your CLASSPATH or PATH environment variables. (reported by Anurag Sehgal)
you probably have an old version of the communications library lying around. Search for comm.jar or jcl.jar in /System/Library/Frameworks/JavaVM.framework/ or in directories in your CLASSPATH or PATH environment variables. (reported by Anurag Sehgal)
If you get this error when launching Arduino:
Make sure that you correctly extracted the contents of the Arduino .zip file - in particular that the lib directory is directly inside of the Arduino directory and contains the file pde.jar.
make sure that you correctly extracted the contents of the Arduino .zip file - in particular that the lib directory is directly inside of the Arduino directory and contains the file pde.jar.
You need to run the macosx_setup.command in the Arduino directory, and then restart your computer. Arduino 0004 includes a modified version of this script that all users need to run (even those who ran the one that came with Arduino 0003). You may also need to delete the contents of the /var/spool/uucp directory.
This probably means that the port is actually in use by another application. Please make sure that you're not running other programs that access serial or USB ports, like PDA sync application, bluetooth device managers, certain firewalls, etc. Also, note that some programs (e.g. Max/MSP) keep the serial port open even when not using it - you may to need to close any patches that use the serial port or quit the application entirely.
If you get this error with Arduino 0004 or earlier, or with Processing, you'll need to run the macosx_setup.command, and then restart your computer. Arduino 0004 includes a modified version of this script that all users need to run (even those who ran the one that came with Arduino 0003). You may also need to delete the contents of the /var/spool/uucp directory.
Check for a noisy power supply. It's possible this could cause the chip to lose its sketch.
Because the RX pin is unconnected, the bootloader on the board may be seeing garbage data coming in, meaning that it never times out and starts your sketch. Try tying the RX pin to ground with a 10K resistor (or connecting it to the TX pin).
There are a few things that could be wrong.
[VP 1] Device is not responding correctly. try uploading again (i.e. reset the board and press the download button a second time).
If you get an error when double-clicking the arduino.exe executable on Windows, for example:
You'll need to launch Arduino using the run.bat file. Please be patient, the Arduino IDE may take some time to open.
you'll need to launch Arduino using the run.bat file. Please be patient, the Arduino environment may take some time to open.
There are a few things that could be wrong.
[VP 1] Device is not responding correctly. try uploading again (i.e. reset the board and press the download button a second time).
Because the RX pin is unconnected, the bootloader on the board may be seeing garbage data coming in, meaning that it never times out and starts your sketch. Try tying the RX pin to ground with a 10K resistor (or connecting it to the TX pin).
(:*toc:)
What if my board doesn't turn on (the green power LED doesn't light up)?
What do to if I get the following error when launching arduino.exe on Windows?
Why won't Arduino run on old versions of Mac OS X?
What do I do if I get the following error when launching Arduino?
What about this error?
What can I do about cygwin conflicts on Windows?
Why doesn't my board show in the Tools | Serial Port menu ?
Why I can't upload my programs to the Arduino board?
What if I get this error when uploading code or using the serial monitor (on the Mac)?
I'm having trouble with the FTDI USB drivers.
Why doesn't my sketch start when I'm powering the board with an external power supply?
Why doesn't my sketch start when I power up or reset the Arduino board?
Why does my sketch appear to upload successfully but not do anything?
How can I reduce the size of my sketch?
The ATmega8 chip on the Arduino board is cheap, but it has only 8 Kb of program code, which isn't very much (and 1 Kb is used by the bootloader).
The ATmega168 chip on the Arduino board is cheap, but it has only 16 Kb of program code, which isn't very much (and 2 Kb is used by the bootloader).
Why don't I get a PWM (an analog output) when I call analogWrite() on pins other than 9, 10, or 11?
The microcontroller on the Arduino board (the atmega8) only supports PWM/analogWrite() on certain pins. Calling analogWrite() on any other pins will give high (5 volts) for values greater than 128 and low (0 volts) for values less than 128.
These questions are for reference only, as older versions of the Arduino software are no longer supported. Please download the latest version from the software page?.
Arduino 0005 won't start on Mac OS X.
Check your console log (Applications > Utilities > Console). If you see a message like "unsupported major.minor version 49.0", your Java is too old. Run Software Update to upgrade to the latest version.
The microcontroller on the Arduino board (the ATmega168) only supports PWM/analogWrite() on certain pins. Calling analogWrite() on any other pins will give high (5 volts) for values greater than 128 and low (0 volts) for values less than 128. (Older Arduino boards with an ATmega8 only support PWM output on pins 9, 10, and 11.)
The sketch may be too big for the board. When uploading your sketch, Arduino 0004 checks if it's too big for the ATmega8, but it bases its calculation on a 1 Kb bootloader. You may have a older bootloader that takes up 2 Kb of the 8 Kb of program space (flash) on the ATmega8 instead of the 1 Kb used by the current bootloader. If yours is bigger, only part of the sketch will be uploaded, but the software won't know, and your board will continually reset, pause, reset.
You have selected the wrong item from the Tools > Microcontroller menu. Make sure the selected microcontroller corresponds to the one on your board (either ATmega8 or ATmega168) - the name will be written on the largest chip on the board.
Alternatively, the sketch may be too big for the board. When uploading your sketch, Arduino 0004 checks if it's too big for the ATmega8, but it bases its calculation on a 1 Kb bootloader. You may have a older bootloader that takes up 2 Kb of the 8 Kb of program space (flash) on the ATmega8 instead of the 1 Kb used by the current bootloader. If yours is bigger, only part of the sketch will be uploaded, but the software won't know, and your board will continually reset, pause, reset.
Guide Home
I'm having trouble with the FTDI USB drivers.
Try installing the latest drivers from FTDI or contacting their support at support1@ftdichip.com.
Why doesn't my sketch start when I'm powering the board with an external power supply?
Because the RX pin is unconnected, the bootloader on the board may be seeing garbage data coming in, meaning that it never times out and starts your sketch. Try tying the RX pin to ground with a 10K resistor (or connecting it to the TX pin).
@@Link (dyld) error:
[@Link (dyld) error:
/Applications/arduino-0004/librxtxSerial.jnilib undefined reference to _printf$LDBL128 expected to be defined in /usr/lib/libSystem.B.dylib @@
/Applications/arduino-0004/librxtxSerial.jnilib undefined reference to _printf$LDBL128 expected to be defined in /usr/lib/libSystem.B.dylib @]
The Arduino software won't run on Intel Mac machines.
Arduino 0003 uses a native library for doing serial communication that was only compiled for PPC. You'll need to build your own version of RXTX. See this forum thread for more details.
Arduino 0004 includes a universal version of the RXTX library and should run without modifications on Intel Mac machines. Please report success or failure to the forum.
In new releases of the software, we'll try to make more efficient use of the program space and give an error message if your program is too big.
We're always working to reduce the size of the Arduino core to leave more room for your sketches.
The Arduino software won't run on Intel Mac machines.
Arduino 0003 uses a native library for doing serial communication that was only compiled for PPC. You'll need to build your own version of RXTX. See this forum thread for more details.
Arduino 0004 includes a universal version of the RXTX library and should run without modifications on Intel Mac machines. Please report success or failure to the forum.
Arduino 0005 won't start on Mac OS X.
Check your console log (Applications > Utilities > Console). If you see a message like "unsupported major.minor version 49.0", your Java is too old. Run Software Update to upgrade to the latest version.
These questions are for reference only, as older versions of the Arduino software are no longer supported. Please download the latest version from the software page?.
The Arduino software won't run on Intel Mac machines.
Arduino 0003 uses a native library for doing serial communication that was only compiled for PPC. You'll need to build your own version of RXTX. See this forum thread for more details.
Arduino 0004 includes a universal version of the RXTX library and should run without modifications on Intel Mac machines. Please report success or failure to the forum.
Arduino 0005 won't start on Mac OS X.
Check your console log (Applications > Utilities > Console). If you see a message like "unsupported major.minor version 49.0", your Java is too old. Run Software Update to upgrade to the latest version.
Why doesn't my sketch start when I power up or reset the Arduino board?
Most likely because you are sending serial data to the board when it firsts turns on. During the first few seconds, the bootloader (a program pre-burned onto the chip on the board) listens for the computer to send it a new sketch to be uploaded to the board. After a few seconds without communication, the bootloader will time out and start the sketch that's already on the board. If you continue to send data to the bootloader, it will never time out and your sketch will never start. You'll either need to find a way to stop serial data from arriving for the first few seconds when the board powers (e.g. by enabling the chip that sends the data from within your setup() function) or burn your sketch onto the board with an external programmer, replacing the bootloader.
If you have access to an AVR-ISP or parallel port programmer, you can burn the latest version of the bootloader to your board with the Tools | Burn Bootloader menu item. Otherwise, you can tell the Arduino environment the amount of space available for sketches by editing the upload.maximum_size variable in your preferences file (see: instructions on finding the file?). Change 7168 to 6144, and the environment should correctly warn you when your sketch is too big.
If you have access to an AVR-ISP or parallel port programmer, you can burn the latest version of the bootloader to your board with the Tools | Burn Bootloader menu item. Otherwise, you can tell the Arduino environment the amount of space available for sketches by editing the upload.maximum_size variable in your preferences file (see: instructions on finding the file). Change 7168 to 6144, and the environment should correctly warn you when your sketch is too big.
What can I do about cygwin conflicts on Windows?
If you already have cygwin installed on your machine, you might get an error like this when you try to compile a sketch in Arduino:
@@ 6 [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.@@
If so, first make sure that you don't have cygwin running when you use Arduino. If that doesn't help, you can try deleting cygwin1.dll from the Arduino directory and replacing it with the cygwin1.dll from your existing cygwin install (probably in c:\cygwin\bin).
Thanks to karlcswanson for the suggestion.
What if my board doesn't turn on (the green power LED doesn't light up)?
If you're using a USB board, make sure that the jumper (little plastic piece near the USB plug) is on the correct pins. If you're powering the board with an external power supply (plugged into the power plug), the jumper should be on the two pins closest to the power plug. If you're powering the board through the USB, the jumper should be on the two pins closest to the USB plug. This picture shows the arrangment for powering the board from the USB port.
(thanks to mrbbp for report and picture)
The Arduino software won't run on Intel Mac machines.
Arduino 0003 uses a native library for doing serial communication that was only compiled for PPC. You'll need to build your own version of RXTX. See this forum thread for more details.
Arduino 0004 includes a universal version of the RXTX library and should run without modifications on Intel Mac machines. Please report success or failure to the forum.
What do to if I get the following error when launching arduino.exe on Windows?
Arduino has encountered a problem and needs to close.
You'll need to launch Arduino using the run.bat file. Please be patient, the Arduino IDE may take some time to open.
Arduino 0005 won't start on Mac OS X.
Check your console log (Applications > Utilities > Console). If you see a message like "unsupported major.minor version 49.0", your Java is too old. Run Software Update to upgrade to the latest version.
Why won't Arduino run on old versions of Mac OS X?
If you get an error like this:
@@Link (dyld) error:
dyld: /Applications/arduino-0004/Arduino 04.app/Contents/MacOS/Arduino Undefined symbols: /Applications/arduino-0004/librxtxSerial.jnilib undefined reference to _printf$LDBL128 expected to be defined in /usr/lib/libSystem.B.dylib @@
you probably need to upgrade to Max OS X 10.3.9 or later. Older versions have incompatible versions of some system libraries.
Thanks to Gabe462 for the report.
What do I do if I get the following error when launching Arduino?
Uncaught exception in main method: java.lang.UnsatisfiedLinkError: Native Library /Users/anu/Desktop/arduino-0002/librxtxSerial.jnilib already loaded in another classloader
You probably have an old version of the communications library lying around. Search for comm.jar or jcl.jar in /System/Library/Frameworks/JavaVM.framework/ or in directories in your CLASSPATH or PATH environment variables. (reported by Anurag Sehgal)
What about this error?
Java Virtual Machine Launcher: Could not find the main class. Program will exit.
Make sure that you correctly extracted the contents of the Arduino .zip file - in particular that the lib directory is directly inside of the Arduino directory and contains the file pde.jar.
Why doesn't my board show in the Tools | Serial Port menu ?
If you're using a USB Arduino board, make sure you installed the FTDI drivers (see the Howto for directions). If you're using a USB-to-Serial adapter with a serial board, make sure you installed its drivers.
Make sure that the board is plugged in: the serial port menu refreshes whenever you open the Tools menu, so if you just unplugged the board, it won't be in the menu.
Check that you're not running any programs that scan all serial ports, like PDA sync applications, Bluetooth-USB drivers (e.g. BlueSoleil), virtual daemon tools, etc.
On Windows, the COM port assigned to the board may be too high. From zeveland:
"One little note if you aren't able to export and your USB board is trying to use a high COM port number: try changing the FTDI chip's COM port assignment to a lower one.
"I had a bunch of virtual COM ports set up for Bluetooth so the board was set to use COM17. The IDE wasn't able to find the board so I deleted the other virtual ports in Control Panel (on XP) and moved the FTDI's assignment down to COM2. Make sure to set Arduino to use the new port and good luck."
On the Mac, if you have an old version of the FTDI drivers, you may need to remove them and reinstall the latest version. See this forum thread for directions (thanks to gck).
Why I can't upload my programs to the Arduino board?
There are a few things that could be wrong.
[VP 1] Device is not responding correctly. try uploading again (i.e. reset the board and press the download button a second time).
What if I get this error when uploading code or using the serial monitor (on the 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)
You need to run the macosx_setup.command in the Arduino directory, and then restart your computer. Arduino 0004 includes a modified version of this script that all users need to run (even those who ran the one that came with Arduino 0003). You may also need to delete the contents of the /var/spool/uucp directory.
Why does my sketch appear to upload successfully but not do anything?
The sketch may be too big for the board. When uploading your sketch, Arduino 0004 checks if it's too big for the ATmega8, but it bases its calculation on a 1 Kb bootloader. You may have a older bootloader that takes up 2 Kb of the 8 Kb of program space (flash) on the ATmega8 instead of the 1 Kb used by the current bootloader. If yours is bigger, only part of the sketch will be uploaded, but the software won't know, and your board will continually reset, pause, reset.
If you have access to an AVR-ISP or parallel port programmer, you can burn the latest version of the bootloader to your board with the Tools | Burn Bootloader menu item. Otherwise, you can tell the Arduino environment the amount of space available for sketches by editing the upload.maximum_size variable in your preferences file (see: instructions on finding the file?). Change 7168 to 6144, and the environment should correctly warn you when your sketch is too big.
How can I reduce the size of my sketch?
The ATmega8 chip on the Arduino board is cheap, but it has only 8 Kb of program code, which isn't very much (and 1 Kb is used by the bootloader).
If you're using floating point, try to rewrite your code with integer math, which should save you about 2 Kb. Delete any #include statements at the top of your sketch for libraries that you're not using.
Otherwise, see if you can make your program shorter.
In new releases of the software, we'll try to make more efficient use of the program space and give an error message if your program is too big.
Why don't I get a PWM (an analog output) when I call analogWrite() on pins other than 9, 10, or 11?
The microcontroller on the Arduino board (the atmega8) only supports PWM/analogWrite() on certain pins. Calling analogWrite() on any other pins will give high (5 volts) for values greater than 128 and low (0 volts) for values less than 128.