18 setembro 2014

Como programar o Arduino Pro Mini usando conversor FTDI

Quem mexe com Arduino ou com outros microcontroladores já deve ter ouvido falar no conversor FTDI, um conversor USB para serial que permite a comunicação entre o computador e outros equipamentos eletrônicos que possuam porta de comunicação no padrão TTL.

Conversor USB-TTL serial FTDI232

FTDI são as iniciais de Future Technology Devices International (www.ftdichip.com), uma empresa especializada em tecnologia USB e que é a fabricante do chip FT232RL (datasheet), cérebro da placa mostrada na imagem acima.

No Arduino esse conversor é muito utilizado para programar placas que não possuem a comunicação USB-Serial embutida, como é o caso do Arduino Pro Mini, mostrado abaixo.

Arduino Pro Mini

O Arduino Pro Mini é uma placa ideal para projetos compactos, com microcontrolador ATmega328p, 14 portas digitais, 8 analógicas, clock de 16 Mhz e memória de 32K. A programação dessa placa pode ser feita pelo Arduino Uno, utilizando os pinos laterais GRN, TX, RX, Vcc, GND e BLK do Pro Mini.

Veja também como utilizar o conversor FTDI para programar o Lilypad no artigo Lilypad - O Arduino que você pode costurar na sua roupa.

Mas isso dá, digamos assim, um certo trabalho, e é aí que entra o conversor FTDI232 que mostramos no início do post. Basta ligar o conversor ao Arduino na sequência mostrada abaixo. Ele também possui um jumper para selecionar o nível de sinal (5v ou 3.3V),  leds indicadores de atividade na recepção e transmissão (RX/TX),e também um led que indica se o módulo está ligado :

Ligação conversor FTDI - Arduino Pro Mini



Ao conectar o conversor FTDI ao computador, a instalação no Windows foi feita automaticamente, com dois dispositivos detectados : USB Serial Converter, e USB Serial Port :


Conversor FTDI232 - Drivers


É essa porta (no nosso caso, a COM21) que vamos utilizar para fazer a comunicação com o Arduino Pro Mini, selecionando a placa Arduino Pro or Pro Mini (5v, 16 MHz) w/ ATmega328 em Ferramentas => Placa e a porta COM21 em Ferramentas => Porta Serial :


Configuração IDE - Arduino Pro Mini

































Com essas pequenas configurações , basta agora transferir normalmente os programas para o Arduino Pro Mini, do mesmo jeito que você faria com um Uno ou Mega, por exemplo.

Lembrando que esse conversor FTDI pode ser utilizado também quando montamos o Arduino na protoboard, assim teremos uma configuração completa com o ATmega e o conversor USB-Serial, o que facilita muito a gravação dos programas no microcontrolador.



