Criar dispositivos pequenos ou então ter pouco espaço disponível para criar um projeto pode ser um problema quando pensamos no Arduino. Já que, mesmo se utilizarmos o CI separadamente, o espaço ocupado por ele é relativamente grande. Entretanto, uma solução interessante e simples são os microcontroladores da linha ATtiny.

Esses microcontroladores são, normalmente, pequenos e atendem muito bem quando um projeto precisa ocupar pouco espaço ou então quando utiliza uma solução mais simples. No post de hoje, vamos explorar um pouco os CI’s ATtiny.

Para ter um bom entendimento do que vou falar, recomendo que leia a aula 1 da série de Arduino para Iniciantes e a aula 10 (semelhante a esse post).


O que é

Como dito anteriormente, ATtiny é uma série de microcontroladores que são mais compactos e servem para utilidades mais simples. As versões mais simples possuem apenas 8 pinos, ao contrário do atmega328p (Arduino UNO) que possui 28. Veja a imagem abaixo para comparar.

attiny comparativo com atmega

Fisicamente, ele é bem pequeno e é muito interessante para usar em pequenos circuitos como um de um relógio de pulso. Existem muitos modelos ATtiny com diferentes quantidades de pinos, porém vou mostrar os principais que são: ATtiny 25/45/85 e ATtiny 24/44/84.

Características

Das versões que mencionei acima, é importante saber a configuração dos pinos, a velocidade de processamento e entre outras coisas… Vamos aos dados:

attiny 25/45/85 pinos
Fonte: https://github.com/SpenceKonde/ATTinyCore

Esses microcontroladores possuem 8 pinos, sendo que 2 são de alimentação e 6 podem ser usados como pinos digitais. Desses 6, 3 também funcionam como pinos para leituras analógicas. O clock pode chegar de 16-20MHz externamente e o interno é 8MHz. A memória flash, do 25 ao 85, é: 2, 4 e 8Kb. E a memória RAM, do 25 ao 85 é: 128, 256, 512b. Ou seja, eles são recomendados para aplicações realmente simples que não necessitam de muita complexidade de programação.

attiny 24/44/84
Fonte: https://github.com/SpenceKonde/ATTinyCore

Já os ATtiny’s 24/44/84 possuem 14 pinos, sendo que 2 são de alimentação e 12 podem ser usados como pinos digitais. Desses 12, 8 também funcionam como pinos para leituras analógicas. O clock pode chegar a 20MHz externamente. A memória flash, do 24 ao 84, é: 2, 4 e 8Kb. E a memória RAM, do 24 ao 84 é: 128, 256, 512b. Sendo assim, não muda muita coisa em relação aos outros (25/45/85), apenas aumenta a quantidade de pinos.


Como programar

Como exemplo, vou programar o ATtiny85 e, para isso, vou utilizar um Arduino UNO como programador.

Preparação

Precisamos configurar o Arduino como programador. Sendo assim, faça upload pra placa da sketch ArduinoISP que se encontra no menu Arquivo > Exemplos > ArduinoISP.

Agora é necessário adicionar as placas ATtiny ao software Arduino, já que elas não vem como opção padrão. Vá no menu Arquivo -> Preferências. Clique no campo “URL’s adicionais para gerenciadores de placas” e insira o seguinte link:

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

Feito isso, vá no menu Ferramentas > Placas > Gerenciador de Placas. Na janela que aparecer, role para baixo até encontrar “attiny by Davis A. Mellis”. Depois que encontrar, clique nesta opção e clique em instalar. Quando a instalação estiver completa, será possível escolher as placas ATtiny’s no menu Ferramentas > Placa.

Circuito

Para conectar o ATtiny no Arduino é preciso seguir o circuito abaixo:

circuito para programar o attiny

Basta conectar o Vcc no 5v e o GND no GND. O pino 1 (reset) deve ser ligado no pino 10 do Arduino (fio verde). Os pinos 6,7 e 8 são ligados nos pinos 11, 12 e 13 do Arduino (na ordem). Nos ATtiny’s 24/44/84 basta seguir a mesma ordem dos pinos MOSI, MISO, SCK e RESET, já que os pinos do Arduino UNO são os mesmos (Veja imagem dos pinos lá em cima).

Por fim, é só ligar um capacitor de 10uF entre os pinos GND e RESET do Arduino. Esse capacitor serve para impedir o Arduino de ficar resetando sozinho na hora de fazer upload da programação do ATtiny.

Programação

Depois que tudo estiver devidamente configurado, basta ir em Ferramentas > Placa e escolher qual ATtiny você está utilizando. Depois disso, uma nova opção se abre no menu Ferramentas que é a opção Processador. Dentro dela escolha qual o ATtiny específico você está usando.

E, no menu Ferramentas > Clock, escolha 8MHz. Ou então, se você colocou um clock externo (veja este post para aprender como), escolha a opção adequada.

Feito isso, vá em Ferramentas > Programador e selecione “Arduino as ISP”. Antes de fazer o upload de algum programa, vá em Ferramentas > Gravar Bootloader. O bootloader permitirá o upload das sketchs para o ATtiny e também a mudança de velocidade do clock.

O último passo é fazer upload de uma sketch que você queira e testar se tudo está funcionando. Para isso você tem que ficar atento em dois pontos:

  • Observe a numeração dos pinos para programar corretamente. Veja a imagem dos pinos lá em cima para te ajudar.
  • Para o ATtiny funcionar, basta ligar o Vcc em uma tensão de 2.7V a 5.5V e o GND no negativo da fonte ou em um outro GND.

Com isso, você já pode miniaturizar seus projetos e fazer ótimas invenções.

Arduino – Como usar o microcontrolador fora da plaquinha – Aula 10 – AI