/*PROJETO: Display OLED SSD1306 I2C com
sensor ultrassonico HC-SR04
Nome: Thiago Augusto de Oliveira
Data: 27/05/2024
Descrição: uso do display com sensores
*/
//*******BIBLIOTECAS*******
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#include <Wire.h>
#include "imagens.cpp"
//*******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**********
float tempoEcho = 0; //armazena o tempo do echo
//******CONSTANTES*********
const float velocidadeSom = 340; // velocidade do som em m/s
//******PROTOTIPOS*********
void setup() {
Serial.begin(115200);
oled.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS);
pinMode(pinTrig, OUTPUT);
pinMode(pinEcho, INPUT);
}
void loop() {
//Emite um pulso de 10uS
digitalWrite(pinTrig, HIGH);
delayMicroseconds(10);
digitalWrite(pinTrig, LOW);
//Mede o tempo que demora para o pulso retornar
tempoEcho = pulseIn(pinEcho, HIGH);
//Calcula a distancia pelo tempo
float distancia_mm = tempoEcho * velocidadeSom / 1000 / 2;
Serial.println(distancia_mm);
delay(100);
}