/*PROJETO: Display OLED SSD1306 I2C com
sensor ultrassonico HC-SR04
Nome: Thiago Augusto de Oliveira
Data: 24/05/2024
Descrição: Lista de funções para usar
o display oled com o sensor
ultrassonico
*/
//*******BIBLIOTECAS*******
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#include <Wire.h>
#include "imagens.cpp"
#include <DHT.h>
//*******DEFINIÇÕES********
#define SCREEN_WIDTH 128 //comprimento da tela OLED em pixels
#define SCREEN_HEIGHT 64 //altura da tela OLED em pixels
#define SCREEN_ADDRESS 0x3C //enderço padrão do display OLED
#define OLED_RESET -1 //Pino Reset(use -1 para reiniciar junto com ESP32)
#define PinTrig 2 //pino TRIG do sensor Ultrassonico
#define PinEcho 15 //pino Echo do sensor Ultrassonico
//******INSTANCIAS*********
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
//******VARIAVIES**********
//******CONSTANTES*********
float TempoEcho = 0;
const float VelocidadeSom = 340;
//******PROTOTIPOS*********
void setup() {
Serial.begin(115200);
oled.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS);
pinMode(PinTrig, OUTPUT);
pinMode(PinEcho, INPUT);
digitalWrite(PinTrig, LOW);
digitalWrite(PinTrig, HIGH);
delayMicroseconds(10);
digitalWrite(PinTrig, LOW);
TempoEcho=pulseIn(PinEcho, HIGH);
float distancia_mm = TempoEcho * VelocidadeSom/1000 /2;
Serial.println(distancia_mm);
delay(100);
//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 posição x, y em pixels
oled.print("Ola Mundo!"); //Escreve um texto no display
oled.display(); //Exibe o conteudo
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();
delay(1000);
//IMPRIMINDO NUMEROS
oled.clearDisplay();
oled.setTextSize(1);
oled.setCursor(0, 24);
oled.setTextColor(WHITE);
oled.println(123456789); //constantes
oled.println("123456789"); //em forma de texto
int numeros = 123456789;
oled.print(numeros); //conteudo de variavel
oled.display();
delay(1000);
//Base Numérica
oled.clearDisplay();
oled.setTextSize(1);
oled.setCursor(0, 24);
oled.setTextColor(WHITE);
oled.print("HEXADECIMAL - 0x");
oled.println(0xFF, HEX); //apresebtar o numero em hexadecimal
oled.print("DECIMAL - ");
oled.println(0xFF, DEC); //apresentar o numero em decimal (padrao)
oled.print("BINARIO - ");
oled.println(0xFF, BIN); //apresentar o numero em binário
oled.display();
delay(1000);
//IMPRIMINDO TABELA ASCII
oled.clearDisplay();
oled.setTextSize(1);
oled.setCursor(0, 0);
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);
for (int i = 26; i < 50; 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(4000);
oled.stopscroll();
oled.startscrollleft(0x00, 0x07);
delay(4000);
oled.stopscroll();
//Diagonal
oled.startscrolldiagright(0x00, 0x07);
delay(4000);
oled.stopscroll();
oled.startscrolldiagleft(0x00, 0x07);
delay(4000);
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);
//x, y, comprimento, altura
oled.display();
delay(1000);
oled.clearDisplay();
oled.drawRoundRect(10, 10, 50, 44, 5, WHITE);
//x, y, comprimento, altura, raio
oled.fillRoundRect(68, 10, 50, 44, 10, WHITE);
//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);
//x, y, raio
oled.display();
delay(1000);
oled.clearDisplay();
//Triangulo
oled.drawTriangle(5, 10, 55, 10, 30, 54, WHITE);
oled.fillTriangle(70, 55, 120, 55, 95, 10, WHITE);
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);
oled.display();
delay(1000);
oled.clearDisplay();
oled.drawBitmap(0,0,iconesenai, 128, 64, WHITE);
oled.display();
}
void loop() {
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
}
Loading
ssd1306
ssd1306