Programe ATtiny85 Eficientemente com Arduino Uno: Solução Multi-Sensor de Baixo Custo
Componentes e Materiais
| Componente | Quantidade |
|---|---|
| Arduino UNO | 1 |
| Microchip ATtiny85 | 1 |
| Capacitor Eletrolítico Desacoplador 10uF/25V | 1 |
| Jumpers Macho/Macho | 1 |
Sobre o Projeto
Estou trabalhando em um projeto que requer leitura de dados de múltiplos sensores em diferentes locais. Eles precisam apenas de poucos pinos PWM, então usar múltiplos Arduino Uno seria caro e desnecessário. Decidi usar o microcontrolador ATtiny85 no lugar das placas de desenvolvimento Arduino Uno. O ATtiny85 é uma alternativa barata e poderosa quando não se precisa de muitos pinos PWM. Como o ATtiny85 é apenas um microcontrolador, precisamos de um Arduino Uno para programá-lo. Neste projeto explicarei como fazer isso. Abaixo está a configuração de pinos do ATtiny85 e o datasheet pode ser encontrado aqui.

Configurando Arduino Uno como ISP (Programação In-System)
Para programar o ATtiny85, primeiro precisamos colocar o Arduino Uno no modo ISP. Conecte seu Arduino Uno ao PC. Abra a Arduino IDE e abra o arquivo de exemplo ArduinoISP (Arquivo → Exemplos → ArduinoISP) e faça o upload.
Adicionando Suporte ao ATtiny85 na Arduino IDE
Por padrão, a Arduino IDE não suporta ATtiny85, então devemos adicionar as placas ATtiny. Abra Arquivo → Preferências e em "URLs Adicionais do Gerenciador de Placas" adicione: https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

Após isso, abra Ferramentas → Placa → Gerenciador de Placas.

Role a lista até encontrar "attiny by Davis A. Mellis". Clique e instale.

Após instalar, você verá uma nova entrada no menu Placa.

Conectando ATtiny85 com Arduino Uno
Com tudo pronto, vamos programar o ATtiny85. Conecte o Arduino Uno ao ATtiny85 usando protoboard conforme abaixo:
| Arduino Uno | ATtiny85 |
|---|---|
| 5V | Vcc |
| GND | GND |
| Pino 13 | Pino 2 |
| Pino 12 | Pino 1 |
| Pino 11 | Pino 0 |
| Pino 10 | Reset |


Adicione um capacitor de 10uF entre RESET e GND no Arduino. Isso evita que o Arduino reinicie automaticamente quando enviamos o programa ao ATtiny85. Se usar capacitor eletrolítico, certifique-se que o ânodo vai no GND do Uno.
Enviando Programa para ATtiny85
Volte à Arduino IDE. Selecione ATtiny em Ferramentas → Placa. Depois ATtiny85 em Ferramentas → Processador. E 8 MHz (interno) em Ferramentas → Clock.


Certifique-se que "Arduino as ISP" está selecionado em Ferramentas → Programador.

Por padrão o ATtiny85 roda a 1MHz. Para rodar a 8MHz, selecione Ferramentas → Gravar Bootloader.


Você verá a mensagem acima se a gravação foi bem-sucedida.
Agora abra o exemplo Blink dos exemplos do Arduino e mude o número do pino de 13 para 0 e faça upload.


Agora carregamos o programa blink no ATtiny85. Vamos testá-lo.
Testando Blink no ATtiny85
Hora de testar. Remova todas as conexões do Arduino e use uma fonte de alimentação. Aqui usarei uma bateria de moeda para alimentar o ATtiny85.

Lá está o programa blink rodando no ATtiny85 com apenas uma célula de bateria. Você pode fazer muitos projetos com baixo custo, baixo consumo e pouco espaço. Só sua imaginação é o limite (e o número de pinos PWM, claro).
Transformando em Shield
Convertei o circuito acima em um shield compatível com Arduino Uno.





(Nota: Sendo desenvolvedor de software, este é meu primeiro projeto em eletrônica. Por favor, deem sugestões para me ajudar a fazer mais.)
Código
Programa Blink
/* Blink
Liga um LED por um segundo, depois desliga por um segundo, repetidamente.
A maioria dos Arduinos tem um LED on-board no pino digital 13.
Este código é de domínio público.
Modificado em 8 Maio 2014 por Scott Fitzgerald
*/
void setup() {
pinMode(0, OUTPUT); // Pino 0 no ATtiny85
}
void loop() {
digitalWrite(0, HIGH);
delay(1000);
digitalWrite(0, LOW);
delay(1000);
}
Esquemáticos


Processo de manufatura
- Programação de Extensões Python com C: Criando Módulos Nativos Rápidos
- Relógio em Tempo Real com Arduino para Horários de Oração Islâmica
- Mealheiro Inteligente: Controlar Aceitador de Moedas com Arduino Nano
- Controlar um LED via Bluetooth com Arduino – Guia DIY Simples
- Construa uma Calculadora Básica com Arduino UNO – Projeto Fácil
- Como Exibir Imagens em LCD TFT 1.17" com Arduino UNO
- Display Portátil de Persistência da Visão com Arduino UNO e ATtiny85
- Controlando Matriz de LED 8×8 com Arduino Uno: Guia Passo a Passo
- Construa um Cubo de LED 4x4x4 com Arduino Uno e 1Sheeld – Projeto Interativo de LED
- Controle de Ventoinha PWM 4 Pinos 25 kHz com Arduino Uno – Montagem, Código e Teste