Ir ao conteúdo
  • Cadastre-se
Daniel Lumes

Calcular velocidade média com arduino

Recommended Posts

Olá pessoal, sou novato em programação com arduino e precisava de uma ajudinha.

Estou com um projeto didático no qual tenho que mostrar a velocidade instantânea de um carrinho num LCD 16x2, estou utilizando um sensor de velocidade com encoder, este passo porém já consegui utilizando uma interrupção e fazendo o cálculo mostra tudo corretamente, mas tenho uma questão extra!! Preciso mostrar a velocidade média do carrinho a cada 1 minuto!! E nesse passo estou perdido. Acredito que seja algo simples, como armazenar os valores criados na variável que já está mostrando a velocidade, somar e depois dividir, porém não sei como fazer isso.

 

Agradeço se alguém puder me ajudar :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Daniel Lumes,

 

Mesmo sem código dá para te ajudar :

 

A ideia é esta : imagine que você está medindo a velocidade duas vezes a cada segundo. Então, basta você somar todas as medidas que você está tendo durante 1 minuto e dividir esse valor por 120 ( afinal você fez 120 medidas, certo ? ) e pronto, terá a velocidade média. Este é o princípio universal de cálculo de média! Basta ter uma referência de tempo precisa , usando um dos Timers do seu Arduíno, para determinar o tempo exato para fazer as medidas, e contar o numero de medidas.

 

Paulo

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dica: mc's fazem conta com numeros base 2 igual a você faz com base 10. p.ex. você divide/multiplica por 10, 100,1000,10000 só de cabeça. O mc faz 'o mesmo' com 2,4,8,16. Portanto some 16,32,64... valores por minuto e divida pelo mesmo número. Mas acho que ainda não é o momento desta otimização. 1° entenda o conceito que Paulão te passou...

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Concordo.Problema como alguém conseguiu fazer lcd funcionar,usar enconder com interrupção e não consegue calcular um simples média?Estou imaginando que pegou código pronto,e queria apenas colocar velocidade média.(tomara que eu esteja errado).

8 horas atrás, aphawk disse:

@Daniel Lumes,

 

Mesmo sem código dá para te ajudar :

 

A ideia é esta : imagine que você está medindo a velocidade duas vezes a cada segundo. Então, basta você somar todas as medidas que você está tendo durante 1 minuto e dividir esse valor por 120 ( afinal você fez 120 medidas, certo ? ) e pronto, terá a velocidade média. Este é o princípio universal de cálculo de média! Basta ter uma referência de tempo precisa , usando um dos Timers do seu Arduíno, para determinar o tempo exato para fazer as medidas, e contar o numero de medidas.

 

Paulo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpem, mas não estou com o código agora, agradeço a ajuda de vocês, mas acho que não consegui me fazer entender bem. A fórmula matemática da média eu sei como fazer e sei como fazer algumas coisas na programação também, mas sempre existem dúvidas e lacunas no conhecimento. O que eu não estou conseguindo fazer ou entender como faço é pegar esses valores que são gerados na minha variável de velocidade instantânea guardar uma certa amostra dentro de um determinado período de tempo para depois gerar a média. Li várias coisas, a maioria delas aponta pra usar matrizes para fazer isso, só que essa parte de armazenamento de dados aleatórios é a dificuldade que estou tendo. Eu penso que devo criar outra variável para média e ir guardando todos os valores gerados na velocidade instantânea nessa variável média, aplicar o cálculo da média e depois zerar está variável para refazer o cálculo novamente. A dificuldade é como guardar mais de um valor numa mesma variável?

Obrigadooo

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, Daniel Lumes disse:

criar outra variável para média e ir guardando todos os valores gerados na velocidade instantânea nessa variável média, aplicar o cálculo da média e depois zerar está variável para refazer o cálculo novamente

é isso aí

 

Um pseudo código mesclado com c usando os tempos do ex. do amigo Paulão @aphawk

-unsigned long velocidade,media=0; //usei long pra garantir que cabe mas com alguns ajustes pode ser tipo int mesmo.

3 horas atrás, Daniel Lumes disse:

como guardar mais de um valor numa mesma variável?

-a cada 0.5 segundos, de posse da velocidade faça media=media+velocidade; se acha isso sem sentido, o c não acha. E pior.. é o mesmo disso: media+=velocidade. Não sei a linguagem do arduino

-a cada 60 segundos, somadas 120 vezes a 'velocidade' consigo mesma na 'media' ou multiplicada por 120, faça media=media/120 ou media/=120;

 

Quer um cafezinho também??

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites
13 horas atrás, Isadora Ferraz disse:

é isso aí

 

Um pseudo código mesclado com c usando os tempos do ex. do amigo Paulão @aphawk

-unsigned long velocidade,media=0; //usei long pra garantir que cabe mas com alguns ajustes pode ser tipo int mesmo.

-a cada 0.5 segundos, de posse da velocidade faça media=media+velocidade; se acha isso sem sentido, o c não acha. E pior.. é o mesmo disso: media+=velocidade. Não sei a linguagem do arduino

-a cada 60 segundos, somadas 120 vezes a 'velocidade' consigo mesma na 'media' ou multiplicada por 120, faça media=media/120 ou media/=120;

 

Quer um cafezinho também??

 

Obrigado Isadora!! Me ajudou muito mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×