Neste post, conheceremos o chip ATtiny85, um microcontrolador extremamente pequeno, versátil e acessível. Veremos suas principais funcionalidades, como programá-lo utilizando a Arduino IDE e um projeto onde esse componente é mais adequado do que um Arduino.
Características do chip ATtiny85
O chip ATtiny85 não precisa de nenhum componente externo para ser utilizado, basta alimentá-lo com 5V e está pronto para usar. Abaixo estão algumas das funcionalidades disponibilizadas pelo microcontrolador e os pinos responsáveis:
- PWM: pinos D0, D1, D3 e D4;
- Entrada Analógica: pinos D2 (A1), D3 (A3) e D4 (A2);
- Interrupções Externas: D2(INT0);
- I²C: D0 (SDA) e D2(SCL);
- SPI: D0 (MOSI), D1 (MISO) e D2 (SCLK).
O microcontrolador não possui interface serial nativa, contudo é possível utilizar a biblioteca SoftwareSerial para emular portas seriais em pinos digitais.
Programação com Arduino Uno
O ATtiny85 pode ser programado conectando seus pinos 3 e 4 às conexões de dados + e – de um cabo USB e seguindo as instruções do post Gravação na Lilytiny usando porta USB. Entretanto, a programação do microcontrolador por intermédio de um Arduino Uno é mais prática. Para isso basta seguir os passos abaixo:
- Carregue no Arduino Uno o sketch exemplo Arduino ISP. Para isso, na IDE do Arduino vá em Arquivo → Exemplos → ArduinoISP.
- Agora é preciso instalar o microcontrolador ATtiny85 na IDE. Vá em Arquivo → Preferências e adicione o seguinte URL na área URLs Adicionais de Gerenciadores de Placas: https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
- Vá em Ferramentas → Placa → Gerenciador de Placas, busque por attiny e instale.
- Agora, vá em Ferramentas → Placa → ATtiny Microcontrollers → ATtiny25/45/85. Ainda em Ferramentas, vá em Processador → ATtiny85, Programador → Arduino as ISP, e em Portas selecione a porta COM em que o Arduino está conectado.
- Basta conectar o Arduino e o ATtiny conforme o esquema abaixo e carregar o código desejado normalmente.
Arduino | ATtiny85 |
GND | GND |
5V | 5V |
D13 | D2 |
D12 | D1 |
D11 | D0 |
D10 | RST |
Projeto Exemplo: Apertador de Botão
Alguns dispositivos exigem que um botão seja apertado toda vez que é ligado para ativá-lo. Você poderia apertar você mesmo esse botão, mas não seria mais legal fazer o ATtiny apertar por você? Normalmente não utilizamos um Arduino para realizar uma tarefa tão simples, mas como o ATtiny é bem mais barato e simples pode ser usado tranquilamente para problemas como esse.
Materiais Necessários
Utilizaremos os seguintes materiais para construção desse projeto:
- ATtiny85
- Optoacoplador PC817
- Resistor de 220Ω
- Protoboard(para teste)
- Jumpers
Montagem do Circuito
A montagem deve ser feita conforme a imagem abaixo. Caso não funcione, basta inverter a conexão dos terminais do botão no optoacoplador.
Esse circuito pode ser facilmente replicado em um pequeno pedaço de placa perfurada e instalado em um equipamento para exercer a função desejada.
Código
Para o exemplo proposto, o código abaixo deve ser carregado no ATtiny85. Basta definir o pino onde o optoacoplador está conectado e o tempo que o botão deve permanecer pressionado em milissegundos.
/* #--------------------------# | Apertador de | | Botão | | Ítalo Coelho | #--------------------------# */ #define OPCpin 0 //Pino onde o optoacoplador esta conectado #define TempoAperto 1000 //Tempo que o botão deve permanecer "apertado" void setup() { pinMode(OPCpin, OUTPUT); digitalWrite(OPCpin, HIGH); delay(2000); digitalWrite(OPCpin, LOW); } void loop() { //vazio }
Ainda restam pinos livres do microcontrolador que podem ser usados para incrementar a funcionalidade do projeto para o caso específico em que for empregado.
Conclusão
Para projetos onde poucos pinos de entrada e saída são necessários, o ATtiny é uma excelente alternativa a uma placa Arduino com um ATmega328P (o microcontrolador do Arduino), já que é menor, mais barato e não necessita de nenhum componente externo para ser utilizado.
Apesar de se destacar em projetos mais simples, pode ser usado em projetos com funcionalidades mais elaboradas como podemos ver no post “Criando um leitor RFID Bluetooth com ATtiny85”.
Ótimo projeto, a explicação ficou muito clara….👍👍👍
Valeu, Leonardo! Que bom que gostou.