Rueda de medición simple de bricolaje con codificador giratorio
Componentes y suministros
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Herramientas y máquinas necesarias
|
Aplicaciones y servicios en línea
|
Acerca de este proyecto
Una rueda de medición es una herramienta de medición de la construcción. La rueda gira y, utilizando la cinemática rotacional básica (s =rθ), puede determinar la distancia entre dos puntos.
El siguiente video muestra un modelo funcional reducido de un dispositivo de este tipo hecho con varios componentes:
- Arduino Nano
- Codificador rotatorio
- Pantalla LCD 16x2
- Bote de 10k.
- Resistencia de 220 ohmios
El principio de funcionamiento es el siguiente:
El codificador rotatorio mide el número de la rotación pero tenemos que convertir la rotación en la distancia recorrida. La distancia recorrida depende del diámetro de la rueda. El codificador rotatorio mueve N pasos en una rotación completa (360 grados). Los pasos por rotación dependen del codificador rotatorio, que se puede cambiar de 8 a 48. Suponga que N son los pasos por rotación y R es el radio de la rueda.
La distancia recorrida en una rotación es =2xπxR
La distancia recorrida en un paso es =2xπxR / N
Escribí un código muy simple para este propósito y la distancia recorrida se muestra en la pantalla LCD en centímetros. Dependiendo de los componentes usados en el código, cambiamos los valores de "N" y "R".
En mi caso la rueda está hecha en una impresora 3D y todo el conjunto está montado sobre una varilla de aluminio, como se ve en el video.
Código
- Código
Código C / C ++
/ * Measurning Whell * * de Mirko Pavleski, * * https://www.youtube.com/channel/UCHLzc76TZel_vCTy0Znvqyw * / # incluyeLiquidCrystal lcd (5, 6, 7, 8, 9, 10); int pin1 =2; int pin2 =3; int Pos =0; int Estado; int LastState; const float pi =3.14; const float R =3.25; const int N =40; distancia de flotación =0; void setup () {pinMode (pin1, INPUT_PULLUP); pinMode (pin2, INPUT_PULLUP); lcd. comienzo (16, 2); lcd.print ("RUEDA DE MEDICIÓN"); LastState =digitalRead (pin1); } bucle vacío () {Estado =digitalRead (pin1); if (State! =LastState) {if (digitalRead (pin2)! =State) {Pos ++; } else {Pos -; }} distancia =((2 * pi * R) / N) * Pos; lcd.setCursor (0, 1); lcd.print (distancia); lcd.setCursor (5, 1); lcd.print ("cm"); LastState =Estado; }
Esquemas
Proceso de manufactura
- El reloj IV9 Numitron más simple de bricolaje con Arduino
- Juego de giroscopio Arduino con MPU-6050
- Sensor de obstáculos simple con Arduino
- Voltímetro de bricolaje con Arduino y una pantalla Nokia 5110
- MobBob:Robot Arduino DIY controlado por un teléfono inteligente Android
- Medidor de IoT con Arduino, Yaler e IFTTT
- Medidor de frecuencia simple de bricolaje hasta 6.5MHz
- Monitor de calidad del aire para bricolaje con sensor Sharp GP2Y1010AU0F
- Contador Geiger de mano con Arduino Nano
- Medición de la radiación solar con Arduino
- Reloj despertador simple con DS1302 RTC