Programando um Arduino Pro Mini com Arduino Uno 50

Mexer com o Arduino é muito prático quando você está em um ambiente de testes, em cima da bancada, com uma infinidade de fios encaixados na protoboard. Por outro lado, às vezes existe a necessidade de se fazer instalações permanentes do Arduino, em espaços restritos.

Vamos pegar como exemplo um projeto de acionamento de lâmpada utilizando relé e controle remoto IR, controlado pelo Arduino Uno. Se você for utilizar isso em algum cômodo da sua residência, provavelmente vai ter que colocar o Arduino perto do interruptor para ligar os fios, e improvisar uma caixa ou algum tipo de suporte para a placa. Seria bem mais prático se você pudesse colocar todo o circuito dentro da própria caixa do interruptor, embutida na parede.

Para esses casos, existe uma versão reduzida do Arduino chamada Arduino Pro Mini, uma placa de 34 x 19 mm que faz tudo o que um Arduino “normal” faz, sem ocupar tanto espaço.

Arduino Pro Mini

Antes de detalharmos as conexões da placa, vamos dar uma olhada em suas principais características:

  • Microcontrolador ATmega328p
  • 14 Portas digitais, das quais 6 podem ser usadas como PWM
  • 8 portas analógicas
  • Botão de reset
  • Alimentação : 5 à 12v
  • Memória de 32K
  • Led indicador de funcionamento e led ligado à porta 13, como no Arduino Uno
  • Corrente máxima por porta : 40 mA
  • Clock : 16 Mhz

O modelo da imagem acima, que é vendido na FILIPEFLOP, vem com 2 barras de pinos para os conectores das portas laterais, e 1 barra de pinos 90 graus para conexão dos pinos de comunicação com o módulo FTDI, já que essa placa não vem com a parte de comunicação USB embutida.

Os pinos no lado direito (GRN, TX, RX, Vcc, GND e BLK) são usados para alimentação e programação, e devem ser ligados na seguinte ordem :

GRN – Ligado à porta RESET do Arduino
TXD – Ligado ao pino 1 (TX) do Arduino
RX – Ligado ao pino 0 (RX) do Arduino
Vcc – Ligado ao 5v do Arduino
GND – Ligado ao GND do Arduino
BLK – Não conectado

Atenção nessa ligação, pois alguns módulos podem vir com essa pinagem invertida, mas você deve seguir o esquema de ligação listado acima, ok ?

Finalmente, os pinos nas laterais são utilizados pelas portas e também para alimentação do Arduino Mini utilizando uma fonte externa.

Como eu comentei acima, o Arduino Mini vem com 3 barras de pinos, mas elas não vem soldadas. Assim, você pode escolher a configuração que seja mais adequada ao seu projeto, e até mesmo nem usar a barra de pinos, soldando direto os fios nas portas ou utilizando algum outro tipo de conector.

A parte de programação é semelhante às outras placas Arduino, com a diferença que no Arduino Mini o circuito de comunicação USB não está embutido na placa. Logo tem a opção de adquirir um módulo FTDI, como esse…

Modulo FTDI

…ou então, se você tem um Arduino Uno disponível, pode usar o procedimento a seguir para programar seu Arduino Mini.

Antes de mais nada, é necessário retirar o microcontrolador Atmega do Arduino Uno, para evitar qualquer tipo de conflito que atrapalhe o funcionamento do circuito. Retirado o chip, monte o circuito da seguinte maneira :

Arduino Mini - Circuito Programação

Conecte o cabo USB no Arduino Uno e abra a IDE do Arduino. Observe que o Arduino Mini também será ligado, já que está sendo alimentado pelos 5v do Arduino Uno.

Na IDE, vá no menu FERRAMENTAS, depois em PLACA, e escolha “ARDUINO PRO or PRO MINI (5V, 16 Mhz) W/ ATmega328” :

IDE-Ferramentas

Feito isso, utilize a IDE para carregar normalmente seu programa no Arduino Mini. Para teste, utilizei a porta 7 para piscar um led :

Para usar o seu Arduino Mini depois de programado, sem depender do Arduino Uno, conecte uma fonte de alimentação 5v utilizando as portas laterais:

Arduino Mini - Circuito Bateria

Prático, não ? O Arduino Mini também pode se mostrar muito útil em configurações com o Módulo RF 433 Mhz, por exemplo, enviando dados de um sensor para um webserver ou para um outro Arduino, mas isso é assunto para um próximo post. Até lá !

 Gostou? Deixe seu comentário logo abaixo. Em caso de dúvidas, caso queira trocar uma ideia, ou até mesmo dividir seu projeto, acesse nosso Fórum!

