//Declaração de variáveis globais:
bool habilitapisca; //variável de habitar/desabilitar o pisca do led
unsigned long rep; //variável auxiliar para evitar repiques
int i; //variável para contagem de acionamentos do botão
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(19, OUTPUT);
pinMode(18,INPUT_PULLUP);
pinMode(33,INPUT);
analogWriteResolution(19,12);//sai de 8b para 12b
}
void loop() {
static bool apertabotao; //variável auxiliar para evitar mais de um acionamento por aperto
static unsigned long t;
static unsigned int brilholed;
static bool estadoled;
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
//Lógica de fazer o LED piscar:
if (habilitapisca && (millis()-t >= 1000))
{
t=millis();
//forma mais facil
estadoled=!estadoled;
analogWrite(19,brilholed*estadoled);//faz ele piscar multiplicando pelo true ou false do estadoled
brilholed=map(analogRead(33),32,4063,0,254);//ldr(33), map pega o brilho do led que vai de (32 ate 4063) e faz ele ir de (0 ate 254)
Serial.println(analogRead(33));
//brilholed=analogRead(33);
//forma mais dificil
/*if(estadoled)
{
brilholed=map(analogRead(33),32,4063,0,254);//ldr(33), map pega o led que vai de (32 ate 4063) e faz ele ir de (0 ate 254)
}
else
{
brilholed=0;
}
analogWrite(19,brilholed); //inverte o led
Serial.println(analogRead(33));
*/
}
//Lógica de leitura do botão:
if (!digitalRead(18) && apertabotao && (millis()-rep >=300))
{
habilitapisca=!habilitapisca;
if (!habilitapisca)
digitalWrite(19,0);
rep=millis();
i++;
Serial.println("O botao foi acionado " + String(i) + " vezes");
}
apertabotao=digitalRead(18);
//attachInterrupt(digitalPinToInterrupt(18),funcaobotao,FALLING);
}