Haga clic para más productos.
No se encontraron productos.

Tutorial: ¿Cómo programar un Arduino Pro Mini 328?

118116

En este tutorial explicaremos como programar un Arduino Pro Mini usando un Conversor USB a Serial (TTL), veremos que su uso y programación es tan fácil como en las demás placas Arduino.

Las placas Arduino se comunican con la PC utilizando el puerto USB tanto para la programación como para el intercambio de datos, por esta razón dentro de las placas Arduino encontramos un chip que se encarga de la conversión de USB a Serial TTL. En las primeras versiones de Arduino las placas utilizaban el puerto COM o RS232 para comunicarse con la PC, pero este puerto es cada vez menos común por lo que ahora se utiliza el puerto USB. Las versiones actuales de Arduino Uno y Arduino Mega utilizan un microcontrolador Atmega como conversor, en el caso del Arduino Leonardo o Micro el conversor está integrado en el microcontrolador principal. 

El Arduino Pro Mini a diferencia de las demás placas no incluye un conversor en placa (por un tema de reducción de precio), por lo que es necesario utilizar un conversor externo para la programación del chip o para la comunicación serial. Dentro de los conversores USB-Serial TTL se encuentran los chips: FTDI232, PL2303, CH340G y el CP2102 que es el que usaremos en este tutorial.

En el mercado podemos encontrar diferentes modelos de Arduino Pro Mini, siendo la principal diferencia que debemos considerar: el voltaje de funcionamiento y la frecuencia del cristal. Los 2 modelos principales son el Arduino Pro Mini 328 - 5V/16MHz y el Arduino Pro Mini 328 - 3.3V/8MHz.

Arduino Pro Mini

Existen dos formas de programar el Arduino Pro Mini, la primera es utilizando un Módulo Conversor USB serial TTL y la segunda utilizando un Programador especial para microcontroladores Atmel AVR. En este tutorial desarrollaremos el primer método: Utilizando un coversor USB-Serial. 

Dentro de los conversores USB-Serial el CP2102 se destaca por incluir el pin DTR, que será de gran utilidad al momento de programar nuestro Arduino Pro Mini. El Pin DTR es el encargado de resetear automáticamente al Arduino Pro Mini. Luego de un RESET en el Arduino se ejecuta el gestor de arranque (Bootloader), en ese momento la PC envía los datos con el nuevo "sketch" y el Arduino es reprogramado, si pasan 1 o 2 segundos y no se envían los datos, el Arduino ejecutará su sketch actual.

- Conversor con pin DTR

Modulo CP2102

- Conversor sin Pin DTR 

Modulo PL2303

Programar Arduino Pro Mini usando un Conversor con pin DTR


Para este caso tan solo basta con conectar el Arduino pro mini y el conversor de la siguiente manera.

  
Pro Mini    CP2102 
DTR     <-    DTR  
TXO     ->    RXD  
RXI      <-    TXID 
VCC     <-    5V    
GND    <-    GND

Arduino Pro Mini y CP2102
      * Si el arduino Pro Mini es de 3.3V, el VCC debe conectarse al pin 3V3 del Conversor

En nuestro ejemplo hemos usado un módulo conversor CP2102, pero el orden de pines puede cambiar entre los diferentes modelos.

El siguiente paso es seleccionar la tarjeta de nuestro Arduino Pro Mini en el IDE de Arduino

  

Programacion Pro Mini 2

  

Ahora seleccionamos el Puerto COM correspondiente al CP2102 en nuestro caso es el COM5

  

Selecion de puerto COM de CP2102

Si tienen varios puertos COM o no están seguros si es el puerto COM correspondiente al módulo conversor pueden averiguarlo en Equipo->Propiedades>Administración de dispositivos

  

Puerto serial COM del CP2102

  

Una vez seleccionado el tipo de tarjeta, el puerto COM y haber hecho las conexiones correspondientes, solo hace falta hacer clic en "cargar". Si todo es correcto, la programación o carga no debe tener problemas y no debe arrojar ningún tipo de error.

  

Carga terminada con CP2102

  

  

Programar Arduino Pro Mini usando un Conversor sin pin DTR

