CONHECENDO E PROGRAMANDO ATTINY85 DIGISPARK NA IDE DO ARDUINO

Placa de Desenvolvimento baseada no MCU ATMEL ATtiny85 - Digispark

Placa de Desenvolvimento baseada no MCU ATMEL ATtiny85 – Digispark

 

Fala Pessoal! Tudo Bom?!  😀 

 

Desejando fortemente que sim, que tudo esteja muito bem  😉 , damos início ao post de hoje, onde falaremos sobre a plaquinha de desenvolvimento da Digispark baseada no microcontrolador Atmel Attiny85! Vamos em frente!  💡 

 

Bom pessoal, eu vou fazer o máximo para não me estender tanto neste artigo (sim, eu sei que sempre vou um pouco mais além, risos), mas vou tentar ser breve na “escrita”, porque na série de videos que tenho planos de fazer (no mínimo um total de 3 videos que postarei aqui e em nosso canal do YouTube) falando sobre essa mini-placa baseada no MCU ATtiny85, aí sim vocês poderão absorver “um montão” de conteúdos, explicações e principalmente “práticas funcionais”.  😎 

 

CONSIDERAÇÕES TÉCNICAS INICIAIS SOBRE A PLACA DIGISPARK – ATTINY85:

 

Vamos falar de uma plaquinha (plaquinha mesmo!) de desenvolvimento que tem como “cérebro“, um microcontrolador da família ATMEL ATtiny85, e o melhor, podemos programar esta placa utilizando a IDE do próprio Arduino. Ahh… um detalhe interessante é que, mesmo sendo considerada como uma “placa de desenvolvimento“, por seu tamanho tão minúsculo, poderia facilmente ser chamada de “placa final“!  🙄 

A placa conta com 6 pinos de I/O (entradas e saídas), e 3 destes 6 pinos (ou seja, a metade), podem ser utilizados como pinos de saída do tipo PWM (largura de pulso modulada). Esta plaquinha também nos permite alimentá-la com uma alimentação externa (não apenas via USB).

Este microcontrolador da família ATMEL AVR, o ATtiny85, é uma alternativa excelente ao próprio MCU ATmega328P que é o “cérebro” das placas ARDUINO, claro, considerando projetos reduzidos, mas que ainda assim poderão usufruir do “poder” do pequenino microcontrolador ATtiny85, como por exemplo: saídas digitais, saídas do tipo PWM, entradas Analógicas, 8K de memória flash pra gravar o firmware/programa/sketch entre outros…

 

DANDO A PRIMEIRA OLHADA NA PLAQUINHA DIGISPARK – ATMEL ATTINY85:
Placa_Digispark_ATtiny85_Detalhes

Placa Digispark ATtiny85 – (créditos imagem: arduinoecia.com.br)

 

  • Especificações Técnicas:

    Microcontrolador: Atmel ATTINY85 (datasheet)
    Memória flash: 8KB
    EEPROM: 512 bytes
    SRAM: 512 bytes
    Pinos de I/O: 6
    Tensão de operação: 5VDC (USB) – 5,5 à 35V (alimentação externa)
    Interfaces: I2C e SPI
    Conexão: micro-USB
    Conversor analógico digital (ADC) em 4 pinos
    Baixíssimo consumo de energia
    Dimensões da PCI: 26,5 x 18,5 x 4,5mm

 

CONHECENDO AS FUNÇÕES DOS PINOS I/O DA PLACA DIGISPARK ATTINY85:
Digispark_ATtiny85_Pinagem

Funções dos Pinos I/O da Digispark Attiny85 – (créditos imagem: arduinoecia.com.br)

 

CONHECENDO AS “PRINCIPAIS DIFERENÇAS” ENTRE A PLACA DIGISPARK ATTINY85 E A PLACA ARDUINO:

 

A plaquinha Digispark suporta todos os recursos encontrados também na IDE do Arduino, com exceção do Monitor Serial (que pode ser “emulado” via recursos de software). Devemos considerar também que muitas bibliotecas disponíveis para o Arduino, não funcionarão quando utilizadas na Digispark ATtiny85!  😳 

Para de fato realizarmos qualquer tipo de desenvolvimento (baseados originalmente no Arduino), utilizando a “plataforma” Digispark e ATtiny85, precisamos identificar as principais diferenças entre estes dois microcontroladores – ATmega328P e ATtiny85 – (mesmo que sejam da mesma “família” ATMEL), ainda assim possuem capacidades distintas:

 

  ATtiny85 ATmega328
Pinos físicos 8 28
Clock interno 1 a 8 MHz 1 a 8 MHz
Clock externo máximo 20 MHz 20 MHz
Flash (kB) 8 32
SRAM (bytes) 512 2048
EEPROM (bytes) 512 1024
Entradas analógicas (ADC) 4 6
Saídas PWM 2 6
Portas digitais 6 23
UART (“serial por hardware”) não sim
I2C sim sim
SPI sim sim

