
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03


Prefácio
Recentemente, tenho desenvolvido alguns projetos de IoT baseados em ESP8266 e descobri que o processador central estava lutando para realizar todas as tarefas que eu precisava para gerenciar, então decidi distribuir algumas das atividades menos importantes para um microcontrolador diferente em dessa forma, liberando o ESP8266 para continuar seu trabalho de ser um dispositivo IoT.
Visto que eu queria publicar meu projeto para um público tão amplo quanto possível, optei por usar o IDE do Arduino como a plataforma de desenvolvimento de escolha, uma vez que tem uma comunidade amplamente suportada.
Restrições de Design
A fim de fornecer uma distribuição razoável de dispositivos de destino, permitindo a seleção de um microcontrolador apropriado para a aplicação em questão, decidi pelas seguintes peças Atmel; ATMega328P, ATTiny84 e ATTiny85. Para limitar a complexidade do programador necessário, limitei a escolha do relógio para interno para todos os dispositivos e 16 MHz externo para apenas o ATMega328P e ATTiny84.
O que se segue é uma coleção de notas sobre programação com o Arduino e uma descrição de como eu montei um programador simples baseado em Arduino Uno para esses dispositivos (fotos acima).
Quais peças eu preciso?
Para construir o programador, você precisará das seguintes partes
- 1 fora do Arduino Uno
- 2 soquetes DIP de Força de Inserção Zero de 28 pinos (ZIF) (para conter ATMega328P, ATTiny85, ATTiny84)
- 1 protetor de protótipo do Arduino (eu tenho o meu aqui; https://www.ebay.co.uk/itm/Arduino-UNO-Prototyping …)
- 2 LEDs 5 MM desligados
- 2 resistores de 1K desligados
- 1 resistor de 10K desligado
- 4 capacitores de cerâmica 22pF desligados
- 2 cristais de 16 MHz
- 3 capacitores cerâmicos de 0,1uF
- 1 capacitor eletrolítico desligado 47uF
- 1 capacitor eletrolítico de 10uF
- Fio de envoltório de arame de vários comprimentos.
Qual software eu preciso?
Arduino IDE 1.6.9
Quais habilidades eu preciso?
- Conhecimento do Arduino IDE
- Algum conhecimento de eletrônica e como soldar
- Muita destreza manual
- Muita paciência e boa visão
Assuntos abordados
- Introdução geral à programação de microcontroladores Atmel
- ISP ou Bootloader: é um pouco confuso
- Visão geral do circuito
- Configurando seu programador
- Usando o seu programador Arduino ISP
- Desenvolvendo código em seu sistema de destino
- Pegadinhas
- Conclusão
- Referências usadas
Isenção de responsabilidade
Como sempre, você usa essas instruções por sua própria conta e risco e elas não são suportadas
Etapa 1: Introdução geral à programação de microcontroladores Atmel



Existem dois métodos disponíveis para programar microcontroladores Atmel;
- Na Programação do Sistema (ISP),
- Auto-programação (via bootloader).
O método anterior (1) programa diretamente o microcontrolador por meio da interface SPI após primeiro colocar o dispositivo em reinicialização. A menos que seja instruído de outra forma, um programa-fonte executável compilado é gravado no dispositivo de forma incremental na memória de código de onde é executado na inicialização. Existem muitos dispositivos ISP capazes de programar dispositivos Atmel, alguns dos quais sendo (foto 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. A Figura 2 mostra como o dispositivo ISP se conecta ao ATMega328P (estranhamente marcado como ICSP) na placa Arduino Uno R3 (a figura 3 fornece o pino do ISP). Também é possível programar um microcontrolador Atmel através de sua interface SPI usando um Arduino Uno como ISP (figura 4), aqui o Uno está sendo usado para programar um ATMega328P.
O último método (2) usa um pequeno fragmento de código conhecido como 'bootloader' residente permanentemente na memória de código executável (geralmente bloqueado para evitar sobrescrever acidentalmente a imagem 5). Este código é executado logo após a inicialização ou reinicialização do dispositivo e permite que o microcontrolador se reprograme com o novo código recebido por meio de uma de suas interfaces de uma fonte externa a ele mesmo. O método bootloader é usado pelo Arduino IDE para reprogramar Arduinos mapeados como uma porta de comunicação USB no PC (ou MAC, Linux box etc., imagem 6) e no caso do Arduino Uno se comunica com o dispositivo Atmel por meio de seu interface serial nos pinos IC 2 e 3 do ATMega328P. Além disso, o Arduino Uno (com o microcontrolador ATMega328P removido) pode ser usado para programar um ATMega328P por meio do método bootloader, atuando efetivamente como um dispositivo adaptador USB para serial (foto 7).
O que é um adaptador USB para serial?
Um adaptador USB para serial é uma peça de hardware que se conecta à porta USB do seu PC e se parece com uma porta de comunicação serial (um legado de tempos anteriores, quando os computadores usavam um padrão de comunicação serial conhecido como EIA-232, V24 ou RS232), permitindo que você enviar e receber dados seriais nos mesmos níveis elétricos do microcontrolador. Quando você seleciona Ferramentas -> Porta -> COMx no Arduino IDE, você está conectando / conectando seu PC ao Arduino.
Um dispositivo como esse às vezes é chamado de FTDI (imagem 8, que é na verdade um nome de marca) ou CH340G etc. USB para serial no Arduino uno é obtido por meio de um ATMega16U2-MU (R) IC ZU4 como no esquema do Arduino abaixo.
Para maior clareza, a figura 9 identifica os dois dispositivos Atmel e seus respectivos conectores ISP no Arduino Uno R3.
Nota 1: Se você escolher seguir a rota do dispositivo FTDI, certifique-se de comprar de um vendedor confiável, pois há muitos dispositivos falsificados baratos no mercado que falharam após a aplicação de uma atualização do Windows.
Recomendado:
Programando um Arduino usando outro Arduino para exibir um texto de rolagem sem uma biblioteca: 5 etapas

Programando um Arduino usando outro Arduino para exibir um texto em rolagem sem uma biblioteca: Sony Spresense ou Arduino Uno não são tão caros e não requerem muita energia. No entanto, se o seu projeto tem limitação de energia, espaço ou até mesmo orçamento, você pode querer considerar o uso do Arduino Pro Mini. Ao contrário do Arduino Pro Micro, Arduino Pro Mi
Como gravar ATTiny85 usando Arduino-Mega como ISP: 5 etapas

Como gravar ATTiny85 usando Arduino-Mega como ISP: Colaboradores - Sayan Wadadar, Chiranjib KunduProgramação ATTiny85 usando Arduino MEGA2560 como ISP. Alguns meses atrás, eu estava tentando encolher meu projeto Arduino usando meu Attiny 85 ic. Foi a primeira vez que tentei programar um ATTiny 85 20u usando
Programando o Open DSKY: 5 etapas (com imagens)

Programando o Open DSKY: Bem-vindo aos nossos Instructables em andamento sobre como Programar o Open DSKY. Certifique-se de voltar, pois este Instructable continuará crescendo à medida que produzimos e lançamos constantemente novos materiais de programação. Então, siga, curta e adicione como favorito.Esta série de vídeos
Programando Arduino Nano usando UNO: 4 etapas (com imagens)

Programando Arduino Nano usando UNO: Ei pessoal, Recentemente, eu tinha acabado de comprar um novo clone do arduino nano (CH340) do ebay para meu projeto de mini arduino. Depois disso eu conectei o arduino ao meu pc e instalei os drivers mas ainda não funcionava, depois de alguns dias eu só descobri como programar
Programando um PLC para controlar uma luz de parada: 7 etapas (com imagens)

Programando um PLC para controlar uma luz de parada: PLCs são usados em tudo que encontramos diariamente. Das máquinas que enlatam ou engarrafam itens como cerveja, refrigerante, sopa e muitos outros produtos embalados até as esteiras transportadoras do Walmart e os semáforos em alguns cruzamentos, os PLCs tocam