En este caso dejamos sin conectar el pin DTR del Pro mini, lo demás conectamos igual que en el caso anterior.

  
Pro Mini    PL2303
TXO     ->      RXD
RXI     <-       TXD
VCC    <-       5V    
GND    <-       GND

Pro Mini y PL2303

   * Si el arduino Pro Mini es de 3.3V, el VCC debe conectarse al pin 3V3 del Conversor


Ahora como en el caso anterior seleccionamos en tarjeta al Pro Mini y el puerto COM correspondiente al conversor, el puerto COM del conversor lo puedes ver en “administración de dispositivos” (igual que en el caso anterior):

    

Targeta Pro Mini

   

Seleccion del COM del PL2303

   

Puerto serial COM del PL2303

  

La diferencia con el otro módulo es al momento de Cargar el programa, pues al no tener el Pin DTR, el IDE de Arduino no va a poder resetear automáticamente al Pro Mini, por lo que se tendrá que hacer de forma manual:

Clic en cargar el programa, y después reseteamos manualmente el Arduino justo un segundo antes o en el  cambio de “compilando” a “Cargando”.

Otra forma más fácil puede ser en tener presionado el botón de Reset desde el momento que se da clic en cargar y soltarlo cuando pasa de “compilando” a “cargando”.

Si todo es correcto el IDE debe indicar: "Carga Terminada" 

   

Carga terminada Mini Pro y PL2303

  

Si no se logra resetear el Arduino Pro Mini en el momento adecuado, tendremos el siguiente error:

   

Error de Carga Arduino Mini Pro

   

Si a pesar de indicar "carga terminada" aparecen errores en la consola, significa que no se ha cargado correctamente el programa, por lo que debemos volver a cargar el sketch.

*Nota 1: Si el Arduino Pro Mini ya está alimentado por una fuente de voltaje externa ya no se debe conectar los 5V del conversor.
*Nota 2: el Arduino Pro Mini utilizado en este tutorial es de 5V/16Mhz, pero existen también modelos de 3.3V, por lo que hay que tener cuidado al momento de alimentarlo, si este fuera el caso, VCC se tiene que conectar al pin de 3.3V (3V3) del conversor serial

   

   

