projetos com esp8266-01

Rele ativado por palmas ou pagina web

  • foto

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Flavio de Miranda Costa em 10 outubro 2018 às 15:12

#define pinSom 0
#define pinRele1 2
#define tempoMaximoDeUmaPalma 150 //milisegundos
#define tempoMaximoEntrePalmas 500 //milisegundos

int contaPalmas = 0;
long tempoEspera = 0;
long tempoEsperaEntrePalmas = 0;

void executarAcao();

void setup() {
pinMode(pinSom, INPUT);
pinMode(pinRele1, OUTPUT);
}

void loop() {
//verifica o estado do sensor de som (ele fica normalmente com a porta ligada. Quando ouver uma palma, ele desliga momentaneamente a porta)
int sensorSom = digitalRead(pinSom);

//se o sensor detectou palmas
if (sensorSom == LOW) {

//espera um tempo para nao detectar a mesma palma mais de uma vez
if (tempoEspera == 0) {
tempoEspera = tempoEsperaEntrePalmas = millis();
contaPalmas++;
} else if ((millis() - tempoEspera) >= tempoMaximoDeUmaPalma) {
tempoEspera = 0;
}
}

//caso exceda o tempo maximo entre palmas, zera o contador de palmas
if ( (contaPalmas != 0) && ((millis() - tempoEsperaEntrePalmas) > 500) ) {
executarAcao();
contaPalmas = 0;
tempoEsperaEntrePalmas = millis();
}

}


void executarAcao()
{

switch (contaPalmas) {
case 2:
digitalWrite(pinRele1, !digitalRead(pinRele1));
break;

}
}

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço