Geek Electrónica

Explicaciones, tutoriales y noticias sobre electrónica y tecnología en general

ArduinoMicrocontroladoresProteusSimuladores

SIMULAR ARDUINO CON PROTEUS

Como ya lo había mencionado en una publicación anterior de Geek Electrónica, una parte importante en el proceso de diseño y desarrollo de circuitos electrónicos es la etapa de simulación, con esta etapa podemos verificar que el circuito que se está diseñando funcione correctamente y de no ser así se puede ir depurando el circuito hasta que se logre el resultado deseado y poder llevar el diseño a una etapa física.

Por otra parte una de las tarjetas de desarrollo electrónico más utilizadas en la actualidad es arduino, estas tarjetas han logrado captar la atención de una gran cantidad de personas interesadas en el desarrollo de prototipos electrónicos, dentro de este gran público que ha logrado captar se encuentran desde personas con grandes conocimientos de electrónica hasta aficionados sin mayor conocimiento de electrónica pero que tienen un gran interés por esta.

En esta publicación voy a dar una breve explicación sobre cómo se puede hacer para simular algunas de las tarjetas con las que cuenta arduino dentro del simulador proteus tanto en la versión 7 como en la versión 8.


Archivo .hex de arduino

Al igual que cuando se trabaja con microcontroladores PIC, el compilador de arduino en este caso genera un archivo “.hex”para cada programa que estemos desarrollando, la diferencia es que para el caso de arduino este archivo no queda a simple vista del usuario y por eso lo primero que vamos a ver es donde encontrarlo ya que es necesario para poder llevar a cabo la simulación en proteus.
 
Para este caso voy a tomar uno de los ejemplos que vienen incluidos dentro del IDE de arduino, luego de tener el programa escrito y dar click en “verificar” el IDE de arduino lo que hace es compilar nuestro programa y en caso que no existan errores crea el archivo “.hex” antes mencionado.

 

ejemplo programa Arduino

 

Para encontrar el archivo “.hex”que se requiere para poder hacer la posterior simulación es importante activar en el computador la visualización de archivos ocultos, luego de esto es necesario seguir la siguiente ruta:
 
C: –> Usuarios –> Su usuario –> AppData
 
Estando en ese punto, ya en la casilla de búsqueda se puede escribir .hex y con esto el sistema encontrará todos los archivos con terminación .hex que se encuentren dentro de esta carpeta y dentro de los cuales estará el archivo de nuestro programa. En caso de querer hacer la búsqueda mas reducida en lugar de colocar en la casilla de búsqueda tan solo la terminación del archivo (“.hex”), también es posible escribir el nombre completo del programa que se compilo con la terminación del archivo y así solo aparecerá el que se requiere por ejemplo para este caso bastaría con escribir blink.hex.

 

Muestra archivo hex



En cuanto a este archivo .hex que genera el IDE de Arduino, si lo que se quiere es evitar tener que seguir esta ruta mencionada anteriormente que es un poco extensa y difícil de recordar, también es posible cambiar la ubicación de donde será guardado dicho archivo .hex, si te interesa saber como hacerlo puedes leer la publicación respectiva siguiendo el link a continuación:

Cambiar ubicación de archivo .hex de Arduino. (Enlace a publicación de Geek Electrónica)

Simular Arduino en Proteus 7:

 
Para poder simular las tarjetas de arduino (MEGA 1280, MEGA 2560 y UNO) primero que todo es necesario descargar unas librerías que contienen los archivos necesarios para estas tarjetas, dicha librería la pueden descargar del siguiente link, el cual quiero aclarar que no es mío sino que lo encontré mientras navegaba por la web.
 
 
Luego de haber descargado las librerías es necesario copiar esos dos archivos dentro de la carpeta Library que se encuentra dentro de la carpeta de instalación de proteus. Después de haber hecho esto lo siguiente es volver a abrir proteus y en el buscador de elementos basta con escribir arduino para que ya salgan las tres tarjetas que se pueden simular.
 
Busqueda Arduino en proteus
 
Luego de seleccionar la tarjeta con la que se quiere trabajar y colocarla en el entorno de trabajo de proteus, basta con seleccionar el archivo .hex para poder comenzar con la simulación.
 
Simular Arduino Proteus 7
 
Todo el proceso descrito para la simulación en proteus 7 se puede observar en el siguiente vídeo:


Simular Arduino en Proteus 8:

La versión 8.1 de proteus ya incluye por defecto la posibilidad de simular tres tarjetas de desarrollo de arduino (168, 328 y MEGA 2560), es por esta razón que para este caso no es necesario descargar las mismas librerías que se descargaron para hacer la simulación en la versión 7.
 
En este caso lo único que hay que hacer luego de abrir proteus es seguir la siguiente secuencia de pasos:
 
New Project –> From Development Board –> Seleccionar tarjeta a simular
 
Inicio Proyecto proteus 8
 
