28 outubro 2017

Digispark ATtiny85 com display OLED I2C

No post de hoje vamos mostrar como utilizar a Digispark ATtiny85 com um display OLED I2C, um item importante se você deseja criar projetos compactos utilizando essa placa de desenvolvimento, como por exemplo estações meteorológicas, contadores e outros dispositivos que necessitem de exibição de dados para o usuário.

Digispark ATTiny85 e Display OLED I2C

Essa placa é perfeita para projetos que não necessitem de muitas portas do microcontrolador (a Digispark tem 6 pinos de I/O), e também para aqueles alimentados por bateria, já que a Digispark tem um baixíssimo consumo de energia.


Utilização da Digispark ATtiny85 com IDE Arduino


Antes de montar este projeto eu recomendo a leitura do post Como programar a Digispark ATtiny85 com IDE Arduino, onde mostro como configurar a IDE para reconhecer esta placa e também os detalhes sobre essa placa de desenvolvimento de baixo custo.

Com relação ao hardware do projeto deste post, o que vai nos interessar é a conexão I2C da Digispark, que você pode verificar na imagem abaixo (em verde, pinos D0 e D2):

Pinagem Digispark

Conectando o display nesses 2 pinos, temos ainda disponíveis 4 portas para conectarmos sensores, módulos, atuadores e outros dispositivos.

Conexão do display Oled


Neste teste vamos usar um display OLED I2C azul e amarelo, já mostrado algumas vezes aqui no blog. Conecte o pino SDA do display ao pino D0 da Digispark, e o pino SCL do display ao pino D2, conforme o esquema abaixo:

Circuito Digispark ATtiny85 e Display OLED I2C

A alimentação do display será feita pela própria Digispark, pelos pinos 5V e GND.

A ligação acima mostra a conexão em uma Digispark com conexão USB embutida, ou seja, você pode ligar este projeto na porta USB de um computador ou utilizá-lo com um carregador de celular. Outra opção é você utilizar a Digispark com conector micro USB. Nas duas placas a disposição dos pinos de entrada/saída e alimentação é a mesma, ok?

Programa Digispark com display OLED


O programa abaixo, bem pequeno por sinal, utiliza a biblioteca DigisparkOled.h, instalada por padrão quando você adiciona a Digispark na IDE do Arduino.

Serão exibidas strings com caracteres em 2 fontes diferentes (8x16 pixels e 6x8 pixels), que são posicionadas na tela com o comando oled.setCursor() e mostradas com os comandos oled.print() e oled.println()

Devido à limitação da memória do ATtiny85 (8KB), não espere muitos "efeitos especiais" com essa biblioteca e pense sempre em otimizar o programa para que ele seja econômico na utilização dos recursos do microcontrolador. Recomendo inclusive a leitura deste artigo da Adafruit que mostra como você pode reduzir o uso de memória em programas Arduino. 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//Programa: Digispark ATtiny85 com display OLED I2C
//Autor: Arduino e Cia

#include <DigisparkOLED.h>
#include <Wire.h>

void setup()
{
  //Inicializa o display
  oled.begin();
}

void loop()
{
  //Preenche o display
  oled.fill(0xFF);
  delay(3000);
  
  //Limpa o display
  oled.clear();
  delay(1000);
  
  //Posiciona o cursor
  //oled.setCursor(X em pixels, Y em linhas de 8 pixels comecando com 0);
  oled.setCursor(10, 0);
  //Seleciona fonte 8x16
  oled.setFont(FONT8X16);
  oled.print(F("Arduino e Cia"));
  //Seleciona fonte 6x8
  oled.setFont(FONT6X8);
  oled.setCursor(8, 3);
  oled.print(F("Digispark ATtiny85"));
  oled.setCursor(25, 6);
  oled.print(F("Display OLED"));
  
  //Aguarda 10 segundos e reinicia o processo
  delay(10000);
}

Simples, não? E não se engane com o tamanho da Digispark ATTiny85, pois dá pra fazer muita coisa legal com essa placa. Duvida? Dê uma olhada nessa lista de projetos usando ATTiny85 no Hackaday.io.

Nenhum comentário:

Postar um comentário