Roda de medição simples DIY com codificador rotativo
Componentes e suprimentos
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
Ferramentas e máquinas necessárias
![]() |
|
Aplicativos e serviços online
![]() |
|
Sobre este projeto
Uma roda de medição é uma ferramenta de medição de construção. A roda gira e, usando a cinemática rotacional básica (s =rθ), você pode determinar a distância entre dois pontos.
O vídeo abaixo mostra um modelo funcional reduzido de tal dispositivo feito com vários componentes:
- Arduino Nano
- Codificador rotativo
- Visor LCD 16x2
- pot de 10k.
- resistor de 220 ohms

O princípio de funcionamento é o seguinte:
O codificador rotativo mede o número da rotação, mas temos que converter a rotação em distância percorrida. A distância percorrida depende do diâmetro da roda. O codificador rotativo move N etapas em uma rotação completa (360 graus). Os passos por rotação dependem do codificador rotativo que pode ser alterado de 8 para 48. Suponha que N são os passos por rotação e R é o raio da roda.
A distância percorrida em uma rotação é =2xπxR
A distância percorrida em uma etapa é =2xπxR / N
Escrevi um código muito simples para esse fim e a distância percorrida é exibida na tela LCD em centímetros. Dependendo dos componentes usados no código, alteramos os valores de "N" e "R".
No meu caso a roda é feita em uma impressora 3D e todo o conjunto é montado em uma haste de alumínio, como pode ser visto no vídeo.
Código
- Código
Código C / C ++
/ * Measurning Whell * * por Mirko Pavleski, * * https://www.youtube.com/channel/UCHLzc76TZel_vCTy0Znvqyw * / # includeLiquidCrystal lcd (5, 6, 7, 8, 9, 10); int pin1 =2; int pin2 =3; int Pos =0; int State; int LastState; const float pi =3,14; const float R =3,25; const int N =40; distância do float =0; configuração vazia () {pinMode (pin1, INPUT_PULLUP); pinMode (pin2, INPUT_PULLUP); lcd.begin (16, 2); lcd.print ("RODA DE MEDIÇÃO"); LastState =digitalRead (pin1); } void loop () {State =digitalRead (pin1); if (State! =LastState) {if (digitalRead (pin2)! =State) {Pos ++; } else {Pos -; }} distância =((2 * pi * R) / N) * Pos; lcd.setCursor (0, 1); lcd.print (distância); lcd.setCursor (5, 1); lcd.print ("cm"); LastState =estado; }
Esquemas

Processo de manufatura
- DIY mais simples relógio IV9 Numitron com Arduino
- Jogo Arduino Gyroscope com MPU-6050
- Sensor de obstáculo simples com Arduino
- Voltímetro DIY com Arduino e um visor Nokia 5110
- MobBob:DIY Arduino Robot Controlado por Smartphone Android
- IoT Gauge com Arduino, Yaler e IFTTT
- Medidor de frequência simples DIY de até 6,5 MHz
- Monitor de qualidade do ar faça você mesmo com sensor Sharp GP2Y1010AU0F
- Contador Geiger portátil com Arduino Nano
- Despertador simples com DS1302 RTC