Eu estava precisando de uma solução para ficar um tempo executando uma função e não sabia como, com millis posso fazer facilmente isso. Posso chamar a funcao millis e executar o tempo do intervalo. Muito Bom!
@ProfVitorSantos3 жыл бұрын
Obrigado 😁
@joewebti4 жыл бұрын
Oi Vitor, tem como você fazer um circuito pra acender/apagar Leds/Lâmpadas com palmas? Eu sei que ultilizam a função "millis", porém eu não entendi muito bem a lógica do tempo com duas ou mais palmas. Você poderia me ajudar a entender melhor como funciona esse programa? É que eu gostaria também de implementar um circuito com o módulo "touch" dimerizável pra acender/apagar com um toque, e se eu pressionar por um determinado tempo, ele diminui ou aumenta o brilho dependendo se está no mínimo/desligada ou no máximo do brilho da lâmpada e talvez guardando na mémoria o último estado da lâmpada. Desde já muito obrigado e continue com o seu trabalho e com uma ótima didática!
@ProfVitorSantos4 жыл бұрын
É possível utilizar vários tipos de sensores para detectar o som das palmas, para definir conjunto de eventos para determinado número de palmas é necessário medir o tempo após a primeira, tipo caso tenham outra palma após 2 seg da primeira acionar o led1 se não acionar o led2, mais ou menos isso. Para o touch é a mesma ideia de medir o tempo entre o primeiro evento e próximo, no vídeo a seguir tem um exemplo de um botão que aumenta de 1 em 1 com alteração na velocidade do incremento pode ser útil como ponto de partida para o seu projeto. link: kzbin.info/www/bejne/jXupn5qlq7iAq5I
@joewebti4 жыл бұрын
@@ProfVitorSantos Muito obrigado pela resposta! Eu vou ver o vídeo do link! Sucesso!
@joewebti4 жыл бұрын
Muito obrigado mesmo pela resposta e atenção! Sucesso!
@ricardojrtel4 жыл бұрын
Olá Vitor, excelente aula. Eu também gostaria de saber como solucionar o estouro do millis, depois de aprox. 50 dias.
@ProfVitorSantos4 жыл бұрын
Então é possível zerar o valor de retorno da função millis(), mas não recomendo pois isso interfere com outras funções do arduino. Para a maioria das aplicações o estouro da função millis() não irá gerar problemas apenas um pequeno erro de um ou dois intervalo de tempo. Exemplo para zerar o valor da função millis(): .... Escreva antes do void setup() extern volatile unsigned long timer0_millis; Escreva para redefinir onde deseja que os milis () sejam redefinidos: noInterrupts (); timer0_millis = 0; interrupts (); ....
@ricardojrtel4 жыл бұрын
@@ProfVitorSantos legal, obrigado.
@gilbertolameiro56484 жыл бұрын
LIKE
@ProfVitorSantos4 жыл бұрын
Obrigadoo!!
@joewebti4 жыл бұрын
Oi, tudo bem? O que acontece quando há o estouro da função "millis"? Ela volta pra zero, porém para o funcionamento do programa? Ela não deixa mais lento o programa, pois vai ocupando a memória do Arduino? Eu vi um outro vídeo no KZbin que depois que executa a função "millis" ele reseta ela com uma variável, assim evitando esse estouro da função. Muito obrigado!
@ProfVitorSantos4 жыл бұрын
Oi, no caso quando temos o estouro da função millis o valor que ela retorna volta a zero, mas isso leva aproximadamente 49 dias para ocorre. Para aplicações que necessitem ficar ligadas por períodos longos é recomendado utilizar outras formas para contagem de tempo como circuitos RTC ou Interrupção como TIME1. Então a utilização da função millis() realmente consome mais memoria que a função delay() pois é necessário a criação de variáveis do tipo "unsigned long" . É possível zera a contagem da função millis() conforme o exemplo a seguir, mas não recomendo pois isso pode gerar um mal funcionamento de outras funções no arduino. Exemplo: .... Escreva antes do void setup() extern volatile unsigned long timer0_millis; Escreva para redefinir onde deseja que os milis () sejam redefinidos: noInterrupts (); timer0_millis = 0; interrupts (); ....