// PROJETO: DISPLAY OLED SSD1306 I2C com
// Sensor ultrassonico HC04
// Nome : Lucas Fidelis de Lima
// Data : 24/05/2024
// Descricao : Lista de funcoes para usar
// o display oled com o sensor
// ultrassonico
// ************* BIBLIOTECAS *********
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#include <Wire.h>
#include "Imagens.cpp"
// ************* DEFINICOES *********
#define SCREEN_WIDTH 128 // COMPRIMENTO EM INGLES EM PIXELS
#define SCREEN_HEIGHT 64 // ALTURA EM INGLES EM PIXELS
#define SCREEN_ADDRESS 0x3c // ENDERECO EM INGLES
#define OLED_RESET -1 // REDEFINIR O DISPLAY OLED, USE -1 PARA REINICIAR JUNTO COM ESP32
#define pinTrig 2
#define pinEcho 15
// ************* INSTANCIAS *********
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET) ; // &Wire informa que o display seria I2C
// ************* VARIAVEIS *********
// ************* CONSTANTES *********
// 'Sao_Paulo', 128x64px
// ************* PROTOTIPOS *********
void setup() {
Serial.begin(115200);
oled.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS) ; // CONSTANCIA DA BIBLIOTECA ADAFRUIT. INFORMA QUE A COMUNICACAO I2C É DE 3.3V
// TEXTO SIMPLES
oled.clearDisplay(); // Limpa o display
oled.setTextSize(1); // Define o tamanho do texto
oled.setTextColor(WHITE); // define a cor do texto
oled.setCursor(0, 0); // define a posicao x(128), y(64) em pixels
oled.print("Ola Senai!") ;
oled.display(); // Exibe o conteudo no display
delay(1000);
// TEXTO CORES INVERTIDA
oled.clearDisplay();
oled.setTextColor(BLACK, WHITE); // Letra preta, fundo branco
oled.setCursor(30, 24);
oled.setTextSize(2);
oled.print("Senai") ;
oled.display(); // Exibe o conteudo no display
delay(1000);
// IMPRIMINDO NUMEROS
oled.clearDisplay();
oled.setTextSize(1);
oled.setCursor(0, 24);
oled.setTextColor(WHITE); // define a cor do texto
oled.println(123456789); // constante
oled.println("123456789"); // em forma de texto
int numeros = 123456789; // variavel
oled.print(numeros); // conteudo de variavel
oled.display();
delay(1000);
// BASE NUMERICA
oled.clearDisplay();
oled.setTextSize(1);
oled.setCursor(0, 24);
oled.setTextColor(WHITE); // define a cor do texto
oled.print("HEXADECIMAL - 0x");
oled.println(0xFF, HEX); // apresentar o numero em hexadecimal
oled.print("DECIMAL - ");
oled.println(0xFF, DEC); // apresentar o numero em decimal
oled.print("BINARIO - ");
oled.println(0xFF, BIN); // apresentar o numero em binario
oled.display();
delay(1000);
// IMPRIMINDO TABELA ASCII
oled.clearDisplay();
oled.setTextSize(1);
oled.setCursor(0, 0);
oled.setTextColor(WHITE);
for (int i = 1; i < 26; i++)
{
oled.print(i);
oled.print(" ");
oled.write(i); // imprime um caracter da tabela ASCII
oled.print(" | ") ;
}
oled.display();
delay(1000);
oled.clearDisplay();
oled.setTextSize(1);
oled.setCursor(0, 0);
oled.setTextColor(WHITE);
for (int i = 26; i < 51; i++)
{
oled.print(i);
oled.print(" ");
oled.write(i); // imprime um caracter da tabela ASCII
oled.print(" | ") ;
}
oled.display();
// Scroll da tela
oled.clearDisplay();
oled.setTextSize(1);
oled.setCursor(0, 0);
oled.println("Senai");
oled.println("1.34");
oled.println("24/05/2024");
oled.display();
// HORIZONTAL
oled.startscrollright(0x00, 0x07);
delay(5000);
oled.stopscroll();
oled.startscrollleft(0x00, 0x07);
delay(5000);
oled.stopscroll();
// DIAGONAL
oled.startscrolldiagright(0x00, 0x07);
delay(4000);
oled.stopscroll();
oled.startscrolldiagleft(0x00, 0x07);
oled.stopscroll();
oled.clearDisplay();
// Desenho de retangulos
oled.drawRect(10, 10, 50, 44, WHITE);
//x, y, comprimento, altura
oled.fillRect(68, 10, 50, 44, WHITE); // PINTADO
//x, y, comprimento, altura
oled.display();
delay(1000);
oled.clearDisplay();
// RETANGULO COM BORDA
oled.drawRoundRect(10, 10, 50, 44, 5, WHITE);
//x, y, comprimento, altura, raio
oled.fillRoundRect(68, 10, 50, 44, 10, WHITE); // PINTADO
//x, y, comprimento, altura, raio
oled.display();
delay(1000);
oled.clearDisplay();
// CIRCULO
oled.drawCircle(32,32,25, WHITE);
// x, y, raio
oled.fillCircle(96,32,25, WHITE); // PINTADO
// x, y, raio
oled.display();
oled.clearDisplay();
// triangulo
oled.drawTriangle(5,10,55,10,30,54, WHITE);
// x1, y1, x2, y2, x3, y3
oled.fillTriangle(70,55,120,55,95,10, WHITE);
// x1, y1, x2, y2, x3, y3
oled.display();
delay(1000);
oled.clearDisplay();
// Inverter cor da tela
oled.drawRoundRect(10,10, 108,44,3,WHITE);
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(32,30);
oled.print("Senai 1.34");
oled.display();
oled.invertDisplay(true);
delay(2000);
oled.invertDisplay(false);
delay(2000);
oled.clearDisplay();
// LINHA
oled.drawLine(0, 0, 127, 63, WHITE); // 127 seria o ultimo pixel e o 63 tambem
oled.display();
delay(1000);
oled.clearDisplay();
oled.drawBitmap(0,0, Juventus, 128, 64, WHITE);
oled.display();
}
void loop() {
}