13 juli 2015

Arduino project 5. Snelheids meting en cadans meting

Omdat het eigenlijk vrij simpel is om gelijk met de ledstrips ook andere dingen door de Arduino uit te laten voeren, heb ik besloten ook maar een snelheids meter en cadansmeter in mijn project in te bouwen. Nu had ik de keuze uit twee typen sensoren: een reed contact of een Hall sensor. Reed contacten zijn hele kleine glazen buisjes met daarin twee metalen staafjes. Wanneer deze staafjes door een magneetveld gaan zullen de staafjes contact met elkaar maken. Reed contacten kunnen echter makkelijk beschadigen. De tweede keus is een Hall sensor. Hierin zit een stukje elektronica ook weer reageert op een magneetveld. Er zijn nogal wat verschillende soorten Hall sensoren te vinden, en het is dus even oppassen met bestellen. Uiteindelijk kom ik via-via uit op een Hall sensor van het type A3144. Op Ebay kosten ze $1.19 per 10 stuks. Na enkele weken wachten komt het kleine zakje met nog kleinere sensoren binnen en kan ik aan de slag.




Een A3144 hall sensor heeft een voeding nodig van 5 Volt, en er moet een weerstandje op aangesloten worden zoals hierboven.


Bovenstaand het schema zoals ik de sensoren op mijn Arduino heb aangesloten.


Plaatje van een Hall sensor, met alle drie de pootjes netjes gesoldeerd en gekrompen. Dit is een priegel werkje, omdat zo'n sensor erg klein is. Net zoals de rotary encoder maken Hall sensoren weer gebruik van interrupts. Dit houdt in dat dat programma dat draait op de Arduino onderbroken wordt als er een interrupt signaal binnenkomt (in dit geval dus van een Hall sensor). Aan de hand van het tijdsverschil tussen de interrupts en de straal van het wiel kan dan de snelheid berekend worden.

Dit houdt dus ook weer in dat ik twee poortjes op de Arduino moet toewijzen die deze functie hebben (niet alle poorten kan je gebruiken voor interrupts).  Nu heeft een Arduino Mega 2560 er zes, dus ik kan nog even vooruit. Op het LCD scherm maak ik een aparte pagina waarin ik de straal van het wiel kan instellen, met behulp van de rotary encoder.

Terwijl ik aan het programmeren ben, bedenk ik mij dat het erg lastig is om de straal van een Quest-wiel goed te meten zonder het wiel los te moeten halen. Makkelijker is het om de omtrek te meten: een plakbandje op het wiel, een plakbandje op de grond, fiets vooruit- cq achteruit rollen en meten. Na wat kleine aanpassingen aan het programma weet ik het zo te regelen dat ik tegelijkertijd zowel de straal als de omtrek van het wiel kan veranderen.

Hieronder een filmpje met het instel scherm en de beide sensoren in aktie (buiten beeld weliswaar, maar dat mag de pret niet drukken):






2 opmerkingen:

pieterz zei

Rob,

Erg interessant project dit.
Maak je op beide wielen een snelheidssensor? Zodat als er een verschil optreedt in snelheden tussen de voorwielen op de rechte stukken er 1 langzaam leeg loop/ lek zou zijn. Waarschijnlijk ook nog te programmeren dat bij een bepaalde marge je een melding krijgt.

Is het ook nog mogelijk om bij de cadans meting kleuren te gebruiken in je display. boven 85 rpm groen eronder rood dus let op de knieën.

groet,
Pieter

Rob Broek zei

Hallo Pieter,
Theoretisch zou het inderdaad kunnen dat je verschil in bandenspanning zou kunnen detecteren door meting van de omwentelingstijd. Maar ik weet niet of dit in de praktijk zo nauwkeurig is dat het ook zou werken... Hmmm. Wel interessant :-)

Voor wat betreft de knieën bewaking: ik kan helaas geen kleuren op mijn display tonen (is een LCD display), maar ik zou hiervoor wel een RGB led kunnen gebruiken. Ik ben van plan dit project eind september af te hebben, als ik nog tijd heb bouw ik het er misschien wel bij. Leuke tip !!
Groet, Rob