Productos relacionados
Artículos relacionados
26 Comentarios
  • Ab*

    Ab* 01/03/2021 Responder

    Muy buena info! Quería realizar esta pregunta antes de que estropee la placa.. tengo el CP2102 que viene con el DTR. Pero quiero conectarlo a una placa lilypad simple board (usa el 328P). Los pines para la conexión son GND, GND, VCC, RXD, TXD, DTR.. la conexion sería lo mismo que con el arduino? Los conecté de esta forma:

    lilypad cp2102

    DTR DTR
    TX RX
    RX TX
    VCC +5V
    GND -
    GND GND

    (Si tuviera el FT232 conectaria el otro GND al CTS), pero debido a que no lo tengo no sé si las conexiones son las correctas en el CP2102. Si alguien me puede ayudar se lo agradecería mucho. Saludos!!
    • Fe****

      Fe**** 17/05/2021 Responder

      Sí, estaría bien
  • An*****

    An***** 04/08/2020 Responder

    Muy buenas,
    Estoy teniendo problemas al subir a la placa el programa y me sería de mucha ayuda que alguien me pudiera ayudar.
    He conectado la placa al conversor (con DTR) correctamente, y he cargado sin ningún problema el ejemplo de Blink. Pero cuando he ido a subir otro programa no me dejaba, y me saltaba el error de cuando no se resetea correctamente la placa.
    A pesar de que debería resetearse automáticamente, he intentado también hacerlo de forma manual y tampoco he logrado que se cargue ningún programa.

    Si a alguien que ha solucionado el mismo problema, o sabe como solucionarlo, agradecería mucho la ayuda.
    • di***

      di*** 24/10/2021 Responder

      hola Andres, me pasa exactamente igual si solucionaste agradezco la info
      • ju****

        ju**** 23/05/2022 Responder

        tengo el mismo problema alguien ya encontró la solución
  • Al*******

    Al******* 05/05/2020 Responder

    Hola disculpa. lo que no logro entender, es que, si en estos modulos la salidas de las señales TX y RX tienen niveles logicos 3.3v.
    Se entiende que tiene un pin de salida de alimentacion para dispositivos externos de 3.3v y otro a 5v . pero el nivel logico de las otras señales? son todas a 5v? son todas a 3.3v? tendra algo para configurarlo?

    Gracias y Saludos
  • Gu*******

    Gu******* 02/12/2019 Responder

    Hola Sebastian, te felicito por este tutorial. Les comparto que yo estaba de necio queriendo programar erroneamente mi tarjeta al seleccionar "Arduino Mini"... Lo correcto fue seleccionar Board: "Arduino Pro or Pro Mini" y Processor: "Atmega 328P (5V, 16 MHz)"... saludos
  • Lu***

    Lu*** 01/05/2019 Responder

    Hola, he connectado el arduino al ordenador, arduino pro mini 5v 16mhz, pero cuando intento suvir el archivo SSD1306Ascii , me da,Sketch uses 1440 bytes (4%) of program storage space. Maximum is 30720 bytes.
    Global variables use 146 bytes (7%) of dynamic memory, leaving 1902 bytes for local variables. Maximum is 2048 bytes
    Pero la pantalla no enciende cuando la connecto a los 5v, que estoy haciendo mal?, porque he probado otro codigo y funciona, pero con este no
  • Du****

    Du**** 01/04/2019 Responder


    Hello, I have a problem when I run M365 arduino 1.6.6 I get message of erratic compilation "Arduino : 1.6.6 (Windows 10), Carte : "Arduino Pro or Pro Mini, ATmega328 (5V, 16 MHz)"

    In file included from C:UsersfredDesktoptrotinettem365_dashboard-masterM365M365.ino:1:0:

    sketchdefines.h:1:22: fatal error: WatchDog.h: No such file or directory

    #include "WatchDog.h"

    ^

    compilation terminated.

    exit status 1
    Erreur lors de la compilation.

    Do you have a solution ? thank you
  • ed*

    ed* 26/12/2018 Responder

    Hola
    Tengo problemas al cargar el programa. Me sale el fallo "No such file or directory
    "
    He descargado correctamente el programa ya que en el software de arduino veo el codigo.
    Utilizo version de arduino 1.8.8
  • Jo** *******ez

    Jo** *******ez 14/11/2018 Responder

    solo hay que instalar la carpeta blink para que funcione la pantalla con todas las funciones en patin xiaomi m365 ?
    con eso solo bastaria?
  • Ra** ****ga

    Ra** ****ga 08/02/2018 Responder

    Saludos estoy trabajando con un conversor USB-Serial el CP2102 de 6 pines y un Pro MIni y al poco tiempo de estar subiendo el programa aparece este error, por favor me pueden indicar que es lo que sucede? Gracias por su ayuda
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xde
  • ro*** ******  ***ra

    ro*** ****** ***ra 08/02/2018 Responder

    muy buen informe gracias
  • Jo*** **** ****** **za

    Jo*** **** ****** **za 03/12/2017 Responder

    Funcionó perfecto con un conversor PL2303 (sin DTR) manteniendo pulsado el reset hasta el cambio de compilado a subiendo. Ya me sentía frustrado de que no pudiera subir un sketch.

    ¡Gracias!
  • Lu*****

    Lu***** 04/11/2016 Responder

    Hola, tengo un Arduino Pro Mini pero no se que modelo es. El cristal esta borrado asíque no se la frecuencia. Y atrás de la placa tiene las leyendas 8MHz, 16MHz, 20MHz, 3V3, 5V. Como puedo saber que modelo es? Gracias!
    • Na*****

      Na***** 05/11/2016 Responder

      Hola Luciano, el Arduino Pro Mini tiene un pequeño regulador, el valor de regulador es de 3.3V o de 5V dependiendo del modelo. Alimenta por el pin YAW con 5V y mide el valor del voltaje en VCC si en VCC obtienes 3.3V es porque la placa es de 3.3V/8MHZ. Las dos placas solo se diferencian en el regulador y en el cristal. Saludos
  • sa******

    sa****** 03/09/2016 Responder

    buenas, se puede programar una arduino Pro mini para que transmita temperatura via NFC. Gracias
    • Na*****

      Na***** 14/09/2016 Responder

      Hola, eso va a depender del módulo NFC que uses, todo lo que se puede programar con un arduino uno también se lo puede programar en aun Arduino Pro mini, esto porque tienen el mismo Microcontrolador.
  • Se*******

    Se******* 16/08/2016 Responder

    Hola, muy bueno el post! He probado con todo lo que dices, seguí el paso a paso ( tengo un conversor sin DTR ) pero aún así no he podido hacerlo funcionar. Simplemente estoy intentando probar el programa blink, y no logro hacer que funcione. La computadora me reconoce correctamente al conversor entre sus puertos, he elegido la opcion de Pro Mini 5v 328 ( aunque en mi arduino el microcontrolador dice atmega 328P, no sé si será lo mismo ), y al intentar subirlo me falla. Me aparece este error :
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xa7
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xa7

    y asi sigue hasta llegar al attempt 10 of 10 : not it sync: resp= 0xa7

    Tienes idea de qué puede ser? Ya he probado todo y leido en muchos foros. El bootloader debe estar bien , porque ni bien le doy alimentación a la placa y aprieto el boton reset me titila el led del pin 13 ( sin que le haya cargado el programa ).

    Saludos y muchas gracias,
    Sebastián.
    • Na*****

      Na***** 22/08/2016 Responder

      Hola Sebastian, ten en cuenta que si estas usando un conversor sin DTR, tienes que resetear manualmente tu arduino, justo antes que empiece a cargar el programa como se explica en el tutorial, Verifica también que tengas seleccionado la tarjeta correcta, en tu caso placa pro mini y en procesador Atmega328(5V,16Mhz), si no seleccionas la placa o frecuencia correcta, no podrás programar tu arduino.
      • ro**

        ro** 01/02/2019 Responder

        Hola. Me pasa exactamente lo mismo que a Sebastián, a pesar de que he reseteado manualmente el arduino
        Roke
  • Lu***

    Lu*** 27/07/2016 Responder

    Hola! muy buen post!
    Tengo el Pro Micro de 16MHZ con un conector MicroUSB, ya hice lo necesario para que aparezca en la lista de placas, pero no se qué Programador debo seleccionar en el Arduino-IDE. ¿me podrían dar alguna sugerencia?
    Saludos y gracias.
    • Na*****

      Na***** 28/07/2016 Responder

      Hola Lucas, verifica bien qué tipo de placa estas usando, el Arduino Pro Mini y el Arduino Pro Micro son placas distintas, Si el tuyo es el Arduino Pro Micro, en el IDE prueba seleccionando la placa Arduino/Genuino Micro o Arduino Leonardo, ya que estos usan el mismo microcontrolador.
  • Ga** *****al

    Ga** *****al 16/07/2016 Responder

    Is there a difference between the pro minis on the market? I'm looking to purchase one and it seems that there are a lot of 3rd party manufacturers which make them? Are they any different in terms of quality or performance? Here's the one I want to buy: arduino pro mini.

    Thanks,
    Gary
  • Da**** *******es

    Da**** *******es 11/07/2016 Responder

    ¡Hola amigo! ¿Cómo sé si mi Arduino Pro Mini es de 3,3V o 5V? Sólo sé que el cristal es de 16.000;
    Gracias
    • Na*****

      Na***** 12/07/2016 Responder

      Hola Daniel, si el cristal es de 16 MHz lo más probable es que sea de 5V, un Pro mini de 3.3V generalmente viene con un cristal de 8MHz (Frecuencia recomendada para el ATMEGA328 a 3.3V). Pero si tu Pro mini es de 5V también puedes alimentarlo con 3.3V, en el IDE Arduino lo que importa es la frecuencia, que está definida por el cristal.
Dejar un comentario
Deja su comentario

Menú

Ajustes

Crear una cuenta gratuita para usar listas de deseos.

Registrarse