23 comentários:

  1. 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

    Este relatório deveria ter mais informações
    "Mostrar saída verbosa durante a compilação"
    habilitado em Arquivo > Preferências.

    ResponderExcluir
    Respostas
    1. O Arduino tem um auto-reset, mas talvez o seu clone não faz? Nesse caso, você tem que pressionar a tecla reset na placa imediatamente antes de iniciar um upload

      Excluir
  2. Bom dia Equipe Arduino e cia!
    É possivel programar uma placa arduino mega usando conversor FTDI232?
    Como ficaria esquema de ligação?
    Este exemplo com arduino pro mini serve?
    basta usar uma mega no lugar e ligar no RX e TX da placa mega? Como no exemplo?

    obrigado.

    ResponderExcluir
    Respostas
    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

      Excluir
  3. Boa tarde Arduino e Cia.
    Muito obrigado pela resposta tão rápida.
    Realmente é só transferencia de programação ( sketch) que eu quero fazer, estou com uma placa mega 2560 que queimou chip USB e gostaria de programa-la.E, também aumentar conhecimento e possibilidades...Que em grande parte sou grato a vocês.
    Pelo que você pesquisou, então basta usar a placa mega no lugar da mini arduino, seguindo a sua receita, e fazer as ligações no (RX- D0 ) / ( TX-D1 ) da placa mega e enviar a programação.

    Obrigado

    ResponderExcluir
    Respostas
    1. Oi Roberto,

      Teoricamente sim, mas preciso testar para falar com certeza se funciona.

      Abraço!

      Excluir
  4. Ola . Sou leigo no assunto. Pra programar uma placa Arduino pro mini, tem que baixar algum programa ou somente conectar no computador. Se alguem puder responder agradeço.

    ResponderExcluir
    Respostas
    1. Boa noite,

      Você vai precisar da IDE do Arduino. O download é feito neste endereço: https://www.arduino.cc/en/Main/Software

      Abraço!

      Excluir
  5. Ola. O cabo para ligar O conversor ao computador é um Mini USB normal?

    ResponderExcluir
    Respostas
    1. Bom dia,

      Sim, cabo comum. Eu por exemplo usei o cabo de uma câmera digital que eu tenho aqui.

      Abraço!

      Excluir
  6. Bom dia
    Estou tentando fazer um pequeno projeto com um Arduino Pro mini, um Sensor Barométrico e um Buzer. Queria que:
    - Taxa de subida da Altitude barométrica: O Nível agudo (mais alto) do Bip reduz o tempo entre os bip´s, quanto mais rápida for a variação.
    -Taxa de Descida da Altitude Barométrica: O Nível mais grave do Bip (mais baixo), o tempo entre Bip´s diminui, quanto mais rápida for a variação.
    Não sei que parâmetros colocar e como colocar as informações no Arduino. Poderia me ajudar

    ResponderExcluir
    Respostas
    1. Boa tarde Francisco,

      Acho que as informações que você precisa estão neste post:

      http://www.arduinoecia.com.br/2014/04/sensor-de-estacionamento-re-com-arduino.html

      Você quer fazer a mesma coisa, mas ao invés de utilizar um sensor HC-SR04, você quer usar um sensor barométrico, certo ?

      Creio que essas informações podem te ajudar. Se precisar de mais alguma coisa sobre esse projeto, entre em contato utilizando o formulário de contato no lado direito da página.

      Abraço!

      Excluir
  7. Olá, eu possuo um arduino mini 3.3v. Basta liga-lo da mesma maneira? Ou tenho que mudar a tensão?

    ResponderExcluir
    Respostas
    1. Boa noite Johilton,

      Tem que mudar. Coloque o jumper na posição 3.3V

      Abraço!

      Excluir
  8. avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xe2

    Alguém sabe como posso resolver esse problema para um Arduino Pro Mini 328p? Não estou conseguindo rodar nem o blink.

    ResponderExcluir
    Respostas
    1. Estou com este mesmo problema, usando Windows 10. Meu ftdi está com os drivers tudo ok, pois o mesmo está funcionando perfeitamente no u-block gps. Alguma sugestão?

      Excluir
  9. ola
    Sou iniciante com progamação De Arduino, gostaria de saber se: Usando um exemplo, fiz um programa com Arduino Uno para piscar um Led, para isso é gravado a programação. Depois quero fazer outro programa usando um buzer.Minha duvida é, se preciso excluir o programa anterior ou se simplesmente gravar outro programa e o programa que estaria gravado já será excluído autoamticamente.

    Grato

    ResponderExcluir
    Respostas
    1. Boa noite,

      Só gravar por cima. Ele já apaga o programa anterior.

      Abraço!

      Excluir
  10. Amigo, após passar o programa pro arduino Mini ATmega 328 eu posso tirar o FTDI fora e utilizar apenas o arduino? alimento ele normalmente pelo vcc 5v?

    ResponderExcluir
    Respostas
    1. Oi Tales,

      Isso, você programa o Arduino e depois pode tirar o FTDI. A alimentação vai no pino RAW (positivo) e no GND.

      Abraço!

      Excluir
  11. Amigos bom dia . comprei o ch340 usb e arduino mini. Aconteceu o LED azul do ch340 usb pisca muito rápido eu nao estava apertando o botão de reset do arduino pq descobri isso depois .agora o LED azul fica aceso direto, e sempre deu erro na programação na hora de passa o teste q pisca o LED ... A como recupera o arduino mini pq quando plugo ele no ch340 o LED azul acende direto e pisca o LED do arduino o power esta aceso?

    ResponderExcluir
    Respostas
    1. Bom dia,

      Esse conversor que você comprou usa o CH340, é isso ? Me passe o link do produto para que eu possa dar uma olhada.

      Abraço!

      Excluir
  12. Bom dia pessoal, estou interessado em desenvolver Arduino, mas como tenho aeromodelo e quero colocar strobo com três estágios, taxiamento, vôo é pouso e decolagem, tudo controlado pelo rádio, tem como fazer dessa forma?

    ResponderExcluir