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

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

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.
@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 (); ....
@gilbertolameiro5648
@gilbertolameiro5648 4 жыл бұрын
LIKE
@ProfVitorSantos
@ProfVitorSantos 4 жыл бұрын
Obrigadoo!!
@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,8 М.
Nunca mais use delay - Dicas Rápidas Arduino - função millis()
9:30
1% vs 100% #beatbox #tiktok
01:10
BeatboxJCOP
Рет қаралды 67 МЛН
Сестра обхитрила!
00:17
Victoria Portfolio
Рет қаралды 958 М.
Quando A Diferença De Altura É Muito Grande 😲😂
00:12
Mari Maria
Рет қаралды 45 МЛН
Уроки Ардуино. ПИД регулятор
28:57
Заметки Ардуинщика
Рет қаралды 491 М.
Arenas, strings and Scuffed Templates in C
12:28
VoxelRifts
Рет қаралды 108 М.
КАКОЕ СОЕДИНЕНИЕ ПРОВОДОВ ЛУЧШЕ? #энерголикбез
23:11
Александр Мальков
Рет қаралды 1,2 МЛН
PROTOCOLS: UART - I2C - SPI - Serial communications #001
11:58
Electronoobs
Рет қаралды 1,4 МЛН
How to do multiple tasks in Arduino | Beginners | millis() function
10:23
Interrupção do Timer 1 no Arduino (TimerOne)
9:34
Vitor Santos
Рет қаралды 4,9 М.