DIY eenvoudig meetwiel met roterende encoder
Componenten en benodigdheden
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Benodigde gereedschappen en machines
|
Apps en online services
|
Over dit project
Een meetwiel is een bouwmeetinstrument. Het wiel draait en met behulp van basisrotatiekinematica (s=rθ), kun je de afstand tussen twee punten bepalen.
De onderstaande video toont een gereduceerd functioneel model van een dergelijk apparaat gemaakt met verschillende componenten:
- Arduino Nano
- Roterende encoder
- 16x2 LCD-scherm
- 10k pot.
- 220 ohm weerstand
Het werkingsprincipe is als volgt:
De roterende encoder meet het aantal rotaties, maar we moeten de rotatie omzetten in afgelegde afstand. De afgelegde afstand is afhankelijk van de diameter van het wiel. Roterende encoder beweegt N stappen in één volledige rotatie (360 graden). Het aantal stappen per omwenteling is afhankelijk van de roterende encoder die kan worden gewijzigd van 8 in 48. Stel dat N het aantal stappen per omwenteling is en R de straal van het wiel.
Afgelegde afstand in één Rotatie is =2xπxR
Afgelegde afstand in één stap is =2xπxR/N
Ik heb hiervoor een heel eenvoudige code geschreven en de afgelegde afstand wordt in centimeters weergegeven op het LCD-scherm. Afhankelijk van de componenten die in de code worden gebruikt, veranderen we de waarden van "N" en "R".
In mijn geval is het wiel gemaakt op een 3D-printer en is het geheel op een aluminium staaf gemonteerd, zoals te zien is in de video.
Code
- Code
CodeC/C++
/* Measurning Whell * * door 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 Staat;int Laatste Staat; const float pi =3.14;const float R =3.25;const int N =40;float distance =0;void setup() { pinMode (pin1, INPUT_PULLUP); pinMode (pin2, INPUT_PULLUP); lcd.begin (16, 2); lcd.print("MEETWIEL"); LastState =digitalRead (pin1); } void loop () { State =digitalRead (pin1); if (State !=LastState){ if (digitalRead(pin2) !=State) { Pos ++; } anders { Pos --; } } afstand =((2*pi*R)/N) * Pos; lcd.setCursor(0, 1); lcd.print (afstand); lcd.setCursor (5, 1); lcd.print("cm "); Laatste Staat =Staat; }
Schema's
Productieproces
- DIY eenvoudigste IV9 Numitron-klok met Arduino
- Arduino-gyroscoopspel met MPU-6050
- Eenvoudige obstakelsensor met Arduino
- DIY voltmeter met Arduino en een Nokia 5110-display
- MobBob:doe-het-zelf Arduino-robot bestuurd door Android-smartphone
- IoT-meter met Arduino, Yaler en IFTTT
- DIY eenvoudige frequentiemeter tot 6,5 MHz
- DIY-luchtkwaliteitsmonitor met Sharp GP2Y1010AU0F-sensor
- Handheld geigerteller met Arduino Nano
- Zonnestraling meten met Arduino
- Eenvoudige wekker met DS1302 RTC