» Eletrônicos » Arduino »Medidor de distância da roda (curvímetro) no Arduino faça você mesmo

Medidor de distância de roda faça você mesmo (curvímetro) no Arduino

Olá pessoal! Agora tentarei falar em detalhes sobre como fazer o curvímetro mais simples e acessível.

Mas primeiro, vamos descobrir o que é e por que é necessário. De fato, seu nome nos diz seu propósito. É formado a partir da palavra latina curvus, que significa curvada ou ondulada. Ou seja, um curvímetro é um medidor de distância de roda ou rolo. Dois tipos de curvímetros são distinguidos: pequeno (cartográfico), que geralmente é usado para medições no mapa, e grande (estrada), que geralmente são usados ​​para medir o comprimento de seções curvas de rodovias já. Eles podem ser usados ​​sempre que for inconveniente ou impossível medir com a roleta padrão; portanto, o projeto promete ser interessante.

A primeira coisa a tomar cuidado ao construir o curvímetro é uma roda ou rolo. Ele deve ser pequeno o suficiente para que a precisão do instrumento seja alta; ao mesmo tempo, deve ser grande o suficiente para que o valor das leituras não seja muito afetado pela irregularidade da superfície medida. No meu caso, a roda tem um diâmetro de 14 centímetros.

Agora você precisa determinar o material e o tamanho da estrutura. Eu usei uma árvore.

Nas barras, fiz uma marcação e fiz os cortes e furos necessários.

Depois montei as peças usinadas usando pequenos parafusos autoatarraxantes.
Agora vamos desviar um pouco do próprio curvímetro e pensar em como essa coisa pode determinar a distância? Tudo é bem simples. Nós apenas precisamos calcular o número de rotações da roda e multiplicar pelo comprimento de sua circunferência externa, e é ainda mais fácil adicionar um valor de comprimento cada vez que a roda faz outra revolução.

Para contar cada revolução no caso mais simples, você pode usar o "contato deslizante". No entanto, eu não recomendo usar esse mecanismo de referência. É muito melhor usar um interruptor de palheta ou um sensor Hall.

É hora de experimentar uma roda. Vou prendê-lo com um parafuso comprido. Encontramos um local no quadro onde o aro da roda está o mais próximo possível e marca com pinceladas. Nessa área, precisamos instalar o interruptor reed.

Na roda, você precisa instalar um pequeno ímã.Certifique-se de que a força dele seja suficiente para fechar os contatos do interruptor reed.
Agora estaremos envolvidos em "cérebros" do sistema. No meu caso, esta é uma taxa Arduino UNO. Ele lerá o status da chave reed e transmitirá dados via conexão Bluetooth, usando o módulo HC-05, para o telefone. A propósito, o interruptor reed está conectado à placa como um botão comum. Acho que não deve haver problemas com a conexão do módulo Bluetooth.

Quanto ao código em si, é muito simples. E tentei comentar sobre isso para que tudo ficasse o mais claro possível.

int gercon = 12; // conectou a chave reed a 12 pinos
distância dupla = 0; // criou uma variável dupla para armazenar a distância
configuração nula () {
   Serial.begin (9600); // conectou uma conexão serial
 }
  loop vazio () {
/ * A seguir, o loop if. Se o interruptor reed estiver fechado, o próximo cálculo de distância será realizado. O valor 0,46472 já é o comprimento calculado de uma rotação da roda. Para evitar dados "extras", adicione um atraso de 200 milissegundos e exiba as leituras
* /
   if (digitalRead (gercon) == ALTO)
   {
 distância = distância + 0,46472;
 atraso (200);
 Serial.println (distância);
}
  } 


Aqui está o nosso curvímetro e pronto!

Vamos fazer algumas corridas de teste. Tudo funciona muito bem!


Você pode assistir a um vídeo na montagem deste dispositivo, talvez encontre algo interessante.
[media = https: //youtu.be/kx_7ztPsLws]

Tenha uma boa repetição do projeto!
5
5
7

Adicionar um comentário

    • sorrirsorrisosxaxaoknão seiyahoonea
      chefearranhartolosimsim simagressivosegredo
      desculpedançardance2dance3perdãoajudabebidas
      pararamigosbomgoodgoodapitodesmaiarlíngua
      fumaçapalmascraydeclararirônicodon-t_mentionbaixar
      calorirritantelaugh1mdareuniãomoskingnegativo
      not_ipipocapunirlerassustarsustospesquisar
      provocarthank_youistoto_clueumnikagudoconcordar
      malbeeeblack_eyeblum3corargabar-setédio
      censuradobrincadeirasecret2ameaçarvitóriayusun_bespectacled
      sacudirrespektlolpreviubem vindoKrutoyya_za
      ya_dobryiajudantene_huliganne_othodifludproibirfechar
1 comentário
Convidado Sergey
Por que a ONU quando attiny13 é suficiente para os olhos ...
Quanto ao código, pelo menos você precisa adicionar uma verificação de que o ímã saiu da chave reed, porque nesta implementação, a uma certa velocidade, e mais ainda se a roda parar, ela poderá ser processada mais de uma vez ou não ser processada. Para fazer isso, basta adicionar uma variável global e verificar seu estado antes de calcular o comprimento, algo como:
int gercon = 12; // conectou a chave reed a 12 pinos
int i = verdadeiro;
distância dupla = 0; // criou uma variável dupla para armazenar a distância
configuração nula () {
Serial.begin (9600); // conectou uma conexão serial
}
loop vazio () {
/ * A seguir, o loop if. Se o interruptor reed estiver fechado, o próximo cálculo de distância será realizado. O valor 0,46472 já é o comprimento calculado de uma rotação da roda. Para evitar dados "extras", adicione um atraso de 200 milissegundos e exiba as leituras
*/
if (digitalRead (gercon) == ALTO)
{
se (i <1)
{
distância = distância + 0,46472;
i = 1;
// delay (200);
Serial.println (distância);
}
}
se (i> 0)
{
i ++;
atraso (1);
}
if (digitalRead (gercon) == BAIXO)
{
if (i> 30) // evita falsos positivos devido ao retorno do contato
{
i = 0;
}
}
}

Melhor ainda, coloque dois interruptores de palheta, isso permitirá que você determine a direção da rotação (não fui para medir - voltei e não comecei desde o início ou o balancei no lugar para a frente e para trás conversando com um vizinho etc.). Você também pode adicionar ímãs para alterar a resolução.
ZY Não verifiquei alterações no código, pode haver erros.

Aconselhamos que você leia:

Entregue-o para o smartphone ...