Arduino, Internet das Coisas e Computação vestível

Você está em » Home : Projetos diversos :: 4. Visualização

[Voltar]

[Avançar]

4. Visualização


Desenhando na Tela OLED 0,96" I2C

O projeto utiliza Arduino Uno R3 e Display Oled 0,96 128x64 para explorar os recursos gráficos das bibliotecas "Adafruit_GFX.h" e "Adafruit_SSD1306.h".

// Projeto: Desenhando na Tela OLED 0,96" I2C 
// Autor: André Silveira
// Data: 14/06/2019 

#include "Adafruit_GFX.h"              				// Biblioteca para processamento gráfica
#include "Adafruit_SSD1306.h"         				// Biblioteca do controlador SSD1306 (128x64 e 128x32)

Adafruit_SSD1306 display(128, 64);           			// Cria objeto display

#include "Fonts/FreeMonoBold12pt7b.h"     			// Adiciona fonte
#include "Fonts/FreeMono9pt7b.h"             			// Adiciona fonte

int Contador;                                   	      			// Cria uma variável dinâmica 

void setup() {                

  delay(100);                                 
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);   	// Inicializa a tela com endereço I2C 0x3C
  display.clearDisplay();                      			// Limpa a tela 
  display.setTextColor(WHITE);                 			// Define cor do texto
  display.setRotation(0);                      			// Configura orientação 0, 1, 2 ou 3

/* Por padrão, linhas longas de texto são definidas para "quebrar" automaticamente na coluna mais à esquerda.
   Para substituir esse comportamento, útil em efeitos de seleção de rolagem, use setTextWrap (false). 
   O comportamento normal de quebra automática é restaurado  */   
  
  display.setTextWrap(false);   
  display.dim(0);                              				// Define brilho (0 é máximo e 1 é um pouco escuro)

}  

void loop()  {

  Contador = Contador + 1;                    			// Incrementa variável em 1
  if (Contador > 150)  {
      Contador = 0;  
  }

/* Cria uma matriz de 10 caracteres para converte Contador float em uma string para alinhar o texto à direita */
  char string[10];                           
  dtostrf(Contador, 3, 0, string);          			// (<variável>,<dígitos usados>,<dígitos decimais>,<nome da string>)
   
  display.clearDisplay();                   				// Limpa a tela 
  display.setFont(&FreeMono9pt7b);          			// Define uma fonte  
  display.setTextSize(0);                   				// Define o tamanho da fonte (Personalizada é 0) 
  
/* ------ Imprime texto ------ */ 
  display.setCursor(0, 10);                 				// Define posição para escrever na tela (x,y) 
  display.println("Ola!!");                   

/* ------ Desenha um triângulo ------ */ 
  display.drawTriangle(35,45,45,25,55,45, WHITE);  	// Draw triangle (X, Y dos 3 vértices do triângulo e após cor) 
  
/* ------ Desenha um triângulo preenchido ------ */ 
  display.fillTriangle(0,63,15,45,30,63, WHITE);  		// Draw Fill triangle (X, Y dos 3 vértices do triângulo e após cor) 

/* ------ Desenha uma linha ------ */ 
  display.drawLine(40,63,70,63, WHITE);           		// Draw line (x0,y0,x1,y1,color) 

/* ------ Desenha um circulo ------ */ 
  display.drawCircle(47,36,20,WHITE);             		// Draw circle (x,y,radius,color). X e Y centro do circulo 

/* ------ Desenha um circulo preenchido ------ */ 
  display.fillCircle(12, 27, 10, WHITE);          		// Draw filled circle (x,y,radius,color). X e Y centro do circulo 

/* ------ Desenha um retângulo com bordas arredondadas e com preenchimento ------ */ 
  display.fillRoundRect(58, 0, 18, 18, 5, WHITE); 		// Draw filled rounded rectangle (x,y,width,height,color) 
                                                   
/* ------ Desenha um retângulo ------ */ 
  display.drawRect(79, 0, 49, 27, WHITE);         		// Draw rectangle (x,y,width,height,color) 

/* ------ Imprime variavel com alinhamento a esquerda ------ */ 
  display.setFont(&FreeMonoBold12pt7b);           		// Configura a Fonte 
  display.setCursor(83, 20);                      			// Define posição para escrever na tela (x,y) 
  display.println(Contador);                      			// Valor impresso 

/* ------ Desenha retangulo com cantos arredondados ------ */ 
  display.drawRoundRect(79, 37, 49, 27, 8, WHITE); 	// Draw rounded rectangle (x,y,width,height,radius,color) 

/* ------ Imprime variavel com alinhamento a direita ------ */ 
  display.setCursor(83, 57);                      			// Define posição para escrever na tela (x,y) 
  display.println(string);                        			// Valor impresso 
  display.display();                              			// Imprime tudo que foi setado acima 
  delay(1500);                                    			// Aguarda intervalo de 1,5 segundos  

} 

 

[Voltar]

[Avançar]