Para os hobbystas e profissionais da área que apreciam um bom projeto embarcado, desenvolvemos uma nova versão do Arduino Standalone, mais completo e robusto. Se você ainda não conhece o Atmega328p e a arquitetura de microcontroladores AVR, recomendamos que dê uma olhada na primeira versão, onde é apresentado todos esses conceitos básicos.
Motivação para a nova versão
A primeira versão do nosso Arduino Standalone apresenta alguns problemas, principalmente no módulo USB Serial Ch340/Ch340g, para chegar a esta conclusão foram executados vários testes de flood nas comunicações TX e RX, resultando em um delay indesejável na aplicação, para contornar este problema utilizamos um módulo USB Serial FTDI FT232 que fornece comunicação serial e tensão +5V. Porém o módulo Ch340g ainda é favorável em projetos simples para enviar firmwares ao Atmega328p e que não exigem esse tipo de flood.
O módulo de fonte foi retirado do projeto, tendo como objetivo a compatibilidade em PCI (Placa de Circuito Impresso), para isso foi desenvolvido uma fonte fixa de +5V e +3.3V, adicionando reguladores de tensão e capacitores no protoboard, além disso é possível implementar uma entrada VIN.
Além disso foi projetado um circuito de chaveamento entre as tensões do USB e da fonte para permitir fazer essas ligações ao mesmo tempo sem prejudicar os outros componentes.
Lista de materiais
Anote a seguinte lista com os componentes necessários para montar o Arduino Standalone avançado.
- 1 Microcontrolador Atmel Atmega328p
- 1 Módulo USB Serial FTDI FT232
- 1 Regulador de tensão LM7805 (Package TO-220) de preferência com dissipador
- 1 Regulador de tensão LM1117 (Package TO-220) de preferência com dissipador, mica e parafuso com arruela isolante
- 1 Cristal de 16 MHz
- 2 Capacitores cerâmicos de 22 pF de preferência NPO
- 3 Capacitores cerâmicos de 0.1 uF, 100 nF ou 104k
- 1 Capacitor eletrolítico de 1000uF de 25V (Opcional)
- 2 Capacitores eletrolíticos de 100uF de 16V
- 1 Capacitor eletrolítico de 470uF de 10V ou 36V
- 1 Capacitor eletrolítico de 470uF de 10V ou 36V
- 1 Chave push button N/O de 2 ou 4 pinos
- 1 Transistor BC547
- 3 Resistores de 10K
- 2 Resistores de 220 ohms
- 2 Resistores de 470 ohms
- 1 Resistor de 1K
- 1 Resistor de 22 ohms
- 1 Resistor de 47 ohms
- 1 Relé DC 5V
- 3 Diodos 1N4007
- 1 Diodo 1N4148
- 4 LEDs
- Fios e jumpers M-M e M-F
- 1 Protoboard de 830 furos
- 1 Conector jack P4 (Opcional)
A montagem no protoboard deve ficar semelhante à imagem abaixo.
Para iniciar uma montagem qualquer em protoboard, placa ilhada/universal/perfurada ou PCI, a dica mais valiosa é conferir com calma mais de uma vez o esquemático para você não ter surpresas.
O processo de montagem deste projeto requer alguns cuidados, separamos uma lista com esses itens para uma melhor compreensão.
1) Montagem dos reguladores de tensão no dissipador
O regulador LM7805 é o componente que mais esquenta do projeto, pois é aonde entra a tensão vinda da fonte de bancada ajustada com +9V ou até +12V. Para isso parafusamos o regulador em um dissipador. Outra dica interessante para os reguladores de tensão e até transistores maiores é soldar pinos machos para não estragar o protoboard na hora de encaixar.
O regulador LM1117 fornece tensão +3.3V, importante para alimentar módulos mais sensíveis, contudo é recomendado que adicione um dissipador. Antes de mais nada, é considerável ressaltar que a carcaça do LM1117 é VOut ou +3.3V, podemos testar utilizando um multímetro e será observado +3.3V no display, diferente do LM7805 que a carcaça é GND ou Common. Isso é um problema quando fixamos ele em um dissipador grande com outros reguladores e transistores que também possuem a carcaça VOut, a solução é isolar o regulador com um conjunto inseparável, o parafuso com arruela isolante e um pedaço de mica adequada para componentes eletrônicos. A mica é um mineral isolante amplamente utilizado na indústria e na eletrônica. Com este conjunto fixado no dissipador corretamente podemos medir com o multímetro e será mostrado no display 0V, sendo assim o problema será corrigido.
2) Alimentação com fios de protoboard
Para ligar o Arduino Standalone com uma fonte de bancada, utilize dois fios M-M de protoboard, um vermelho na entrada do regulador LM7805 e o preto no GND. Possivelmente a sua fonte possui fios de alimentação com garras jacaré, conecte essas garras conforme as cores correspondentes aos fios M-M. Pronto! Verifique as ligações com atenção e ligue a fonte, o LED verde "Power" e o LED vermelho "Fonte" serão acessos se tudo estiver correto.
3) Conector Jack P4 2.1mm
Como está descrito na lista de materiais, o conector jack P4 é opcional. Porém se você possuir uma fonte adequada para Arduino, é interessante adicionar o jack para ficar mais fácil de plugar e livre de mal contatos e curtos. Normalmente os jacks são feitos para PCIs ou painéis, mas nada que dois fios cortados de protoboard não resolva o nosso problema. Com um multímetro setado em Ohms, coloque a ponta vermelha no pino central do jack e a ponta preta em uns dos terminais atrás do conector, encontre qual deles é o positivo, tendo essa informação pegue de preferência dois fios M-M de protoboard, um vermelho/rosa indicando positivo e um preto indicando GND e solde nos dois terminais do jack, é comum ficar um terminal sem soldar no conector. Pronto! Agora é só encaixar o preto no GND do protoboard e o vermelho/rosa na entrada do regulador LM7805, conforme o esquemático.
Testando com multímetro
Depois de tudo montado e revisado mais de uma vez com o esquemático em mãos, é hora de ligar e realizar os testes! Ligando na fonte de bancada ou de Arduino o LED verde "Power" irá acender, teste os terminais dos reguladores e veja se está saindo as tensões corretas. Observe também se está chegando tensão ao Atmega328p em seus respectivos pinos de alimentação. Também é bom testar o sistema de chaveamento com relé, ligue na USB e na fonte ao mesmo tempo, o LED vermelho "Fonte" irá acender, veja o pino VCC do módulo FTDI se não está chegando tensão. O LED do módulo é comum estar acesso com o cabo conectado no computador. Faça outros testes de sua preferencia para segurança.
Enviando firmwares via FTDI
Provavelmente seu microcontrolador esteja sem bootloader para testar a comunicação serial, dê uma olhada no tutorial de como gravar o bootloader no Atmega328p, depois de gravado você irá observar o LED amarelo "L" piscar 2 ou 3 vezes.
Como estamos utilizando o módulo USB Serial FTDI FT232, precisamos instalar um driver para o sistema operacional Microsoft Windows e a IDE do Arduino encontrar o módulo, acesse o site oficial FTDIChip, encontre Comments e Available as a setup executable, baixe a versão executável do driver e instale. Para você saber a referência da porta serial em que está o FTDI acesse o Gerenciador de Dispositivos e encontre Portas (COM e LPT).
Em sistemas GNU/Linux foi testado em um Ubuntu 18.04 LTS amd64, a comunicação serial funcionou na porta ttyUSB0 sem nenhum tipo de driver adicional ou modificação.
É claro, não se esqueça de colocar um LED com o catodo no GND e um resistor limitador de corrente de 220 ohms entre o pino 15 do Atmega328p (porta 9 do Arduino Uno) e o LED. Qualquer dúvida dê uma olhada no tutorial de como piscar um LED no Arduino Uno.
Agora é a parte mais legal do projeto, é aonde vamos ver funcionando todas as funcionalidades. Para isso abra a IDE oficial do Arduino, na aba Arquivos escolha Exemplos, depois 01.Basics, abra os exemplos de Blink e Fade. Abrindo as duas janelas com estes códigos, configure a porta serial correspondente ao seu FTDI e selecione a placa Arduino/Genuino Uno. Teste o módulo enviando esses dois códigos e veja o resultado.