Adaptar um timer ao código - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-28T18:50:29Zhttps://labdegaragem.com/forum/topics/adaptar-um-timer-ao-c-digo?commentId=6223006%3AComment%3A872704&feed=yes&xn_auth=noolá Valentina.
Estou p…tag:labdegaragem.com,2021-08-06:6223006:Comment:8730452021-08-06T04:33:31.196ZElcids Chagashttps://labdegaragem.com/profile/ElcidsChagas
<p><span style="font-size: 12pt;">olá Valentina.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Estou publicando a <strong><em>"versão turbinada"</em></strong>, sobre a qual me referi anteriormente.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Esta versão tem novas funcionalidades, e também algumas facilidades a mais pra especificar a sequência de Cores no código. Sobre estas facilidades no código, falo mais à frente. Vou iniciar pela descrição das novas…</span></p>
<p><span style="font-size: 12pt;">olá Valentina.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Estou publicando a <strong><em>"versão turbinada"</em></strong>, sobre a qual me referi anteriormente.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Esta versão tem novas funcionalidades, e também algumas facilidades a mais pra especificar a sequência de Cores no código. Sobre estas facilidades no código, falo mais à frente. Vou iniciar pela descrição das novas funcionalidades:</span></p>
<p></p>
<p><span style="font-size: 10pt;"> <span style="font-size: 14pt;"><strong>-</strong></span> é possível verificar qual o atual <strong><em>"tempo total"</em> </strong>do <em><strong>Sequenciamento de Cores</strong></em>.</span></p>
<p></p>
<p><span style="font-size: 10pt;"> <span style="font-size: 14pt;"><strong>-</strong></span> é possível alterar o <em><strong>"tempo total"</strong></em> do Sequenciamento de Cores. Após a alteração, o novo <em><strong>"tempo total"</strong></em> é salvo na <em><strong>EEPROM</strong></em> do <em><strong>Arduino</strong></em>. Assim caso caia a energia, logo que ela for restabelecida, o <em><strong>"tempo total"</strong></em> será automaticamente restaurado pela leitura da <strong><em>EEPROM</em></strong>.</span></p>
<p></p>
<p><span style="font-size: 10pt;"> <span style="font-size: 14pt;"><strong>-</strong></span> se um <em><strong>Sequenciamento de Cores</strong></em> estiver sendo executado, ao acionar o <strong><em>Botão</em></strong>, o Sequenciamento é terminado imediatamente (na primeira versão, o Sistema aguardava completar o ciclo de Sequenciamento antes de parar).</span></p>
<p></p>
<p><span style="font-size: 10pt;"> <span style="font-size: 14pt;"><strong>-</strong></span> quando vc ligar o Sistema, ele pisca os LEDs <span>muito rapidamente </span>na <strong><em>"cor Branca"</em></strong>, por cerca de <em>2 segundos</em>, para sinalizar que iniciou o Sistema. Esta mesma sinalização "piscante", também é usada para sinalizar outras ocorrências, como por exemplo quando termina um Sequenciamento de Cores, ou quando vc interrompe um Sequenciamento através do Botão.</span></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> <span style="font-size: 14pt;"><strong><em><span style="text-decoration: underline;">Verificando o atual "tempo total"</span>:</em></strong></span></span></p>
<p></p>
<p><span style="font-size: 12pt;"> P</span><span style="font-size: 12pt;">ara verificar o <em><strong>"tempo total"</strong></em>, o <em><strong>Sequenciamento de Cores</strong></em> deve estar parado. Se o Sequenciamento estiver sendo executado, basta pará-lo acionando o <strong><em>Botão</em></strong>.</span></p>
<p><span style="font-size: 12pt;"> Então siga estes dois passos:</span></p>
<p></p>
<p><span style="font-size: 12pt;"> <span style="font-size: 14pt;"><em><strong>1)</strong></em></span> mantenha o <strong><em>Botão</em> </strong>pressionado por <strong><em>5 segundos</em></strong>, até que a <em><strong>cor Azul</strong></em> seja exibida nos LEDs. Assim que vc ver a <em><strong>cor Azul</strong></em> ligar, solte o <strong><em>Botão</em></strong>.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> <span style="font-size: 14pt;"><strong><em>2)</em></strong></span> após isso, os LEDs irão piscar na <em><strong>cor Verde</strong></em>, exatamente na quantidade de minutos referente ao <em><strong>"tempo total"</strong></em>. <span style="text-decoration: underline;"><em>Exemplo</em></span><em>:</em> se o <em><strong>"tempo total"</strong></em> é de 8 minutos, então a <em><strong>cor Verde</strong></em> irá piscar 8 vezes. O Sistema faz uma piscada a cada segundo, para facilitar a contagem destas piscadas.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Após as piscadas, os LEDs ficam apagados e o Sistema aguarda novos comandos via Botão.</span></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> <span style="font-size: 14pt;"><strong><em><span style="text-decoration: underline;">Alterando o "tempo total"</span>:</em></strong></span></span></p>
<p></p>
<p><span style="font-size: 12pt;"> Para alterar o <em><strong>"tempo total"</strong></em>, o <strong><em>Sequenciamento de Cores</em></strong> deve estar parado. Se o Sequenciamento estiver sendo executado, basta pará-lo acionando o <strong><em>Botão</em></strong>.</span></p>
<p><span style="font-size: 12pt;"> Então siga estes três passos:</span></p>
<p></p>
<p><span style="font-size: 12pt;"> <span style="font-size: 14pt;"><em><strong>1)</strong></em></span> mantenha o <strong><em>Botão</em></strong> pressionado por <strong><em>5 segundos</em></strong>, até que a <strong><em>cor Azul</em></strong> seja exibida nos LEDs, <strong><em>mas <span style="text-decoration: underline;">não solte</span></em> o Botão</strong>. Assim que vc ver a <em><strong>cor Azul</strong></em>, continue mantendo o Botão pressionado <em><strong>por mais 5 segundos</strong></em>, até que a <em><strong>cor Vermelha</strong></em> seja exibida nos LEDs. Então solte o Botão. Os LEDs se apagam e o Sistema agora está no <em>modo de alteração do</em> <em><strong>"tempo total"</strong></em>.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> <span style="font-size: 14pt;"><strong><em>2)</em></strong></span> então acione o <em><strong>Botão</strong></em> pelo total de minutos que vc deseja alterar o <em><strong>"tempo total"</strong></em>. <span style="text-decoration: underline;"><em>Exemplo</em></span><em>:</em> se vc deseja 5 minutos para o <em><strong>"tempo total"</strong></em>, então acione o Botão 5 vezes. A cada acionamento do Botão, a <em><strong>cor Verde</strong></em> "pisca", confirmando o acionamento.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> <span style="font-size: 14pt;"><strong><em>3)</em></strong></span> após ter acionado o Botão pela quantidade desejada para o <em><strong>"tempo total"</strong></em>, então aguarde <em><strong>7 segundos</strong></em>. Após este intervalo de tempo, o Sistema irá salvar na <strong><em>EEPROM</em> </strong>do <strong><em>Arduino</em> </strong>o novo <em><strong>"tempo total"</strong></em> que vc especificou. Em seguida, o Sistema irá piscar os LEDs <span>muito rapidamente </span>n<span>a "cor Branca", por cerca de 2 segundos. A partir deste ponto o novo <em><strong>"tempo total"</strong></em> está ativo.</span></span></p>
<p></p>
<p><span style="font-size: 12pt;"><span> Após as piscadas, os LEDs ficam apagados e o Sistema aguarda novos comandos via Botão.</span></span></p>
<p></p>
<p><span style="font-size: 12pt;"> <span style="text-decoration: underline;"><em><strong>Importante</strong></em></span><em>:</em> após ver a <em><strong>cor Vermelha</strong></em> e soltar o Botão, se nenhum acionamento do Botão for feito no intervalo de <em>7 segundos</em>, então o Sistema cancela o comando, e o "tempo total" atual não é alterado.</span></p>
<p></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> <span style="font-size: 14pt;"><strong><em><span style="text-decoration: underline;">Descrição de alguns aspectos do código desta nova versão</span>:</em></strong></span></span></p>
<p></p>
<p><span style="font-size: 12pt;"> Para facilitar a definição da <em><strong>Sequência de Cores</strong></em>, nesta versão isto é definido através de uma "<strong>Lista</strong>", a qual pode ser vista na figura a seguir:</span></p>
<p></p>
<p style="text-align: center;"><span style="font-size: 8pt;"><strong>(clique na figura para "zoom")</strong></span></p>
<p><span style="font-size: 12pt;"><a href="https://storage.ning.com/topology/rest/1.0/file/get/9386840100?profile=original" target="_blank" rel="noopener"><img src="https://storage.ning.com/topology/rest/1.0/file/get/9386840100?profile=RESIZE_710x" class="align-center" width="601" height="742"/></a></span></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> Em cada linha dessa "<strong>Lista</strong>" é especificada uma <strong><em>Cor</em></strong> e o <em><strong>tempo em segundos</strong></em> que esta <strong><em>Cor</em></strong> é exibida. Observar que este tempo pode ser fracionário (por exemplo 3.1 segundos).</span></p>
<p><span style="font-size: 12pt;"> Altere a <strong>Lista</strong> conforme vc desejar (ela pode conter até 1000 linhas, mas este limite vc também pode mudar facilmente no código).</span></p>
<p><span style="font-size: 12pt;"> Notar que a <strong>Lista</strong> tem um "<strong>marcador de fim</strong>" da mesma. Este marcador é obrigatório. Qualquer item de cor depois do "marcador de fim", não será exibido no Sequenciamento de Cores.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Como vc deve ter percebido, na <em><strong>Lista</strong> </em>foram utilizados <em><strong>nomes de Cores</strong></em>, ao invés do tradicional formato de três bytes RGB. Para isto, estes nomes de Cores foram anteriormente definidos no código, usando o <strong>#define</strong> da <strong>linguagem C/C++</strong>, conforme pode ser visto na figura a seguir:</span></p>
<p></p>
<p style="text-align: center;"><span style="font-size: 8pt;"><em><strong>(clique na figura para "zoom")</strong></em></span></p>
<p><span style="font-size: 12pt;"><a href="https://storage.ning.com/topology/rest/1.0/file/get/9386840698?profile=original" target="_blank" rel="noopener"><img src="https://storage.ning.com/topology/rest/1.0/file/get/9386840698?profile=RESIZE_710x" class="align-center" width="505" height="445"/></a></span></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> Assim, crie novas definições de nomes de Cores, conforme vc desejar. Com os nomes criados, fica muito mais fácil e prático alterar a <strong>Lista</strong> de <em><strong>Sequenciamento de Cores</strong></em>. Vc pode inclusive ter diversas Listas criadas no seu código, e alterar na função "<em><strong>setup</strong></em>" do <strong><em>Arduino</em></strong> qual Lista irá usar para o Sequenciamento de Cores. Veja isto na função "<em><strong>setup</strong></em>" mostrada na figura a seguir:</span></p>
<p></p>
<p style="text-align: center;"><span style="font-size: 8pt;"><strong><em>(clique na figura para "zoom")</em></strong></span></p>
<p><span style="font-size: 12pt;"><a href="https://storage.ning.com/topology/rest/1.0/file/get/9386842062?profile=original" target="_blank" rel="noopener"><img src="https://storage.ning.com/topology/rest/1.0/file/get/9386842062?profile=RESIZE_710x" class="align-center" width="533" height="275"/></a></span></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> Com um pouco de experiência em programação, vc pode até mesmo alternar entre as Listas de Cores que vc criar. Se achar isso mais difícil de implementar, vc pode acrescentar mais um Botão para fazer a seleção da Lista de Cores, o que já é bem mais fácil.</span></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> Finalmente, sobre o "<em><strong>tempo total padrão</strong></em>" definido logo no início do código, conforme mostrado na figura a seguir:</span></p>
<p></p>
<p style="text-align: center;"><span style="font-size: 8pt;"><strong><em>(clique na figura para "zoom")</em></strong></span></p>
<p><span style="font-size: 12pt;"><a href="https://storage.ning.com/topology/rest/1.0/file/get/9386842479?profile=original" target="_blank" rel="noopener"><img src="https://storage.ning.com/topology/rest/1.0/file/get/9386842479?profile=RESIZE_710x" class="align-center" width="597" height="157"/></a></span></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> Este <em><strong>tempo padrão</strong></em> em minutos, será usado até que vc especifique um novo <strong><em>"tempo total"</em></strong> através dos passos descritos anteriormente. Portanto, quando vc gravar o código no <em><strong>Arduino</strong> </em>pela primeira vez, é este tempo total padrão que estará ativo.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> E lembre-se que gravações de código pela <em><strong>IDE</strong></em> do <strong><em>Arduino</em> </strong><span style="text-decoration: underline;"><em>não apagam</em></span> a <em><strong>EEPROM</strong></em>. Assim, uma vez que vc tenha alterado o <em><strong>"tempo total"</strong></em>, se regravar o código através da IDE, o tempo padrão não terá efeito, já que na EEPROM estará o "tempo total" alterado anteriormente. Mas existem programas que apagam a EEPROM, e assim se vc realmente desejar isso (o que me parece meio sem sentido neste Sistema), basta usar um destes programas (muitos são gratuitos).</span></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> O <strong>código</strong> desta nova versão está aqui: <a href="https://storage.ning.com/topology/rest/1.0/file/get/9386847262?profile=original" target="_blank" rel="noopener">"<strong><em><span style="text-decoration: underline;">Arco_Iris_03.zip</span></em></strong>"</a></span></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> Espero que aprecie esta "versão turbinada".</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Há diversas técnicas de programação que podem ser aprendidas analisando o código. Para isto, o código está comentado funcionalmente e totalmente organizado. Mas caso tenha alguma dúvida, não deixe de perguntar.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> abrçs,</span></p>
<p><span style="font-size: 12pt;"> Elcids</span></p> olá novamente Valentina.
…tag:labdegaragem.com,2021-08-05:6223006:Comment:8732022021-08-05T05:48:31.465ZElcids Chagashttps://labdegaragem.com/profile/ElcidsChagas
<p><span style="font-size: 12pt;">olá novamente Valentina.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Gravei o código no <strong><em>Nano</em></strong>. Testei com três tempos diferentes: <strong><em>1 minuto</em></strong>, <em><strong>10 minutos</strong></em>, e com <em><strong>30 minutos</strong></em>. E todos funcionaram exatamente como na Simulação.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Gravei um vídeo do funcionamento para <em><strong>1…</strong></em></span></p>
<p><span style="font-size: 12pt;">olá novamente Valentina.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Gravei o código no <strong><em>Nano</em></strong>. Testei com três tempos diferentes: <strong><em>1 minuto</em></strong>, <em><strong>10 minutos</strong></em>, e com <em><strong>30 minutos</strong></em>. E todos funcionaram exatamente como na Simulação.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Gravei um vídeo do funcionamento para <em><strong>1 minuto</strong></em> (apenas para ficar um vídeo curto e com tamanho de arquivo "pequeno"). No vídeo eu aciono o <em><strong>Botão</strong> </em>e aguardo o tempo de 1 minuto para conferir que o Sequenciamento das Cores é parado. Vc vai notar que leva pouco mais de 1 minuto, pois quando dá o tempo programado , o Sistema conclui o Sequenciamento atual em curso antes de parar (o tempo de um ciclo de Sequenciamento é de cerca de 19 segundos, pois são 13 cores e cada uma demora 1.5 segundos).</span></p>
<p></p>
<p><span style="font-size: 12pt;"> O vídeo pode ser visto aqui: <a href="https://1drv.ms/v/s!Amu91_NWVNMvhQlN6Q4cnHz8EiR3?e=x6xt8k" target="_blank" rel="noopener">"<span style="font-size: 10pt;"><strong><em><span style="text-decoration: underline;">Arco_Iris - tempo_1_minuto</span></em></strong></span>"</a></span></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> Como vc deve ter visto no vídeo, usei um <em><strong>LED RGB</strong></em> e coloquei um saquinho plástico cobrindo este LED pra diminuir o efeito da intensidade luminosa na câmera do celular.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Assim, como eu gravei o código e testei o mesmo, peço que vc verifique se realmente gravou o código que postei, pois vi que a algum tempo atrás vc teve problemas para gravar códigos justamente no <em><strong>Nano</strong></em>.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> <span style="text-decoration: underline;"><em>Aproveito para perguntar</em></span>: qual comprimento dos fios vc deixou entre o <strong><em>Botão</em> </strong>e a placa do <em><strong>Arduino Nano</strong></em> ?</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Pergunto isso, porque se vc deixou um comprimento muito longo, ruídos podem "disparar" uma animação das Cores, exatamente como se o Botão tivesse sido acionado. Claro que isso se aplica também a parar a animação, mas como o ruído provavelmente seria constante, o <span>contínuo</span> "<span style="font-size: 10pt;"><em><strong>pára/inicia/.../pára/inicia</strong></em></span>" daria a impressão de que uma animação iniciou e não parou mais.</span></p>
<p><span style="font-size: 12pt;"> Se for este o caso, vc deve acrescentar um <em><strong>Resistor</strong></em> <span>externo </span>de Pullup "<em>mais forte</em>", pois o "Pullup" interno é "fraco" (um "<em>weak pullup</em>" entre 20k e 50k, como vc pode constatar no datasheet da CPU AVR). O valor desse <strong><em>Resistor externo</em></strong> de <strong><em>Pullup</em></strong> pode ser entre <strong><em>470 Ohms</em></strong> e <em><strong>1k Ohms</strong></em>. Ele seria ligado entre o <em><strong>pino</strong></em> do <em><strong>Arduino</strong></em> onde o <em><strong>Botão</strong> </em>está conectado e o <strong><em>+5V</em></strong> do <em><strong>Arduino</strong></em>.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> De qualquer forma, pode contar comigo e com o pessoal daqui do LDG para ajudar no que for possível.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Seria legal vc conseguir fazer funcionar, pois como eu disse, implementei uma versão "<em><strong>turbinada</strong></em>", com algumas funcionalidades a mais, que tornam o Sistema muito mais versátil (e ainda com um único Botão). Logo mais irei publicar essa versão (ainda tenho que capturar e preparar algumas figuras para o post).</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Abrçs,</span></p>
<p><span style="font-size: 12pt;"> Elcids</span></p> Boa noite Valentina, tente us…tag:labdegaragem.com,2021-08-05:6223006:Comment:8728932021-08-05T02:52:24.693ZYuri Nhttps://labdegaragem.com/profile/YuriBorgesNogueira
<p>Boa noite Valentina, tente usar este código: <a href="https://storage.ning.com/topology/rest/1.0/file/get/9382407252?profile=original" target="_blank" rel="noopener">arcoiris_Lab.ino</a></p>
<p></p>
<p>Testei no meu arduino nano na protoboard e funcionou, apenas para desligar você tem que esperar alguns segundos já que estamos usando delay().</p>
<p>A ligação do circuito é a mesma que o <span>Elcids Chagas fez porém usei para o botão o pino 2.</span></p>
<p>Boa noite Valentina, tente usar este código: <a href="https://storage.ning.com/topology/rest/1.0/file/get/9382407252?profile=original" target="_blank" rel="noopener">arcoiris_Lab.ino</a></p>
<p></p>
<p>Testei no meu arduino nano na protoboard e funcionou, apenas para desligar você tem que esperar alguns segundos já que estamos usando delay().</p>
<p>A ligação do circuito é a mesma que o <span>Elcids Chagas fez porém usei para o botão o pino 2.</span></p> Olá Valentina.
Testei…tag:labdegaragem.com,2021-08-05:6223006:Comment:8730372021-08-05T02:04:11.523ZElcids Chagashttps://labdegaragem.com/profile/ElcidsChagas
<p><span style="font-size: 12pt;">Olá Valentina.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Testei o código via Simulador, e funcionou como esperado.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Mas vou gravar em um <em><strong>Arduino</strong></em> <em><strong>Nano</strong> </em>pra verificar. E se estiver funcionando , posto um vídeo mostrando.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> …</span></p>
<p><span style="font-size: 12pt;">Olá Valentina.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Testei o código via Simulador, e funcionou como esperado.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Mas vou gravar em um <em><strong>Arduino</strong></em> <em><strong>Nano</strong> </em>pra verificar. E se estiver funcionando , posto um vídeo mostrando.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> <span style="text-decoration: underline;"><strong><em>Nota</em></strong></span>: preparei uma "<strong><em>versão</em></strong> <strong><em>Turbinada</em></strong>" deste Sistema, que estarei publicando logo mais. Esta nova versão tem funcionalidades interessantes, como por exemplo alterar o próprio <strong><em>tempo total</em></strong> através do <em><strong>Botão</strong></em>.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Abrçs,</span></p>
<p><span style="font-size: 12pt;"> Elcids</span></p> Boa noite, Elcids Chagas
Ca…tag:labdegaragem.com,2021-08-05:6223006:Comment:8729952021-08-05T01:17:17.921ZValentina Fernandeshttps://labdegaragem.com/profile/ValentinaFernandes
<p>Boa noite, Elcids Chagas</p>
<p></p>
<p> Carreguei o código no arduino, mas o temporizador não funcionou. Ele fica ligado direto. Estou usando o arduino nano.</p>
<p></p>
<p>Boa noite, Elcids Chagas</p>
<p></p>
<p> Carreguei o código no arduino, mas o temporizador não funcionou. Ele fica ligado direto. Estou usando o arduino nano.</p>
<p></p> Liga não RV,
Eu também não c…tag:labdegaragem.com,2021-08-03:6223006:Comment:8729022021-08-03T19:15:23.284ZCurti Esse Lado Seu Otimistahttps://labdegaragem.com/profile/eijuito
<p>Liga não RV,</p>
<p></p>
<p>Eu também não consigo tempo para responder muita pergunta aqui.</p>
<p></p>
<p><span>" </span><span> Sei que o </span><em><strong>RV</strong></em><span> é muito competente para implementar isso, " == TRUE STATEMENT</span></p>
<p></p>
<p>Muita saúde a todos!</p>
<p> 'Eiju</p>
<p>Liga não RV,</p>
<p></p>
<p>Eu também não consigo tempo para responder muita pergunta aqui.</p>
<p></p>
<p><span>" </span><span> Sei que o </span><em><strong>RV</strong></em><span> é muito competente para implementar isso, " == TRUE STATEMENT</span></p>
<p></p>
<p>Muita saúde a todos!</p>
<p> 'Eiju</p> Bom dia pessoal.
este mês est…tag:labdegaragem.com,2021-08-03:6223006:Comment:8727042021-08-03T11:21:53.184Zmineirin RVhttps://labdegaragem.com/profile/RuiViana
<p>Bom dia pessoal.</p>
<p>este mês está bem difícil responder os posts aqui.</p>
<p>Estão em minha casa:</p>
<p>2 filhos, uma nora, 2 netos então o LdG vai ficar devagar......</p>
<p></p>
<p>" <span> Sei que o </span><em><strong>RV</strong></em><span> é muito competente para implementar isso, " kkkkkkkkkkkkk mas tô devagar...</span></p>
<p></p>
<p><span>Rv mineirin</span></p>
<p>Bom dia pessoal.</p>
<p>este mês está bem difícil responder os posts aqui.</p>
<p>Estão em minha casa:</p>
<p>2 filhos, uma nora, 2 netos então o LdG vai ficar devagar......</p>
<p></p>
<p>" <span> Sei que o </span><em><strong>RV</strong></em><span> é muito competente para implementar isso, " kkkkkkkkkkkkk mas tô devagar...</span></p>
<p></p>
<p><span>Rv mineirin</span></p> olá Valentina.
Sei que…tag:labdegaragem.com,2021-08-03:6223006:Comment:8726322021-08-03T02:52:42.541ZElcids Chagashttps://labdegaragem.com/profile/ElcidsChagas
<p><span style="font-size: 12pt;">olá Valentina.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Sei que o <em><strong>RV</strong></em> é muito competente para implementar isso, e que talvez ele esteja com os dedos comichando, mas mesmo assim vou postar uma implementação deste seu Sistema, partindo do código original que vc postou aqui. Afinal uma visão diferente é sempre vem vinda e a diversificação ajuda as pessoas a aprenderem técnicas diferentes.…</span></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;">olá Valentina.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Sei que o <em><strong>RV</strong></em> é muito competente para implementar isso, e que talvez ele esteja com os dedos comichando, mas mesmo assim vou postar uma implementação deste seu Sistema, partindo do código original que vc postou aqui. Afinal uma visão diferente é sempre vem vinda e a diversificação ajuda as pessoas a aprenderem técnicas diferentes.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> O código está disponível para download no final deste post.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> A implementação segue a mesma <em><strong>sequência de Cores</strong></em> que vc postou, e vc pode facilmente alterá-la no código.</span></p>
<p><span style="font-size: 12pt;"> A <em><strong>duração</strong></em> da "<em><strong>animação</strong></em>" do <em><strong>sequenciamento de Cores</strong></em> está em <em><strong>30 minutos</strong></em> (o tempo que vc sugeriu), mas vc pode facilmente alterar isso no código, conforme mostrado na figura a seguir:</span></p>
<p></p>
<p style="text-align: center;"><span style="font-size: 8pt;"><em><strong>(clique na figura para "zoom")</strong></em></span></p>
<p><span style="font-size: 12pt;"><span><a href="https://storage.ning.com/topology/rest/1.0/file/get/9348644887?profile=original" target="_blank" rel="noopener"><img src="https://storage.ning.com/topology/rest/1.0/file/get/9348644887?profile=RESIZE_710x" width="597" height="142" class="align-center"/></a></span></span></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> Como vc não especificou o <em><strong>pino</strong> </em>onde o <em><strong>Botão</strong> </em>seria ligado, usei o <em><strong>pino</strong></em> "<strong>4</strong>" do <em><strong>Arduino</strong></em>, mas vc pode facilmente alterar isso conforme desejar. A figura a seguir mostra esta definição logo no início do código:</span></p>
<p></p>
<p style="text-align: center;"><span style="font-size: 8pt;"><strong><em>(clique na figura para "zoom")</em></strong></span></p>
<p><a href="https://storage.ning.com/topology/rest/1.0/file/get/9348646075?profile=original" target="_blank" rel="noopener"><img src="https://storage.ning.com/topology/rest/1.0/file/get/9348646075?profile=RESIZE_710x" class="align-center" width="585" height="150"/></a></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> A ligação do Botão é feita entre o pino especificado e o GND do Arduino, sendo usado o "Pullup interno" daquele pino. Vc pode ver isso na figura a seguir:</span></p>
<p></p>
<p style="text-align: center;"><span style="font-size: 8pt;"><strong><em>(clique na figura para "zoom")</em></strong></span></p>
<p><span style="font-size: 12pt;"><span><a href="https://storage.ning.com/topology/rest/1.0/file/get/9348646462?profile=original" target="_blank" rel="noopener"><img src="https://storage.ning.com/topology/rest/1.0/file/get/9348646462?profile=RESIZE_710x" class="align-center" width="832" height="588"/></a></span></span></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> O circuito da figura anterior, foi capturado do Proteus, ou seja, também implementei uma simulação para testar o funcionamento. Esta simulação também está disponível para download no final do post. Lembrar que a simulação executa em um "<strong>tempo virtual</strong>", e portanto quando os LEDs são acionados via <em><strong>PWM</strong></em>, vc consegue ver alguns efeitos pisca-pisca destes LEDs, mas isso só ocorre na simulação.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Na figura a seguir, vc pode ver a função de nome "<span style="font-size: 10pt;"><strong>executa_ciclo_Sequencia_Cores</strong></span>", onde cada Cor é sequencialmente setada:</span></p>
<p></p>
<p style="text-align: center;"><span style="font-size: 8pt;"><strong><em>(clique na figura para "zoom")</em></strong></span></p>
<p><span style="font-size: 12pt;"><a href="https://storage.ning.com/topology/rest/1.0/file/get/9348646681?profile=original" target="_blank" rel="noopener"><img src="https://storage.ning.com/topology/rest/1.0/file/get/9348646681?profile=RESIZE_710x" width="538" height="1007" class="align-center"/></a></span></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> Note que na figura anterior, marquei em azul onde a primeira cor é setada (na <em>linha 130</em>), e em amarelo (na <em>linha 132</em>) onde é especificado o tempo que esta cor fica visível (está em <strong><em>mili-segundos</em></strong>, no caso "<strong>1500</strong>" para <em><strong>1.5 segundos</strong></em>, ou seja, um segundo e meio).</span></p>
<p><span style="font-size: 12pt;"> Veja que o restante da função é uma <span style="text-decoration: underline;"><em>repetição</em></span> destas duas linhas em azul e amarelo, onde cada cor é setada e então aguardado o tempo individual para aquela cor.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Observe que vc pode "encerrar" antes que termine o tempo total da duração do Sequenciamento (no caso <em>30 minutos</em>). Para isto basta acionar novamente o <em><strong>Botão</strong></em>. Quando vc faz isso, o Sistema apenas conclui o Sequenciamento atual e então termina. Mas depois disso, vc pode reiniciar a qualquer momento, bastando acionar novamente o Botão (e claro, será iniciado e contado o tempo de <em>30 minutos</em> novamente).</span></p>
<p></p>
<p><span style="font-size: 12pt;"> <em><strong>Em suma, o Botão permite vc iniciar o Sequenciamento de Cores na duração definida, mas permite também que vc "aborte" isso.</strong></em></span></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> O código está aqui: <a href="https://storage.ning.com/topology/rest/1.0/file/get/9348647067?profile=original" target="_blank" rel="noopener">"<strong><em>Arco_Iris_02.zip</em></strong>"</a></span></p>
<p></p>
<p><span style="font-size: 12pt;"> E os arquivos da Simulação aqui: <a href="https://storage.ning.com/topology/rest/1.0/file/get/9348648263?profile=original" target="_blank" rel="noopener">"<strong><em>Simulacao_Proteus.zip</em></strong>"</a></span></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> Caso tenha alguma dúvida, não deixe de perguntar.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Espero ter ajudado,</span></p>
<p></p>
<p><span style="font-size: 12pt;"> abrçs,</span></p>
<p><span style="font-size: 12pt;"> Elcids</span></p> Boa noite Valentina, tente ut…tag:labdegaragem.com,2021-08-03:6223006:Comment:8726262021-08-03T00:52:39.577ZYuri Nhttps://labdegaragem.com/profile/YuriBorgesNogueira
<p>Boa noite Valentina, tente utilizar Timers(interrupções do arduino) ao invés de Delay(), através do Timer você consegue fazer a contagem de tempo que precisa e assim desenvolver o seu temporizador de 30minutos:</p>
<p><a href="https://www.youtube.com/watch?v=Uv9UeYUsA8A" rel="noopener" target="_blank">https://www.youtube.com/watch?v=Uv9UeYUsA8A…</a></p>
<p></p>
<p>Boa noite Valentina, tente utilizar Timers(interrupções do arduino) ao invés de Delay(), através do Timer você consegue fazer a contagem de tempo que precisa e assim desenvolver o seu temporizador de 30minutos:</p>
<p><a href="https://www.youtube.com/watch?v=Uv9UeYUsA8A" target="_blank" rel="noopener">https://www.youtube.com/watch?v=Uv9UeYUsA8A</a></p>
<p><a href="https://www.youtube.com/watch?v=BHa6u096Svo&t=148s" target="_blank" rel="noopener">https://www.youtube.com/watch?v=BHa6u096Svo&t=148s</a></p>