Esta nueva opción de proteus además de permitir simular las tres tarjetas de arduino ya mencionadas, también permite simular algunas tarjetas de desarrollo que se pueden encontrar en el mercado con microcontroladores PIC.
 
Luego de haber seleccionado la tarjeta de desarrollo con la que se quiere trabajar y contar con ella en el área de trabajo de proteus, lo siguiente es cargar el archivo .hexde la misma forma que se hizo en proteus 7.
 
Simular Arduino proteus 8
 
Otra opción interesante que tiene esta versión de proteus, es que al seleccionar la tarjeta arduino también se abre dentro del simulador una nueva pestaña llamada “Source Code” donde se puede escribir y compilar el código del programa que se quiere simular y que también genera el archivo “.hex” necesario para llevar la simulación. En este caso simplemente luego de compilar el programa solo hay que volver a la ventana donde se encuentra el circuito esquemático y ejecutar la simulación ya que cada vez que se compila el código directamente en proteus, el programa por defecto ubica la ruta del archivo .hex.
 
Todo el proceso descrito para la simulación en proteus 8 se puede observar en el siguiente vídeo:
 
 

Iván Cuadros Acosta

Licenciado en Electrónica y Master en desarrollo de aplicaciones móviles con experiencia en docencia universitaria. Apasionado por la electrónica y la programación.

