Comentários - projetos com esp8266-01 - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-28T09:16:52Zhttps://labdegaragem.com/photo/albumcomment/feed?attachedTo=6223006%3AAlbum%3A688621&xn_auth=no#define pinSom 0#define pinRe…tag:labdegaragem.com,2018-10-10:6223006:Comment:6885522018-10-10T17:12:18.892ZFlavio de Miranda Costahttps://labdegaragem.com/profile/FlaviodeMirandaCosta
<p>#define pinSom 0<br></br>#define pinRele1 2<br></br>#define tempoMaximoDeUmaPalma 150 //milisegundos<br></br>#define tempoMaximoEntrePalmas 500 //milisegundos</p>
<p>int contaPalmas = 0;<br></br>long tempoEspera = 0;<br></br>long tempoEsperaEntrePalmas = 0;</p>
<p>void executarAcao();</p>
<p>void setup() {<br></br> pinMode(pinSom, INPUT);<br></br> pinMode(pinRele1, OUTPUT);<br></br>}</p>
<p>void loop() {<br></br> //verifica o estado do sensor de som (ele fica normalmente com a porta ligada. Quando ouver uma palma, ele desliga…</p>
<p>#define pinSom 0<br/>#define pinRele1 2<br/>#define tempoMaximoDeUmaPalma 150 //milisegundos<br/>#define tempoMaximoEntrePalmas 500 //milisegundos</p>
<p>int contaPalmas = 0;<br/>long tempoEspera = 0;<br/>long tempoEsperaEntrePalmas = 0;</p>
<p>void executarAcao();</p>
<p>void setup() {<br/> pinMode(pinSom, INPUT);<br/> pinMode(pinRele1, OUTPUT);<br/>}</p>
<p>void loop() {<br/> //verifica o estado do sensor de som (ele fica normalmente com a porta ligada. Quando ouver uma palma, ele desliga momentaneamente a porta)<br/> int sensorSom = digitalRead(pinSom);</p>
<p>//se o sensor detectou palmas<br/> if (sensorSom == LOW) {</p>
<p>//espera um tempo para nao detectar a mesma palma mais de uma vez <br/> if (tempoEspera == 0) {<br/> tempoEspera = tempoEsperaEntrePalmas = millis(); <br/> contaPalmas++;<br/> } else if ((millis() - tempoEspera) >= tempoMaximoDeUmaPalma) {<br/> tempoEspera = 0;<br/> }<br/> }</p>
<p>//caso exceda o tempo maximo entre palmas, zera o contador de palmas<br/> if ( (contaPalmas != 0) && ((millis() - tempoEsperaEntrePalmas) > 500) ) {<br/> executarAcao();<br/> contaPalmas = 0;<br/> tempoEsperaEntrePalmas = millis();<br/> }<br/> <br/>}</p>
<p><br/>void executarAcao() <br/>{<br/> <br/> switch (contaPalmas) {<br/> case 2: <br/> digitalWrite(pinRele1, !digitalRead(pinRele1));<br/> break;<br/> <br/> }<br/>}</p>
<p></p>