Tabela ATmega328P x ATtiny85 (créditos: br-arduino.org)

 

PRECAUÇÕES A SEREM TOMADAS (e levadas em consideração) AO SE TRABALHAR COM A PLACA DE DESENVOLVIMENTO – DIGISPARK ATTINY85:

 

Devido ao pequenino tamanho e relativo “baixo custo” desta plaquinha de desenvolvimento da Digispark, não devemos esperar “toda a robustez” que uma placa de desenvolvimento completo do Arduino nos promove (e permite usufruir).  ❗ 

SEMPRE (ou quase…) que formos testar um novo circuito, é recomendável que a gente teste o mesmo, utilizando uma fonte de alimentação externa primeiro, isso porque, como esta placa Digispark não oferece nenhuma proteção (com respeito à conexão USB entre a placa e o computador), caso haja (ainda que “pequeno”) curto-circuito no protótipo ou conexões, infelizmente poderemos danificar irreversivelmente as saídas/entradas USB do nosso computador.  🙄 

 

Atenção! A plaquinha de desenvolvimento Digispark ATtiny85, não tem nenhuma proteção contra curto-circuito ou contra inversão de polaridades (Positivo e Negativo – VCC/GND).

 

VAMOS ENTÃO À SÉRIE DE VIDEOS ONDE TUDO FICA MAIS FÁCIL!
Afinal já dizia o ditado: “uma imagem fala mais que mil palavras“!  😉 

 

PS: Nos próximos videos, vamos focar especificamente na plaquinha super-compacta da “Digispark“, que já sabemos ser mais uma variação da “plataforma Arduino“, mas em uma versão “menor” (ou melhor, muito menor), como sendo uma placa prima do Arduino – que é baseado no MCU ATMega328P !

CÓDIGO DO “BLINK” PARA ATTINY85 QUE RODAMOS NO VIDEO ACIMA:

 

CÓDIGO PARA CONTROLE DO MOTOR DE PASSO COM O ATTINY85 QUE RODAMOS NO VIDEO ACIMA:

 

CÓDIGO PARA CONTROLE DO SERVO MOTOR COM O ATTINY85 QUE RODAMOS NO VIDEO ACIMA:

Faça o download da biblioteca necessária – “SoftwareServo“ para executar o exemplo:

 

Então pessoal, espero que vocês gostem bastante desta mini-serie que dividimos nos 3 videos!  💡 

 

Assistam, Sigam e Compartilhem Conhecimento para TODOS! 😉

Rodrigo Costa
Sigam-me

2 thoughts on “CONHECENDO E PROGRAMANDO ATTINY85 DIGISPARK NA IDE DO ARDUINO”

  1. Bom dia Rodrigo Costa, tudo blz?
    Encontrei o código para o servo, perem ainda não funcionou, deu erro:
    Erro compilando para a placa ATtiny25/45/85. Não sei oque está acontecendo.

    1. Fala Renato! (Enviei esta mesma resposta pra ti lá no YouTube caso não veja aqui no Blog)

      Rapaz, realmente “debugar” um código não é das tarefas mais simples.

      Não tenho também como adivinhar a razão pela qual você está recebendo esta mensagem, até porque, no seu primeiro comentário você disse que o erro era outro, então, acredito eu que você um dia já conseguiu programar esse microcontrolador ATtiny85 que você está utilizando.

      Sugiro que de principio você deixe seus próprios códigos de lado e pegue o “blink” de exemplo do próprio attiny85. Uma vez que você consiga verificar e compilar o código, então faça o upload para seu microcontrolador. Bom, se você conseguir realizar estes passos, me ficará mais claro que pelo menos a sua placa está sendo “gravável” o que me dirá também que seu MCU está bom e que seu SETUP está correto para programa-lo. Pois daqui sem poder saber como você está programando este microcontrolador, é muito mais complicado imaginar o problema infelizmente.

      Outra ideia é: antes de incluir qualquer biblioteca externa no seu código, tenha certeza absoluta que ela é capaz de “rodar” no ATtiny85. Existem bibliotecas que apesar de rodarem lindamente no microcontrolador ATmega328p (Arduino UNO), não rodam no Attniy85 (por variadas questões, até mesmo frequência de ciclos de clock).

      Verifique isso e mãos a obra. 🙂

      PS: Outro detalhe é que no seu primeiro post você queria “trocar” sua inscrição pela disponibilização do sketch do video que roda o servomotor, então o código você já tem acesso (aquele link do Blog que passei), ou seja, pensei por aqui que você já estava pelo menos com o servomotor funcionando. Mas parece que o seu problema aí não é apenas questão de Sketch/código correto, parece ser uma questão de “setup” ou até de configuração da IDE (Seleção de Porta, seleção da placa correta, etc).

      Espero que ajude.

      Um Abraço,
      Rodrigo Costa.
      https://EletronicaParaTodos.com

Esse espaço é Seu! Comenta Aí! ;-)