#include <Adafruit_SSD1306.h> //OLED
#include <Wire.h> //SPI
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#define BTN_PIN 4 //define pino do botão
#define LED_PIN 14 //define pino do led
#define POT_PIN 34
int i = 0; //variavel de controle uso geral
boolean state_LED; //variavel de status do led
int potenc;
float potenc_v;
int serial_read = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(BTN_PIN, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
pinMode(POT_PIN, INPUT);
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
for (;;); // Don't proceed, loop forever
}
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(SSD1306_WHITE);
}
void loop() {
if (!digitalRead(BTN_PIN)){
potenc = (analogRead(POT_PIN));
potenc_v = (potenc*(3.3/4095));
display.setCursor(35,10);
display.print("BLOCK");
display.setCursor(30,30);
display.print(potenc_v);
display.print(" V");
display.display();
Serial.print(potenc_v);
Serial.println (" V");
while (!digitalRead(BTN_PIN)){
state_LED = digitalRead(LED_PIN);
digitalWrite(LED_PIN,!state_LED);
delay(250);
}
}
state_LED = digitalRead(LED_PIN);
digitalWrite(LED_PIN,!state_LED);
display.display();
display.clearDisplay();
delay(1000);
if (Serial.available() > 0) {
serial_read = Serial.read();
Serial.print (serial_read);
}
}