#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define buto 4
#define pot_1 36
#define pot_2 36
#define buz 12
#define relay 16
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
int f = 20;
Adafruit_SSD1306 oled (SCREEN_WIDTH, SCREEN_HEIGHT, & Wire, -1);
//leds de sequencia
const int pinosLED[] = {33, 25, 26, 27, 14};
const int numLEDs = sizeof(pinosLED) / sizeof(pinosLED[0]);
void setup() {
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
while (true);
}
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
for (int i = 0; i < numLEDs; i++) {
pinMode(pinosLED[i], OUTPUT);
}
pinMode(buto, INPUT_PULLUP);
pinMode(buz, OUTPUT);
pinMode(relay, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
int ButtonState = digitalRead(buto);
Serial.println(ButtonState);
//valores analogico dos potenciometros
int analogValue_1 = analogRead(pot_1);
Serial.println( analogValue_1);
int analogValue_2 = analogRead(pot_2);
Serial.println( analogValue_1);
bool ligado_1 = (analogValue_1 > 2000 && analogValue_1 < 4095);
if (ligado_1 == true && ButtonState == 0) {
f = 20;
for (int cont = 0; cont < 20; cont++)
{
f = f - 1;
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(0, 20);
oled.println("contagem");
oled.setCursor(0, 32);
oled.println(f);
oled.display();
delay(500);
}
digitalWrite(buz, HIGH);
delay(1000);
digitalWrite(buz, LOW);
delay(1000);
}
bool ligado_2 = (analogValue_2 > 3000 && analogValue_2 < 4000);
if (ligado_2 == true) {
for (int i = 0; i < numLEDs; i++) {
digitalWrite(pinosLED[i], HIGH);
delay(100);
digitalWrite(pinosLED[i], LOW);
delay(100);
if(analogValue_2 == 4000){
break;
}
}
}
bool ligado_3 = (analogValue_2 > 4000 && analogValue_2 < 4095);
digitalWrite(relay, ligado_3);
}
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4
Loading
ssd1306
ssd1306