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
}
Comentar
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
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.
O mesmo aqui Marcio Costa.
Estava com problemas para conseguir gravar conforme acima. Sempre obtia o mesmo erro:
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
Pesquisei bastante e consegui gravar com sucesso o ATtiny85 - 8MHz com o seguinte procedimento:
Ao invés do ArduinoISP.ino que vem com a IDE, fiz o mesmo procedimento do site, porém, eu subi este aqui https://github.com/arduino/Arduino/blob/master/build/shared/example...
Também neste momento subi sem o capacitor ligado entre RESET e GND.
Outro ponto que fiz diferente foi que alterei a pinagem do Sketch do tutorial para 1 pino a esquerda, ou seja, usei os pinos de 10 a 13 (ao invés de 9 a 12) e nos pinos 9, 8 e 7 eu liguei LEDs (heartbeat).
Liguei o capacitor, alterei para o ATtiny85 8 MHz e gravei o código de exemplo e funcionou!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)