Como fazer que "sensor 1" apareceça somente uma única vez no monitor serial - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-29T11:49:41Zhttps://labdegaragem.com/forum/topics/como-fazer-que-sensor-1-aparece-a-somente-uma-nica-vez-no-monitor?commentId=6223006%3AComment%3A654517&xg_source=activity&feed=yes&xn_auth=noObrigado Rhaicmer;
Vou fazer…tag:labdegaragem.com,2018-01-05:6223006:Comment:6545312018-01-05T11:28:55.664Zjose rodolfo durantehttps://labdegaragem.com/profile/joserodolfodurante
<p>Obrigado Rhaicmer;</p>
<p>Vou fazer isso.</p>
<p>Obrigado Rhaicmer;</p>
<p>Vou fazer isso.</p> #include DS3231.hDS3231 rtc(S…tag:labdegaragem.com,2018-01-05:6223006:Comment:6546132018-01-05T09:40:34.226Zrhaicmer braulio da costahttps://labdegaragem.com/profile/rhaicmerbrauliodacosta
<pre><br></br><font color="#5E6D03">#include</font> <font color="#000000">DS3231</font><font color="#434F54">.</font><font color="#000000">h</font><font color="#000000">DS3231</font> <font color="#000000">rtc</font><font color="#000000">(</font><font color="#000000">SDA</font><font color="#434F54">,</font> <font color="#000000">SCL</font><font color="#000000">)</font><font color="#000000">;</font><b><font color="#D35400">Time</font></b> <font color="#000000">t…</font></pre>
<pre><br/><font color="#5E6D03">#include</font> <font color="#000000">DS3231</font><font color="#434F54">.</font><font color="#000000">h</font><font color="#000000">DS3231</font> <font color="#000000">rtc</font><font color="#000000">(</font><font color="#000000">SDA</font><font color="#434F54">,</font> <font color="#000000">SCL</font><font color="#000000">)</font><font color="#000000">;</font>
<b><font color="#D35400">Time</font></b> <font color="#000000">t</font><font color="#000000">;</font><br/><font color="#00979C">boolean</font> <font color="#000000">tvr1</font><font color="#000000">;</font><br/>
<font color="#00979C">void</font> <font color="#5E6D03">setup</font><font color="#000000">(</font><font color="#000000">)</font><br/>
<font color="#000000">{</font><br/>
<b><font color="#D35400">Serial</font></b><font color="#434F54">.</font><font color="#D35400">begin</font><font color="#000000">(</font><font color="#000000">115200</font><font color="#000000">)</font><font color="#000000">;</font><br/>
<font color="#000000">rtc</font><font color="#434F54">.</font><font color="#D35400">begin</font><font color="#000000">(</font><font color="#000000">)</font><font color="#000000">;</font><br/>
<font color="#000000">}</font> <br/>
<font color="#00979C">void</font> <font color="#5E6D03">loop</font><font color="#000000">(</font><font color="#000000">)</font><br/>
<font color="#000000">{</font><br/>
<font color="#000000">t</font><font color="#434F54">=</font><font color="#000000">rtc</font><font color="#434F54">.</font><font color="#D35400">getTime</font><font color="#000000">(</font><font color="#000000">)</font><font color="#000000">;</font><br/>
<font color="#5E6D03">if</font><font color="#000000">(</font><font color="#000000">t</font><font color="#434F54">.</font><font color="#D35400">hour</font><font color="#434F54">==</font><font color="#000000">22</font> <font color="#434F54">&&</font> <font color="#000000">t</font><font color="#434F54">.</font><font color="#D35400">min</font> <font color="#434F54">==</font><font color="#000000">59</font> <font color="#434F54">&&</font> <font color="#000000">tvr1</font> <font color="#434F54">==</font> <font color="#00979C">false</font><font color="#000000">)</font><br/>
<font color="#000000">{</font><br/>
<b><font color="#D35400">Serial</font></b><font color="#434F54">.</font><font color="#D35400">println</font><font color="#000000">(</font><font color="#005C5F">"sensor 1"</font><font color="#000000">)</font><font color="#000000">;</font><br/>
<font color="#000000">tvr1</font><font color="#434F54">=</font><font color="#00979C">true</font><font color="#000000">;</font><br/>
<font color="#D35400">delay</font><font color="#000000">(</font><font color="#000000">1000</font><font color="#000000">)</font><font color="#000000">;</font><br/>
<font color="#000000">}</font><br/>
<font color="#5E6D03">if</font><font color="#000000">(</font><font color="#000000">t</font><font color="#434F54">.</font><font color="#D35400">min</font><font color="#434F54">!=</font><font color="#000000">59</font><font color="#000000">)</font><br/>
<font color="#000000">{</font><br/>
<font color="#000000">tvr1</font><font color="#434F54">=</font><font color="#00979C">false</font><font color="#000000">;</font><br/>
<font color="#000000">}</font><br/>
<font color="#000000">}</font></pre>
<p>Bom dia amigo, não sei se resolveu seu problema mas tente esse code que eu fiz...</p>
<p>Tem uma variável do tipo boolean que vai permitir que o if passe somente uma vez pois quando passar pelo if essa variável tvr1 vai ser true, invalidando o if. Quando t.min for diferente de 59(condição dentro do if) a variável volta a ser true, possibilitando o if a correr novamente. Espero ter ajudado.</p> Obrigado Cintra.
tag:labdegaragem.com,2018-01-05:6223006:Comment:6545172018-01-05T01:11:19.045Zjose rodolfo durantehttps://labdegaragem.com/profile/joserodolfodurante
<p>Obrigado Cintra.</p>
<p></p>
<p>Obrigado Cintra.</p>
<p></p> Fiz como recomendou o Cintra…tag:labdegaragem.com,2017-11-12:6223006:Comment:6458322017-11-12T01:06:36.931Zmax winterhttps://labdegaragem.com/profile/maxwinter
<p>Fiz como recomendou o Cintra e apareceram no monitor as horas atuais até a hora do "if" e então</p>
<p>apareceu sensor1 , etc.</p>
<p>Portanto coerentes.</p>
<p>Porém com a sua sugestão e do Cintra eu acho que não alcançaria meu objetivo:</p>
<p>Pensava em (usando o RTC) fazer com que em determinados instantes do dia fossem</p>
<p>lidos os valores de um sensor e em outros instantes valores de outro sensor (simbolizei</p>
<p>com sensor1) . Nos dias seguintes se repetiriam os mesmos…</p>
<p>Fiz como recomendou o Cintra e apareceram no monitor as horas atuais até a hora do "if" e então</p>
<p>apareceu sensor1 , etc.</p>
<p>Portanto coerentes.</p>
<p>Porém com a sua sugestão e do Cintra eu acho que não alcançaria meu objetivo:</p>
<p>Pensava em (usando o RTC) fazer com que em determinados instantes do dia fossem</p>
<p>lidos os valores de um sensor e em outros instantes valores de outro sensor (simbolizei</p>
<p>com sensor1) . Nos dias seguintes se repetiriam os mesmos instantes, sendo que os instantes</p>
<p>de um sensor seriam diferentes dos instantes do outro sensor. E futuramente esses valores</p>
<p>poderiam ser acessados pela internet. Alguém disse que teria que usar interrupção interna</p>
<p>(que não entendo nada) e outrem que poderia ser somente com o RTC. Estou tentando</p>
<p>a segunda alternativa.</p>
<p>O que você acha? Tem saída?</p> Cintra, obrigado.
Fiz como re…tag:labdegaragem.com,2017-11-12:6223006:Comment:6458292017-11-12T01:04:32.898Zmax winterhttps://labdegaragem.com/profile/maxwinter
<p>Cintra, obrigado.</p>
<p>Fiz como recomendou e apareceram no monitor as horas atuais até a hora do "if" e então</p>
<p>apareceu sensor1 , etc.</p>
<p>Portanto coerentes.</p>
<p>Porém com a sugestão do Eduardo e sua acho que não alcançaria meu objetivo:</p>
<p>Pensava em (usando o RTC) fazer com que em determinados instantes do dia fossem</p>
<p>lidos os valores de um sensor e em outros instantes valores de outro sensor (simbolizei</p>
<p>com sensor1) . Nos dias seguintes se repetiriam os…</p>
<p>Cintra, obrigado.</p>
<p>Fiz como recomendou e apareceram no monitor as horas atuais até a hora do "if" e então</p>
<p>apareceu sensor1 , etc.</p>
<p>Portanto coerentes.</p>
<p>Porém com a sugestão do Eduardo e sua acho que não alcançaria meu objetivo:</p>
<p>Pensava em (usando o RTC) fazer com que em determinados instantes do dia fossem</p>
<p>lidos os valores de um sensor e em outros instantes valores de outro sensor (simbolizei</p>
<p>com sensor1) . Nos dias seguintes se repetiriam os mesmos instantes, sendo que os instantes</p>
<p>de um sensor seriam diferentes dos instantes do outro sensor. E futuramente esses valores</p>
<p>poderiam ser acessados pela internet. Alguém disse que teria que usar interrupção interna</p>
<p>(que não entendo nada) e outrem que poderia ser somente com o RTC. Estou tentando</p>
<p>a segunda alternativa.</p>
<p>O que você acha? Tem saída?</p> Vish, verdade !
O ideal seria…tag:labdegaragem.com,2017-11-11:6223006:Comment:6456882017-11-11T12:38:55.025ZEduardohttps://labdegaragem.com/profile/EduardoHenriqueMarcondes
<p>Vish, verdade !</p>
<p>O ideal seria:</p>
<p>Criar uma para min e outra para mina.</p>
<div class="description" id="desc_6223006Comment645500"><div class="xg_user_generated"><p><span><span>min=t.min;</span></span></p>
<p><span><span>if((t.hour==22) && (min ==59) && (mina!=59)) </span><br></br><span>Serial.println("sensor 1");</span></span></p>
<p><span>mina=min;</span></p>
<p><span>Isso pq alem do bug que o …</span></p>
</div>
</div>
<p>Vish, verdade !</p>
<p>O ideal seria:</p>
<p>Criar uma para min e outra para mina.</p>
<div class="description" id="desc_6223006Comment645500"><div class="xg_user_generated"><p><span><span>min=t.min;</span></span></p>
<p><span><span>if((t.hour==22) && (min ==59) && (mina!=59)) </span><br/><span>Serial.println("sensor 1");</span></span></p>
<p><span>mina=min;</span></p>
<p><span>Isso pq alem do bug que o <a href="http://labdegaragem.com/forum/topic/listForContributor?user=1ff54ccocu8sa" class="fn url">Jose Augusto Cintra</a> citou achei um outro:</span></p>
<p><span>Se testar 2x t.min pode acontecer de numa lida ele ter um valor e na outra já ter outro. Com é uma variável que muda sozinha é melhor ler apenas uma vez por loop.</span></p>
<p></p>
<p><span> </span></p>
</div>
</div> Realmente, o Eduardo tem razã…tag:labdegaragem.com,2017-11-11:6223006:Comment:6457732017-11-11T11:53:36.822ZJose Augusto Cintrahttps://labdegaragem.com/profile/JoseAugustoCintra
<p>Realmente, o Eduardo tem razão.</p>
<p>Não havia entendido o problema.</p>
<p>Só complementando a resposta:</p>
<p>Não se esqueça de voltar o valor da variável <strong>mina</strong> quando encerrar esse 1 minuto.</p>
<p>Caso contrário o alarme não funcionará da próxima vez</p>
<p></p>
<p>Em tempo: Algumas libs do 3231 possuem funções de alarme:…</p>
<p></p>
<p></p>
<p>Realmente, o Eduardo tem razão.</p>
<p>Não havia entendido o problema.</p>
<p>Só complementando a resposta:</p>
<p>Não se esqueça de voltar o valor da variável <strong>mina</strong> quando encerrar esse 1 minuto.</p>
<p>Caso contrário o alarme não funcionará da próxima vez</p>
<p></p>
<p>Em tempo: Algumas libs do 3231 possuem funções de alarme:</p>
<p></p>
<p><a rel="nofollow" href="https://github.com/jarzebski/Arduino-DS3231/blob/master/DS3231_alarm/DS3231_alarm.ino" target="_blank">https://github.com/jarzebski/Arduino-DS3231/blob/master/DS3231_alar...</a></p>
<p></p> Se entendi o que acontece é q…tag:labdegaragem.com,2017-11-11:6223006:Comment:6455002017-11-11T11:18:10.499ZEduardohttps://labdegaragem.com/profile/EduardoHenriqueMarcondes
<p>Se entendi o que acontece é que o teste:</p>
<p><span>if(t.hour==22 && t.min ==59)</span></p>
<p><span>é verdadeiro enquanto forem 22:59, ou seja: durante um minuto.</span></p>
<p><span>Vc quer escrever apenas quando chegar, sem repetir.</span></p>
<p><span>Para isso vc precisa localizar o que chamamos de borda de um sinal. Quando ele estava 58 e agora é 59. No caso pode ser quando ele estava qualquer coisa diferente de 59 e agora é 59.</span></p>
<p><span>Crie uma variavel mina…</span></p>
<p>Se entendi o que acontece é que o teste:</p>
<p><span>if(t.hour==22 && t.min ==59)</span></p>
<p><span>é verdadeiro enquanto forem 22:59, ou seja: durante um minuto.</span></p>
<p><span>Vc quer escrever apenas quando chegar, sem repetir.</span></p>
<p><span>Para isso vc precisa localizar o que chamamos de borda de um sinal. Quando ele estava 58 e agora é 59. No caso pode ser quando ele estava qualquer coisa diferente de 59 e agora é 59.</span></p>
<p><span>Crie uma variavel mina (minuto anterior) e verifique se ela é diferente de 59.</span></p>
<p><span><span>if((t.hour==22) && (t.min ==59) && (mina!=59)) {</span><br/><span>Serial.println("sensor 1");</span></span></p>
<p><span><span>mina=t.min;}</span></span></p> Max, Estranho isso.
Faça um t…tag:labdegaragem.com,2017-11-11:6223006:Comment:6455682017-11-11T09:48:54.682ZJose Augusto Cintrahttps://labdegaragem.com/profile/JoseAugustoCintra
<p>Max, Estranho isso.</p>
<p>Faça um teste e imprima a data e hora para verificar se está obtendo resultados coerentes:</p>
<p></p>
<p><strong>if(t.hour==22 && t.min ==59) {</strong><br/><strong> Serial.println("sensor 1");</strong></p>
<p><strong> Serial.println(t.hour);</strong></p>
<p><strong> Serial.println(t.min);</strong><br/><strong>}</strong></p>
<p>Max, Estranho isso.</p>
<p>Faça um teste e imprima a data e hora para verificar se está obtendo resultados coerentes:</p>
<p></p>
<p><strong>if(t.hour==22 && t.min ==59) {</strong><br/><strong> Serial.println("sensor 1");</strong></p>
<p><strong> Serial.println(t.hour);</strong></p>
<p><strong> Serial.println(t.min);</strong><br/><strong>}</strong></p> Obrigado Cintra.
Fiz tudo iss…tag:labdegaragem.com,2017-11-11:6223006:Comment:6454952017-11-11T02:01:14.719Zleo durhttps://labdegaragem.com/profile/leodur
<p>Obrigado Cintra.</p>
<p>Fiz tudo isso mas "sensor 1" fica sendo repetido.</p>
<p>Preciso que apareça somente uma vez.</p>
<p>É possível?.</p>
<p>Obrigado Cintra.</p>
<p>Fiz tudo isso mas "sensor 1" fica sendo repetido.</p>
<p>Preciso que apareça somente uma vez.</p>
<p>É possível?.</p>