Posts Relacionados

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

50 Comentários

  1. Adilson – Equipe FILIPEFLOP

  2. Tem como programar o PRO MINI utilizando o arduino NANO v3?

    1. Sim, o procedimento é quase o mesmo, exceto que não se conecta o pino tx
      A gravação é feita normalmente, como se fosse uma única placa nano, mas o programa vai para os dois!

      pró -> nano:
      grn -> rst
      rx -> rx
      vcc -> 5V
      gnd -> gnd

  3. Boa Tarde,

    O arduino pro mini, faz todas as coisas que o arduino uno faz ?

    Eu conseguiria fazer esse projeto no arduino pro mini ?
    Por exemplo, eu tenho uma shield de vibração e toda vez que detectar vibração aciona um buzzer.

    Muito Obrigado

    Thadeu Munhóz Cesário
    1. Boa noite Thadeu,

      Sim, você pode utilizar os mesmos programas.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  4. Eu poderia conectar uma bateria de 9V para alimentar o arduino pro mini ?

    Thadeu Munhóz Cesário
    1. Boa noite Thadeu,

      Sim, o Arduino Mini pode ser alimentado por uma bateria de 9v.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  5. Gostaria de saber se posso também utilizar o Arduino Mega ADK para programar o Mini?

    1. Boa tarde Ruani,

      Não testamos esse procedimento ainda. A principio o ATMega é retirado do Arduino UNO para evitar conflitos, mas isso não pode ser feito no ADK, já que o microcontrolador é soldado. Você pode tentar também utilizar as outras portas seriais do ADK para programar o mini, já que o ADK possui 4 seriais:

      Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and 14 (TX).

      Abraço !

      Adilson – Equipe FILIPEFLOP

  6. Amigo, no meu não funcionou. Tentei com duas placas Arduíno diferentes. A proposito falta algo na sua foto. o Anodo do LED nao esta conectado a lugar nenhum.

    1. Desculpa. Funcionou sim. Ao soldar o pino TX tinha ficado meio frouxo. Revisei as soldas e funcionou. Obrigado.

      1. Boa noite,

        Legal ! Obrigado pelo retorno.

        Abraço !

        Adilson – Equipe FILIPEFLOP

    2. Boa noite,

      Obrigado por avisar, realmente o segundo circuito ficou sem o GND. Vamos consertar.

      Estranho não ter funcionado. Veja se por acaso a marcação na placa não está invertida.

      Grato.

      Adilson – Equipe FILIPEFLOP

  7. Oi! muito bom, mas como é que vcs deixaram a IDE desse jeito ai, com fundo preto?

    1. Boa tarde Aurélio,

      Nós utilizamos as informações desse post :

      http://www.arduinoecia.com.br/2013/07/como-trocar-as-cores-da-ide-do-arduino.html

      Abraço.

      Adilson – Equipe FILIPEFLOP

  8. Mas é necessário outro Arduíno para programar este?

    1. Boa noite Hector,

      Não necessariamente, você pode utilizar um conversor FTDI, como nesse artigo : http://www.arduinoecia.com.br/2014/09/conversor-ftdi-ft232rl-arduino-pro-mini.html

      Abraço.

      Adilson – Equipe FILIPEFLOP

  9. Olá. meu arduino mim não tem a porta GRN. Só uma porta DTR, será a mesma ?

    1. Boa noite Heitor,

      Pode utilizar a DTR.

      Abraço.

      Adilson – Equipe FILIPEFLOP

      1. Olá. Consegui fazer ele funcionar. Valeu pela ajuda.
        Mas tenho outra pergunta. Esse Arduíno tem o tamanho bem reduzido sendo tão portátil cabe até numa ponta de caneta é possível transformar ele numa ponta logica? Para que ele exiba níveis lógicos e talvez a frequência do sinal medido?

        1. Boa noite Heitor,

          É uma boa sugestão de uso, mas não temos informações sobre utilização do ARduino com esse propósito.

          Abraço.

          Adilson – Equipe FILIPEFLOP

  10. Segue vídeo explicando como programar com o MEGA.
    https://www.youtube.com/watch?v=BKFhREO6zVI

  11. Eu poderia usar uma porta serial do Arduino Pro Mini com um módulo Bluetooth e a outra para ligar com um Motor Shield, se sim como eu diferenciaria elas na programação?

    1. Boa noite Ulisses,

      Não entendi. Como você vai ligar o motor shield na porta serial?

      Grato.

      Adilson – Equipe FILIPEFLOP

  12. Boa noite, consigo conectar um módulo Bluetooth?

    1. Boa noite Eduardo,

      Consegue sim, use os pinos RX e TX do Arduino Pro Mini.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  13. Bom tarde, FilipeFlop. Tenho aqui comigo Mini Arduino Pro, ele funciona com uma usb alimentando e comunicando. Sendo que o RXD E TXD, não estão comunicando…quando eu faço o upload de um sketch, ele fica carregando. O que será isto? e você sabe de alguma solução?

    1. Boa tarde Bruno,

      Que tipo de adaptador você está utilizando para alimentar e carregar o programa pela USB ?

      Grato.

      Adilson – Equipe FILIPEFLOP

    2. Olá Bruno, eu estava com um problema parecido quando eu estava utilizando um conversor serial baseado em Prolific com apenas 4 pinos (TX, RX, GND e VCC), não tinha o DTR. Então depois de pesquisar muito, encontrei uma solução:
      1º Na aba de Ferramentas -> Programador: AVR ISP. Tem que selecionar esse.
      2º Quando vc mandar carregar o código, segure o botão de reset enquanto estiver Copilando Sketch, quando aparecer Carregando… Solte o botão de Reset e espere…
      Pronto, código carregado

      1. Nem assim consegui carregar o programa no pro mini, ja tentei de tudo, quase desistindo……

  14. Boa noite estou utilizando o arduino Mini com o conversor FTDI
    E estou com esse erro:

    Arduino: 1.6.5 (Windows 7), Placa:”Arduino Mini, ATmega328″

    O sketch usa 1.030 bytes (3%) de espaço de armazenamento para programas. O máximo são 28.672 bytes.

    Variáveis globais usam 9 bytes (0%) de memória dinâmica, deixando 2.039 bytes para variáveis locais. O máximo são 2.048 bytes.

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xdb

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xdb

    Problema ao carregar para a placa. Veja http://www.arduino.cc/en/Guide/Troubleshooting#upload para sugestões.

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xdb

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xdb

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xdb

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xdb

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xdb

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xdb

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xdb

    avrdude: stk500_recv(): programmer is not responding

    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xdb

    Poderia me ajudar?

    Att

  15. Adilson bom dia!
    É possivel programar uma placa arduino mega usando FTDI232 ?
    Como seriam as ligações?
    obrigado.

    1. Boa tarde Roberto,

      Fazendo uma rápida pesquisa, parece que funciona, mas eu precisaria testar. No caso, você apenas conseguiria transferir programas, mas não gravar o bootloader.

      Abraço

      Adilson – Equipe FILIPEFLOP

  16. Boa Noite!

    Estou tentando programar utilizando um arduino UNO conforme o circuito, porém aparece a seguinte mensagem de erro:

    avrdude: verification error, first mismatch at byte 0x0006
    0x79 != 0x6e
    avrdude: verification error; content mismatch

    Obrigado

    1. Thiago, parece que você adquiriu um módulo arduino pro mini que não foi gravado o bootloader. Busque sobre o assunto na internet, há diversas formas de fazer a conexão e gravar o bootloader.

  17. Boa tarde.
    Estou na primeira experiencia com o Arduino, estou usando um Arduini Pro mini com um Buzer, Ja baixei o IDE para configuração , fiz a pré configuração e coloquei alguns comandos para testar, a principio os comandos estão corretos, pois coloquei para carregar e não mostrou erros. Depois que carregar o programa no Software, o Arduino não deveria funcionar? tem mais algum procedimento para fazer? E para mudar valores colocado no programa, basta somente alterar e colocar para carregar novamente? Por favor, poderia me dar com umas dicas.
    Desde já agradeço.

    1. Boa tarde Adir,

      Você transferiu o programa para o Arduino, correto ? A sequencia é mais ou menos essa: Programa -> Compilação (ok, sem erros) -> Transferência para o Arduino.

      Depois dessa transferência, o programa já estará sendo executado na memória do Arduino.

      Abraço!

      Adilson – Equipe FILIPEFLOP

  18. qual a diferença pratica entre esses dois módulos?

    &

    Francielio Gustavo
  19. Olá, Adilson!!

    Excelente explicação!
    Segui os procedimentos e, na escolha da placa (pro mini 328P), não está disponível a porta COM. Daí escolhi o arduino nano (que usa o mesmo microcontrolador) e carregou normalmente. Essa observação pode ajudar alguns colegas. Uso o Windows 10 com IDE 1.6.2.

    Um abraço,

  20. Ele aceita o leitor de corrente com a inicialização da biblioteca (#include “EmonLib.h”
    )(EnergyMonitor emon1;) como arduino uno?

  21. Olá.
    Dá para fazer o mesmo para o Arduino Pro Mini de 3.3V?!

  22. Olá,

    Eu gostaria de fazer exatamente o inverso do processo. no caso programar um Uno utilizando o micro como intermediário. tentei executar o mesmo processo e não obtive resultado.

  23. Olá possuo um Arduino Uno em que o Atmega é soldado na placa, quais mudanças devo fazer para consegui upar codigos para o Pro Mini?

    1. Olá Robson!
      Infelizmente neste tutorial mostramos como fazer apenas com o Arduino que possui Atmega removível.
      mas como indicado no post, você também pode usar um conversor USB-serial como o seguinte: https://www.filipeflop.com/produto/placa-ftdi-ft232rl-conversor-usb-serial/

  24. Boa noite Adilson.

    Gostaria de tirar uma dúvida sobre este post seu.
    Para este exemplo é necessário baixar algum drive no computador ou algo parecido? Estou perguntando porque tenho um arduíno pro-mini e estou tentando programa-lo há algum tempo, porém sem sucesso. Inclusive já fiz esse procedimento que você descreve com um arduíno UNO, mas também sem sucesso.

    Existe algo que eu possa fazer para conseguir programar esse arduíno pro mini?

    Obrigado.

    DANIEL SOARES DE OLIVEIRA
  25. eu gostaria de saber qual é o tempo máximo de delay de um arduino

  26. ALGUÉM PODE ME AJUDAR.
    Montei o projeto mencionado acima com arduino pro mini (Processador ATEMEGA 328P, 5V, 16MHZ) e o conversor FTDI 232. Tudo foi montado conforme os esquemas mostrados na pagina desse site. O programa foi desenvolvido para testar a comunicação serial( serial monitor – IDE . Versão do arduino que eu estou usando é 1.8.3.
    Programa
    void setup() {
    //Inicia a porta serial.
    Serial.begin(9600);
    }
    void setup(){
    // Inicia o loop.
    Serial.Println(“Um elefante pertuba muito mais”);
    Serial.println(75);
    Serial.println(75, BIN);
    delay(1000);
    }
    Quando vou monitorar esse programa estou encontrado essa incompatibilidade.
    configuro no programa 9600 de baud rate e configuro 9600 no serial monitor é faço upload para o Arduino pro mini aparece na tela caracteres ilegiveis. Tentando entender o mantive o baud rate de 9600 do programa carregado no arduino pro mini e no baud rate do serial configurei 4800. Com essa configuração consegui visualizar e ler o que estava escrito na tela do serial monitor.
    Fiz vários teste sempre colocando a metade da configuração do baud rate no serial monitor.
    EX:
    programa = 2400 serial monitor = 1200
    programa = 9600 serial monitor = 4800
    programa =19200 serial monitor = 9600

    Alguém pode ajudar me e explicar o que está acontecendo. Desde já agradeço qualquer ajuda.

    Irenil Ramos Valentim

Trackbacks and Pingbacks

  1. […] Possui 14 portas digitais, sendo que 6 podem ser usadas como PWM, e 8 portas analógicas. Não possui conexão USB ou conector para alimentação externa. Para comunicação com o computador, pode ser adquirido um módulo USB separadamente, ou utilizada uma placa Arduino para programação, como mostrado no artigo Programando um Arduino Pro Mini com Arduino Uno. […]

  2. […] Possui 14 portas digitais, sendo que 6 podem ser usadas como PWM, e 8 portas analógicas. Não possui conexão USB ou conector para alimentação externa. Para comunicação com o computador, pode ser adquirido um módulo USB separadamente, ou utilizada uma placa Arduino para programação, como mostrado no artigo Programando um Arduino Pro Mini com Arduino Uno. […]

  3. […] ensinar ninguém à fazer isso!!! nem adianta chorar… o máximo que vou fazer é postar um LINK ensinando a programar um MINI pelo UNO, caso você não tenha um programador FTDI ( meu caso ), […]