Ir ao conteúdo
  • Cadastre-se

Calcular velocidade média com arduino


Posts recomendados

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 :)

Link para o comentário
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
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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
Link para o comentário
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

 

Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
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
Link para o comentário
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.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...