20 comentarios en «SIMULAR ARDUINO CON PROTEUS»

  • buenas noches! saben que significa este error?

    can´t change to arduino core directory

  • Al compilar en el Proteus, me aparece el siguiente error: The selected compiler 'Arduino.AVR' is not installed. Compilation Failed. Check the project settings. ¿Cómo puedo solucionarlo? ¿Cómo instalo el compilador que me hace falta?

  • Debes instalar el compilador de Arduino. Es sencillo: desde la pestaña "source code" de Proteus, abres el menú "system" y seleccionas la opción "compilers configuration". En la columna "compiler" buscas arduino.AVR. Verás que a la derecha hay un botón que dice "download", haces clic allí y lo instalas. Espero te sea de utilidad

  • Proteus no me permite simular con arduino mega, ya he descargado dos librerias y no realiza ninguna simulacion, ya realice la prueba con el arduino uno y funciona normal, que error podria estar sucediendo ?

  • Un problema que se le presentó a algunos usuarios (me incluyo) es el siguiente error al compilar:

    /* mksketch -C mega2560 -N atmega2560 -F 16000000 ../main.ino
    Can't change to Arduino core directory
    make: * [main.cpp] Error 1

    Error code 2

    Compiler configuration file is modified. Please load default project settings (Project settings – Compiler – Defaults).

    La opcion que me sirvio esta en este foro: http://www.edaboard.com/thread328327-2.html

    Desinstalar Arduino y dejar que Proteus realice la instalación del IDE del ARDUINO.

    En mi caso me instalo la version 1.0.5 del IDE del Arduino (lo cual en mi caso personal no me parecio tan satisfactorio pero sí me sirvió para ejecutar las simulaciones de Arduino con el Proteus).

  • Hola, Muchas gracias por visitar el blog y ademas por participar y ayudar con la solución del problema que algunos de los lectores han comentado sobre la simulación de arduino en proteus.

    Aunque creo que si no te pareció tan satisfactorio trabajar con la versión de IDE que te instaló, en lugar de hacer el programa directamente en proteus, puedes hacer el programa directamente en el IDE de arduino como se hace normalmente y luego de compilar tan solo cargas el archivo .hex al modelo de arduino en proteus, como si se estuviera trabajando con cualquier otro microcontrolador en proteus.

  • Hola, sí, lo intenté, pero no pude realizar el paso de cargar el archivo ".hex" al proteus ya que en el compilador del arduino no me figuraba la línea correspondiente. De cualquier manera lo voy a reveer, estoy en eso. Saludos!

  • Bien, ya pude seguir el tutorial explicado y funciono todo ok, muchas gracias!!. Saludos

  • Con mucho gusto y me alegra que te haya servido la explicación y gracias por visitar el blog.
    Recuerda que nos puedes seguir en nuestras cuentas de redes sociales de facebook, twitter y el canal de YouTube.

  • Hola Ivan, he tenido las siguientes dificultades con Proteus y Arduino.

    1) Respecto del archivo ".hex" generado por el Arduino: es actualizado cada vez que compilo un nuevo programa, me borra el ".hex" del anterior programa y me escribe el del nuevo.
    2)Cada vez que ejecuto la simulacion en Proteus con el archivo ".hex" correspondiente (generado en la compilacion con el Arduino), debo cargarlo nuevamente, es decir, al guardar el proyecto de Proteus, este no guarda una copia del archivo ".hex" para ejecutar posteriormente la simulacion.

    Mi consulta sería si este es el comportamiento por defecto para trabajar con estos programas, y si se puede cambiar para no tener que cargar cada vez el ".hex".

    Saludos. Muchas gracias.

  • Hola buen día y muchas gracias por el blog.

    En cuanto a tus preguntas.

    1- Si, el archivo ".hex" que es generado por arduino es actualizado cada vez que se compile un programa y borra cualquier otro archivo ".hex" de programas anteriores, por lo tanto mi consejo si por alguna razón después de tener terminado un proyecto quieres guardar el archivo ".hex" es que lo copies y lo pegues en otra carpeta, puede ser donde tienes alojado todo el proyecto.

    2- El segundo caso no entiendo muy bien a lo que te refieres, por lo tanto voy suponer dos opciones y espero que con alguna de las dos acierte al caso que se te está presentando. jajaja

    * Opción 1: Estas trabajando en un programa de arduino que estas compilando continuamente y en una sola sesión de trabajo el archivo se esta actualizando constantemente, pero cada vez que ejecutas el "Play" de la simulación en proteus, el simulador no reconoce los cambios y te toca volver a cargar el archivo.

    * Opción 2: Guardas y cierras el proyecto en proteus y luego cuando quieres volver a trabajar, lo abres pero te toca volver a cargar de nuevo la dirección completa del archivo ".hex"

    Si tu caso es la opción 1 que plantee, me parecería bastante extraño ya que proteus siempre reconoce automáticamente los cambios que se hagan en un archivo ".hex" durante la misma sesión de trabajo, sin necesidad de estar cargando continuamente el archivo ".hex"

    Pero si tu caso es la segunda opción, entonces si es algo normal que sea necesario volver a cargar el archivo ".hex", mas que todo si transportamos los proyectos de proteus en memorias USB o existe cualquier cambio en la ubicación del archivo de proteus.

    Espero que esto haya sido de utilidad para solucionar tu duda.

  • Perfecto, me quedo super claro, te agradezco, mi caso era la opción 2 jaj, muchas gracias!!. Abrazo!

  • tengo proteus 8 pero en las entradas analogicas de arduino uno, siempre muestra el mismo valor de 1023. No tengo ni idea por donde va el problema.

  • Hola buen día y gracias por visitar el blog.

    En cuanto a tu problema, necesitaría mas información para aventurarme a dar una posible respuesta o solución.

    ¿Me podrías informar que estas conectando a las entradas análogas del arduino, osea cual es la señal análoga que estas ingresando al arduino?, ¿en el código de programación todo sale perfecto, no hay ningún error de compilación del código?

    Si me puedes dar mas información sobre el problema que tienes, es mas factible que pueda darte una solución acertada.

    De nuevo muchas gracias por visitar el blog y recuerda que nos puedes seguir en nuestras cuentas de redes sociales de facebook, twitter y el canal de YouTube.

  • gracias por atender mis plegarias. La secuencia es la siguiente.
    En Proteus 8.

    -Pongo una tension de 1, 2 , 3 o 4 voltios sobre cualquiera de las entradas analogicas de arduino uno o mega.

    -Coloco a la salida de Tx un "terminal virtual" para ver las variables de entrada, y siempre mide 1023 en la entradas analogicas.

    -Miro por internet y parece ser que hay un bug en las primeras versiones
    del simulador para Proteus.

    -Meto las versiones nuevas y no hay forma de eliminar el bug.

  • Hola de nuevo.

    Me parece bastante extraño tu problema, he hecho unas simulaciones de prueba y no se me ha presentado ningún problema con la conversión de análogo a digital, ni tampoco con la transmisión serial por el terminal virtual de proteus.

    * Estas escribiendo y compilando el código en el editor que trae proteus o lo estas haciendo directamente con el IDE de Arduino?

    Si lo estas haciendo con el editor que trae proteus, te recomiendo que lo hagas directamente en el IDE de arduinoy luego en proteus cargas el archivo .HEX que te genera.

    Si lo estas haciendo directamente con el IDE de Arduino y con el archivo .hex, me gustaría que en un comentario pegaras el código que estas utilizando a ver si es que hay algún problema con el código.

    Gracias por visitar el blog.

  • empeze a simular arduino en proteus, se pone lento además de que a los segundos de simular, sale PDS.exe dejo de funcionar, y luego se cierra proteus, tengo una core i3 laptop

    • Hola buen día y gracias por visitar el blog.

      En respuesta a tu inquietud pueden haber dos opciones:

      * La primera es que el programa que estés simulando tenga algunos errores (no de compilación pero que si retrasen la ejecución) y esto logre sobrecargar el sistema en la simulación y con eso hacer un poco lenta la simulación hasta que llega a cerrarse el proteus.

      * La segunda es que si el programa que tienes instalado no es original, se haya presentado algún problema a la hora de hacer la instalación del proteus y luego la instalación del Crack, lo cual puede estar generando errores de ejecución del proteus. Podrías intentar desinstalando el proteus y volviéndolo a instalar.

      espero que la respuesta te sea de ayuda.

      Si te gusta el contenido del blog y quieres estar al día en las publicaciones, puedes seguirnos en las cuentas de Facebook, Twitter y el canal de YouTube.

Los comentarios están cerrados.