Olá Garagistas! No Tutorial de hoje mostraremos como você pode passar uma programação para um microcontrolador ATtiny85 utilizando um Arduino. Como demonstração faremos uma contagem binária utilizando 5 LEDs (5 bits).
Material Utilizados:
1. ATtiny85
Imagem 1 - ATtiny85
O ATtiny85 possui algumas diferenças se comparado com um ATmega328 (Arduino UNO):
1.1) O ATmega328 (Arduino UNO) precisa de bootloader para rodar os códigos, já o ATtiny85 como é gravado por SPI através do Arduino não precisa, logo toda sua memória está disponível para código.
1.2) O ATtiny85 possui menor quantidade de pinos e também uma menor quantidade de memória disponível. Ele é ideal para projetos onde não é necessário a quantidade de pinos e memória que o ATmega328 possui. Logo, utilizando-o você pode deixar seu projeto mais barato e menor.
1.3) Assim como o ATmega328, ele foi construído com uma arquitetura 8bits e possui:
- Tensão de operação de 2.7V a 5.5V
- 8Kb de Flash (Armazenar Código);
- 512bytes de EEPROM (Armazenar Dados);
- 512bytes de SRAM (Processar informações);
1.4) Na tabela abaixo estão alguma das características principais da pinagem do ATtiny85:
Tabela 1 - Características dos pinos do ATtiny85
OBS¹: O pino 1 (PB5) geralmente é utilizado como pino de RESET, por isso quando configurado como I/O fornece menor corrente se comparado com os outros pinos. Ele também pode ser utilizado como como um conversor ADC (ADC0). Lembrando que quando configurado como pino de I/O ou ADC, você perde o botão de RESET.
OBS²: Via software você pode criar PWM com qualquer pino de I/O do ATtiny85.
1.5)Na imagem abaixo você verá a pinagem do ATTiny85:
2. ISP
4. Instalando as configurações do ATtiny85 na Arduino IDE
5. Programando o ATtiny85
- pinMode();
- digitalWrite();
- digitalRead();
- analogRead();
- analogWrite();
- shiftOut();
- pulseIn();
- millis();
- micros();
- delay();
- delayMicroseconds();
- Biblioteca SoftwareSerial
void setup()
{
DDRB = B11111; //Configura os pinos PB0 a PB4 como saída
PORTB = B00000; //Apaga todos os LEDs
}
void loop()
{
PORTB++; //Incrementa o valor binário no PORTB (LEDs)
delay(500); //Aguarda 500 milissegundos
}
Natã Souza Novaes Pinto
O mesmo aqui Marcio Costa.
24 Nov, 2014
jadson dos santos
Bom dia !
Olá amigos, alguém poderia me ajudar, estou tentando fazer uma gravação no ATtiny85, porém aparece esse erro conforme imagem abaixo.
18 Set, 2015
Flavio Hernan
Esse tutorial está desatualizado, não funciona corretamente na IDE 1.6.4.
Esse arquivo cotem as correções
https://github.com/damellis/attiny/archive/ide-1.6.x.zip
Para outras dúvidas consultar
http://highlowtech.org/?p=1695
12 Fev, 2016