Já imaginou programar um Chip bem pequeno como os 555 que possuem 8pinos?
Seria posível levar as facilidades do arduino e tecnologia AVR para os projetos extremamente pequenos e ainda reduzir ao máximo o custo.
A Proposta então é usar o seu Arduino como uma ferramenta de gravação dos ATtiny45 ou ATtiny85.
É possível montar na protoboard ou mesmo montar a sua propria sheild.
Nesta aula aprenderemos como montar na matriz de contatos, como programar e veremos um modelo de sheild.
Vamos mergulhar no mundo do ATtiny?
Inicialmente temos um chip chamado ATtiny com 8 pinos e a primeira pergunta: Ele é igual ao Arduino?
Não exatamente. O arduino é uma plataforma e possui um microcontrolador diferente mas todos são do mesmo fabricante: a ATMEL.
Outra diferença é que o Arduino precisa de bootloader, mas ATtiny não usa boot.
Para fins práticos podemos imaginar o "tiny" como um Arduininho pois possui um menor número de pinos I/O, Analógicos e também menor memória.
Mas com este é possivel montar robôs, monitorar sensores de temperatura, escrever num display de LCD, 7seg, dentre outras aplicações que são comuns para o arduino padrão.
Para esse projeto iremos usar:
Clicar na imagem para ampliar
1x Arduino qualquer modelo.
1x ATtiny85 ou ATtiny45 (O modelo "ATtine85" possui 8K de memória flash para código e o "45" 4K)
1x Resistor 220R( pode ser entre 220R e 1K)
1x LED
1x Capacitor de 10uF/16V
1x botão
2x barra de pinos Femea ou Macho com 4x pontos.
Fios
Matriz de contatos
Baixar os arquivos e códigos que serão usadosao longo da aula.
*Veja produtos na Loja do Brasilrobtics
Vamos dar uma olhada no datasheet e ver as configurações de cada pino.
Datasheet do Attiny
Então temos:
3x Portas analógicas.
2x Portas I/O com PWM
1x Pino de Reset
2x Pinos de alimentação(+Vcc, -GND )
Lembrando: postas analógicas podem ser lidas como portas I/O então na prática temos 5x portas de I/O
Simplificando... O que é preciso saber para programar pode ser visto na imagem abaixo:
Etapa 1- Inicialmente precisamos preparar a interface para receber esse novo modelo de microcontrolador.
Vamos usar a interface 022 (Baixar Arduino 022)
E o arquivo: (Baixar attiny45_85)
Clicar na imagem para ampliar
Se tudo occorrer correntamente ao abrir a IDE do arduino você terá novas opções de microcontroladores quando for em TOOLs>BOARD
Caso a IDE já esteja aberta você deve fechar e reicializa-la para aparecer a atualização.
Etapa 2- Agora vamos tornar o Arduino um gravador de ATtiny.
É preciso gravar um código que fará essa tarefa de comunicação e gravação dos dados.
Este já está disponível na IDE do arduino.
Veja como fazer:
Abra o código ArduinoISP
Escolha o modelo da placa Arduino que está usando:
Faça o mesmo com a COM(porta usb)
Faça a gravação do código na sua placa Arduino.
Essa etapa deve ser feita sem as conexões com os circuito que será apresentado ao longo da aula.
Etapa 3 - Agora com seu código que permite a gravação do tiny monte o circuito abaixo numa protoboard.
Veja como fica:
Ao fim da montagem vamos gravar um código básico e verificar o funcionamento de tudo:
Atenção: Não existe pino de número "13" no ATtiny então é preciso mudar.
Vamos adotar o pino de número "0" para este teste.
Então basta mudar onde tem "13" para "0" no código do Blink.
Tudo deve ficar como na imagem abaixo:
Faça a gravação do código clicando em Uploud.
Veja o vídeo do funcionamento deste código básico:
OBS: Caso você não tenha preparado o arduino para interfacear a gravação o código não será gravado no ATtiny.
A presença do capacitor de 10uF-16V é permitir que o código seja gravado no ATtiny. Assim com presença do capacitor no pino de RESET do Arduino não será possível a gravação de códigos no Arduino. Basta retirar o fio do Reset que tudo retorna ao normal.
Após a grvação uma mensagem em vermelho pode aparecer na IDE do arduino mas isso não afeta na gravação.
Feito os testes e após tudo estar "supimpa" você pode montar uma sheild para gravação de ATtiny.
Com ajuda de um saca Chip você pode retirar o "tiny" do soket e por outros e ir gravando, ou mesmo usar a interface para prototipação.
É possível usar uma placa de fácil prototipação ou fazer num software de CAD como o Proteus e corroer a trilha.
Veja como pode ficar:
*Futuramente o projeto no Proteus também estará disponível.
Veja o vídeo com o funcionamento da sheild:
Funções que o ATtiny suporta com o Arduino:
- pinMode()
- digitalWrite()
- digitalRead()
- analogRead()
- analogWrite()
- shiftOut()
- pulseIn()
- millis()
- micros()
- delay()
- delayMicroseconds()
Gostou desta aula incentive mais visitando nossa loja:
26 comentários:
Fala Gamesh!
Vi que o kit do ATtiny está sendo vendido na loja... Você vende este shieldzinho já montado? Ou apenas incluiria a PCB no kit? Quanto ficava?
Valeu, abração
olá
Não temos PCB no momento disponível.
Apenas o kit mesmo.
Temos a matriz de contatos.
Logo estará disponível a PCB.
Não compila na versão IDE Arduino 1.0, alguém conseguiu descobrir o problema !
A IDE 1.0 sofreu modificações de bliblioteca.
Assim gera alguns conflitos.
Usar a versão indicada no tutorial que tudo da certo.
Olá!
Estou pensando em usar o attiny85, em conjunto com o controlador de motor de passo (vendido aqui), pra criar um pequeno circuito de controle que vai manter uma velocidade constante no motor.
Consigo fazer isso apenas alimentando o attiny e conectando ele no controlador? É necessário cristal no attiny?
Abçs.
olá
Não é preciso cristal.
respeitando as limitações de memória e pinos de I/O e analogicos.
É possível.
ola, é possivel utilizar a lib SoftwareSerial nesse ATtiny85?
você vende ele separadamente?(caso eu queira comprar mais de um mic)
olá
Não saberia informar sobre a lib.
sim temos dispnpivel.
Consegue liberar o esquemático? ou uma resolução melhor, pq aqui ta ruim de achar os pinos, eu uso o mega e a disposição dos pinos é diferente... Vlw.
Esquece eu abri a outra e esta show de bola... Vlw
Para quem quer utilizar o arduino mega 2560 ao invez do uno basta inserir as seguintes definições ao exemplo ArduinoISP:
#define SCK 52
#define MISO 50
#define MOSI 51
#define RESET 53
onde 52 correspondera ao pino 13
onde 50 correspondera ao pino 12
onde 51 correspondera ao pino 11
onde 53 correspondera ao pino 10
É possivel usa-lo com o atmega8 ou atmega 328?
Ola
Poderia detalhar melhor sua duvida?
Ola,
Estou tentando gravar com o Duemilanove atmega 328 e nao estou conseguindo. Cita que algumas variaveis nao estao definidas. Voce pode ajudar?
Provavelmente e´ a versao da ide do arduino que esta usando.
Use a 022 como e´ recomendado no tutorial.
Nem todas as funções são compativeis com o attiny
Boa Noite Amigos, alguem conseguiu gravar com Arduino Mega1280, no meu esta dando alguns erros.
Não deve funcionar com MEGA pois os pinos mudam.
Seria preciso mudar algumas coisas.
O recomendado é seguir o tuturial como mostrado.
Olá, é possivel gravar no attiny 85 um código .hex pronto atraves do arduino?
ou tenho que desenvolver o código inteiro novamente?
Olá
Se vai gravar o .hex voce precisa ter em mente que o arquivo foi feito para um determinado hardware que tem pinos e coisas configuraçoes especificas.
Se vai mudar de atmega tambem tem que mudar as confirguraçoes no codigo assim o hex muda tb.
Voce pode gravar o .hex por ISP
mas ainda assim você deve ver quais pinos fazem o que e informar no código.
A gravaçao do hex direto do arduino para o attiny não sei dizer no momento como fazer ou se é possivel.
A forma conhecida é por ISP usnado um gravador usbtiny.
Veja num outro tutorial sobre bootloader no arduino onde é usado esse gravador. Com ele pode gravar o hex em qualquer AVR.
NÃO CONSEGUIR LER UM VALOR DO POTENCIOMETRO NAS PORTAS
NÃO SEI O QUE ACONTECEU
TO TENTANDO FAZER UM PEQUENO PROJETO ONDE DETERMINADOR VALOR DO POTENCIOMETRO CHEGA UM VALOR "X" E ATIVE A PORTA EM HIGH
O QUE SERÁ QUE EU ESTOU FAZENDO DE ERRADO ??
e posivel usar este sistema de gravação para gravar em um ATMEGA2561-16AU que tambem e encontrado com baixo custo
Olá
Para David:
Verifique as funçoes que está usando.
Um dica é desenvlver o código no arduino depois testar no tiny.
Para Eduardo:
Esse tutorial é aplicado apenas para esses dois modelos apresentados.
Entretanto é viavel para outros modelos sim, mas será presiso fazer um código que torne compativel gravar em outros modelos. O que vai dar um certo tratablho e conhecimento mais aprofundado de microcontroladores.
Você pode usar um gravador AVR universal o usbtiny ISP para gravar qualquer modelo de AVR
Otimo tutorial!!
Só queria fazer uma observação, para tudo dar certo tem que rodar o Arduino na versão 1.0.4
Abraço!
Pessoal,
Tentei exatamente com a versão 0022 conforme descrito acima, segui corretamente todos os passos mas quando estou tentando fazer o upload to teste basico BLINK para o tiny (já configurado com a board correta ATTiny45 w/Arduino as ISP) no final é apresentada a seguinte mensagem:
Binary sketch size: 658 bytes (of a 4096 byte maximum)
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny45
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny45
avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x64
avrdude: failed to write flash memory, rc=-4
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
Alguém pode me ajudar?
olá
É preciso gravar o código no Arduino para torna-lo o gravador do ATTiny.
É possível que mensagens de erro venham aparecer mas basta verificar se o código foi gravado e esquecer da mensagem.
Se não der certo volte ao início do tutorial verifique passo a posso. Confira todos os fios e faça nova tentativas.
Se não der certo aguarde alguns dias e volte a testar tudo é possível que esteja comentando um erro e não perceba devido a repetição, mas passados alguns dias você faz e funciona por não ter cometido o mesmo erro.
Logo vai chegar ao resultado. Boa sorte.
Queria fazer um dispositivo para abrir a fechadura da porta com uma pulseira. É possivel com esse kit?
Postar um comentário