Arduino + Filtros: Média Móvel

preview_player
Показать описание
Um filtro muito simples, mas também muito útil para diversas implementações.

Рекомендации по теме
Комментарии
Автор

O vídeo já é antigo, mas hoje (06/11/2022) você me salvou.
Estou projetando com arduino+Ethernet Shield uma monitoração das tensões de entrada logo após o trafo de 13, 8KV / 380V do local onde eu trabalho. Mas eu estava tendo horríveis problemas com ruídos nos sensores de tensão, que estou usando 3. E agora com esse código, consegui conter os ruídos. Tive que ajustar ao meu código, mas deu certo.

Muito obrigado mesmo, já não estava mais sabendo oque fazer.

andersondesouza
Автор

Exatamente o que eu queria algo simples e funcional....

jeancoelho
Автор

Parabéns Ivan, conteúdo top. Obrigado.

marciojoseliberato
Автор

Ivan, ajudou muito... sabia quase nada de média móvel (só os conceitos) na prática, nem no Arduino. Excelente aula, Obrigado.

GersonSena
Автор

Como sempre uma ótima aula!!!!
Espero que volte a postar novos vídeos!!
Parabéns pelo ótimo trabalho!
👏🏿👏🏿👏🏿👏🏿

messiasmest
Автор

Massa o canal! Obrigado por compartilhar o conhecimento ! Deus lhe abencoe !

boguerocha
Автор

Muito Bom Ivan, ajudou muito no meu TCC... Controle PID precisa de um bom filtro pra não captar valores desnecessarios

GolemSIONISTA
Автор

Ivan, implementei aqui em meu leitor de LDR. Funcionou perfeitamente. Parabéns pelo belo trabalho !

anibalvilelarj
Автор

Muito bom! Agradeço. Merece uma continuação onde pode ser mostrada a largura(BW) de banda e o tempo de resposta (Delay).

joenova
Автор

Rapaz, você não existe... muito obrigado.

luissantos
Автор

Parabéns Pela aula. Muito bom, Muito didático. Ganhou um inscrito.

oinetsrv
Автор

Great Video! esse tipo de filtro ajuda muito
assim como todos seus videos de arduino.
Valeu Ivan! Esperando pelo próximo video...
sugestão: integração com outras linguagens tipo C#, java, seria legal.

natanaelrabello
Автор

cara que video aula perfeita!!!! mais um inscrito!!!!

davidsonfellipe
Автор

Parabéns, vídeo sensacional.
Só tem uma coisa a falar OBRIGADO.

wiliam
Автор

Bem legal essa função, e verificando melhor vi que da para simplificar mais ainda e tem o mesmo efeito
unsigned long filtro(unsigned long valor, byte taxa)
{
static unsigned long a, b;
a=a+(valor/taxa);
b=a;
a=a-(a/taxa);
return b;
}
usa assim:
Serial.println(filtro(Valor a ser filtrado, taxa de filtragem));

jbset
Автор

Boa tarde Ivam. Esse seu programa funciona muito bem. Eu tenho um sinal de entrada analógica com ruído e precisava passar por esse filtro e depois de filtrado acionar uma carga externa e não estou conseguindo fazer ele acionar essa carga. Poderia me dar uma dica ou postar um vídeo explicando.
Obrigado
Francisco

francisconardi
Автор

TOP, entendi agora como posso fazer o joystick não variar bruscamente o acionamento do meu motor, obrigado !

hipertex
Автор

muito legal. porem se a variação for muito grande, e a amostragem for muito grande por exemplo 100 devido a ter um laço FOR sua lógica fica presa por muito tempo processando o filtro e acaba tendo um delay.
minha proposta de filtro que não usa um FOR. quem quiser melhorar eu agradeço por todos nos

// estou usando um joystick X/Y
// eixo X ligado no A0
// eixo Y ligado no A1

int POTX, POTY;//guarda os valores da entrada analógica vinda de um joystick X/Y
int Zona_Morta=12;//valor que a entrada fica oscilando pra mais e pra menos


struct DT_Filtro

{
int Entrada;
int Filtro;
int Saida;
int BandaMax;
int BandaMin;
};




void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {





POTX = map(analogRead(A0), 0, 1023, -255, 255);
POTY = map(analogRead(A1), 0, 1023, -255, 255);


Serial.print("Valor sem Filtro:X");
Serial.print(POTX);
Serial.print('\t');
POTX= FILTRO(POTX, Zona_Morta);//chamada subrotina FILTRO
POTY= FILTRO(POTY, Zona_Morta);//chamada subrotina FILTRO

Serial.print("Valor com Filtro:X");
Serial.print(POTX);
Serial.println('\t');




}






int FILTRO(int input_value, int Filtro)
{

DT_Filtro CMFiltro;
CMFiltro.Filtro=Filtro;




{CMFiltro.Saida=input_value;}

{CMFiltro.Saida=input_value;}

if(input_value==0) { CMFiltro.Saida=0;}


return CMFiltro.Saida;

}

ThiagoAmagesto
Автор

aula muito boa interesante parabens!!!!

wesleysouzarodrigues
Автор

Para de fazer videos não cara! kkk 
Parabéns pelos vídeos, abraços.

junoutneto