Substituindo delay() por millis() no Arduino (SimulIDE)

  Рет қаралды 1,165

Vitor Santos

Vitor Santos

Күн бұрын

Пікірлер: 15
@fillipedelgado
@fillipedelgado 3 жыл бұрын
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!
@ProfVitorSantos
@ProfVitorSantos 3 жыл бұрын
Obrigado 😁
@joewebti
@joewebti 4 жыл бұрын
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!
@ProfVitorSantos
@ProfVitorSantos 4 жыл бұрын
É 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
@joewebti
@joewebti 4 жыл бұрын
@@ProfVitorSantos Muito obrigado pela resposta! Eu vou ver o vídeo do link! Sucesso!
@joewebti
@joewebti 4 жыл бұрын
Muito obrigado mesmo pela resposta e atenção! Sucesso!
@ricardojrtel
@ricardojrtel 4 жыл бұрын
Olá Vitor, excelente aula. Eu também gostaria de saber como solucionar o estouro do millis, depois de aprox. 50 dias.
@ProfVitorSantos
@ProfVitorSantos 4 жыл бұрын
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 (); ....
@ricardojrtel
@ricardojrtel 4 жыл бұрын
@@ProfVitorSantos legal, obrigado.
@gilbertolameiro5648
@gilbertolameiro5648 4 жыл бұрын
LIKE
@ProfVitorSantos
@ProfVitorSantos 4 жыл бұрын
Obrigadoo!!
@joewebti
@joewebti 4 жыл бұрын
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!
@ProfVitorSantos
@ProfVitorSantos 4 жыл бұрын
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 (); ....
@heliojuniorandruchechen3932
@heliojuniorandruchechen3932 3 жыл бұрын
Ola, como posso entrar em contato
@ProfVitorSantos
@ProfVitorSantos 3 жыл бұрын
Oi, qual a sua dúvida?
Como zerar a função millis() no Arduino (SimulIDE)
11:13
Vitor Santos
Рет қаралды 2,7 М.
Comunicação I2C no Arduino (SimulIDE)
15:47
Vitor Santos
Рет қаралды 1,6 М.
How to treat Acne💉
00:31
ISSEI / いっせい
Рет қаралды 108 МЛН
Quando A Diferença De Altura É Muito Grande 😲😂
00:12
Mari Maria
Рет қаралды 45 МЛН
Quando eu quero Sushi (sem desperdiçar) 🍣
00:26
Los Wagners
Рет қаралды 15 МЛН
Funções serialEvent() e Serial.available() no Arduino (SimulIDE)
13:36
Entrada analógica e referencia externa no Arduino (SimulIDE)
11:36
Interrupção Externa no Arduino (SimulIDE)
11:36
Vitor Santos
Рет қаралды 729
Saídas analógicas (PWM) no Arduino (SimulIDE)
7:06
Vitor Santos
Рет қаралды 637
Interrupção do Timer 1 no Arduino (TimerOne)
9:34
Vitor Santos
Рет қаралды 4,8 М.
Frequencímetro Simples com Arduino (SimulIDE)
7:03
Vitor Santos
Рет қаралды 3,4 М.
Comunicação I2C entre Arduinos
11:19
Vitor Santos
Рет қаралды 1,1 М.
How to treat Acne💉
00:31
ISSEI / いっせい
Рет қаралды 108 МЛН