Dit is een mooi voorbeeld van hoe het bij mij werkt. Al in 2016 had ik het idee om een windrichtingmeter te maken. Ik had toen bedacht reedrelais te gebruiken: vier stuks voor elke windrichting (N, O, Z en W) een, die door magneetjes op de as geschakeld werden. Door meerdere magneetjes te gebruiken konden ook twee relais tegelijkertijd geschakeld worden, om zodoende ook de tussenliggende richtingen (NO, ZO ZW, NW) aan te kunnen geven.
Veel verder dan wat experimenteren is het toen niet gegaan, maar ik had wel een prototype gemaakt: zie hieronder.

Nu, bijna negen jaar later, heb ik het weer opgepakt. In plaats van een Arduino wil ik een ESP32-C3 gebruiken en die met Annex32 programmeren. Destijds heb ik reedrelais gebruikt, nu wil ik Hall-effect sensoren gebruiken.
Dit is wat AI over dat soort sensoren te vertellen heeft:
Een Hall-effect sensor is een elektronisch component dat een magneetveld kan meten. De sensor werkt op basis van het Hall-effect, een fenomeen waarbij een spanning wordt gegenereerd over een geleider als er tegelijkertijd een elektrische stroom doorheen loopt en er een magneetveld loodrecht op die stroom staat.
Hoe werkt het Hall-effect? ⚡️
Wanneer elektronen door een dunne, platte geleider stromen, bewegen ze normaal gesproken in een rechte lijn. Als je een magneetveld op deze geleider aanbrengt dat loodrecht staat op de stroomrichting, oefent de Lorentzkracht een zijwaartse kracht uit op de bewegende elektronen. Deze kracht dwingt de elektronen om zich aan één kant van de geleider op te hopen. Hierdoor ontstaat er een spanningsverschil tussen de twee zijkanten van de geleider, de zogeheten Hall-spanning.
De Hall-spanning is direct evenredig met zowel de stroomsterkte door de geleider als de sterkte van het magneetveld. Door de stroom constant te houden, kan de sensor de Hall-spanning meten om zo nauwkeurig de sterkte van het magneetveld te bepalen.
Het prototype is opgebouwd uit een stukje sanitair-afvoerpijp met een diameter van 40mm. Maar eigenlijk wil ik het wel een beetje kleiner maken.
Wanneer de magneet nog redelijk ver verwijderd is sluit de reedrelais al. De afstand van ca. 20mm van magneet naar reedrelais was geen probleem en werkte betrouwbaar. Een kleinere afstand zou er wel eens voor kunnen zorgen dat ongewild ook verderaf gepositioneerde relais ongewenst aangetrokken zouden worden. Om het geheel toch wat compacter op te bouwen ben ik daarom dus wat gaan experimenteren met de A3144 Hall-effectsensor in een elektriciteitspijp met een diameter van ca. 20mm.

Bovenstaande schema laat de A3144 Hall-effectsensor zien met wat elektronica eromheen (weerstand en condensator) voor de voeding en stabilisatie van het uitgangsignaal. Dit moet viermaal uitgevoerd worden.
Het principe is vrij simpel en het maakt niet uit of er reedrelais, of Hall-effectsensoren worden gebruikt: het zijn vier schakelaars die door vier ingangen van de microcontroller worden uitgelezen

Hieronder het BASIC-programma om de vier schakelaars uit te lezen..
'Windroos_test2.bas
PIN.MODE 0, INPUT, PULLUP
PIN.MODE 1, INPUT, PULLUP
PIN.MODE 2, INPUT, PULLUP
PIN.MODE 3, INPUT, PULLUP
DO
A = pin(0)
B = pin(1)
C = pin(2)
D = pin(3)
IF (A = 0) AND (B = 1) AND (C = 1) AND (D = 1) THEN
wlog "Noord"
PAUSE 100
END IF
IF (A = 0) AND (B = 0) AND (C = 1) AND (D = 1) THEN
wlog "Noord-Oost"
PAUSE 100
END IF
IF (A = 1) AND (B = 0) AND (C = 1) AND (D = 1) THEN
wlog "Oost"
PAUSE 100
END IF
IF (A = 1) AND (B = 0) AND (C = 0) AND (D = 1) THEN
wlog "Zuid-Oost"
PAUSE 100
END IF
IF (A = 1) AND (B = 1) AND (C = 0) AND (D = 1) THEN
wlog "Zuid"
PAUSE 100
END IF
IF (A = 1) AND (B = 1) AND (C = 0) AND (D = 0) THEN
wlog "Zuid-West"
PAUSE 100
END IF
IF (A = 1) AND (B = 1) AND (C = 1) AND (D = 0) THEN
wlog "West"
PAUSE 100
END IF
IF (A = 0) AND (B = 1) AND (C = 1) AND (D = 0) THEN
wlog "Noord-West"
PAUSE 100
END IF
LOOP
Afhankelijk van de stand van de as wordt een of twee schakelaars door de magneet aangetrokken en wordt de daarmee corresponderende windrichting in het loggedeelte van de Annex32 omgeving getoond.

Dat werkt. Nu nog een aantrekkelijke presentatie maken! 🙂
Al testend met de A3144 kwam ik er achter dat wanneer je PIN.MODE 0, INPUT, PULLUP gebruikt je op pin 3 de pull-up weerstand natuurlijk achterwegen kunt laten. Ook de condensator in het schema kan achterwegen blijven. Dat maakt het opbouwen van de elektronica wel heel eenvoudig!

De hardware vraagt zoals gezegd nog wel de nodige aandacht. Hierboven is het principe van de windrichtingmeter, dat in wezen uit twee, ten opzichte van elkaar, vrij bewegende onderdelen bestaat. Boven een kap met windvaan die de wind vangt en die samen met een as met magneten één geheel geheel vormen en vrij kan ronddraaien (rood). Onder een vaststaand omhulsel waarin de elektronica zit (zwart). Lagers zorgen ervoor dat e.e.a. soepel draait.
De kap moet er ook voor zorgen dat er geen (regen) water in de behuizing komt.
Ik heb een ontwerpje gemaakt voor een pijpje met een diameter van ca. 20mm, waar een en ander in ondergebracht kan worden.

Hierboven een zogenaamde exploded view van mijn 3D ontwerpje. De as (3), een M3-schroefdraad, is in de afbeelding kort, maar is in het echt langer: de kap met de windvaan vormt een vast geheel met deze as. Op de as onderdeel 5 waarop, in de uitsparingen, de magneten (in het huidige ontwerp 2 stuks) gemonteerd worden. In onderdeel 2 zie je de uitsparingen voor de vier A3144’s: de pootjes worden om het onderdeel heen gebogen en komen uiteindelijk klem te zitten tussen onderdeel 2 en het omhulsel 1. In onderdeel 2 en in 6 worden de twee lagers geklemd (niet getoond in de afbeelding). In het hart van de lagers worden de twee “as-verdikkings-onderdeeltjes” (4) gemonteerd. De onderdelen 3, 4 en 5 vormen samen met de binnenste ring van de lagers (en de eerder genoemde kap met windvaan) één geheel. Wanneer dit alles is samengesteld zorgt het omhulsel (1) ervoor dat alles bij elkaar blijft. Deel 1, 2 en 6 vormen dan ook één geheel.

Hierboven zijn de geprinte onderdelen in de estfase te zien. Te herkennen zijn de as (3)In onderdeel 6 zie je nog net de pinnen van een van de drie A3144’s te zien. Aan de rechterkant zijn de pinnen van een andere A3144 verbonden met de ESP32. Het ronddraaien van de as schakelt, zoals verwacht, de GPIO0 laag. In onderdeel 2 kan je in het midden een van de lagers, waarin de as (3) ronddraait, zien.
Wanneer al de pinnen van de A3144’s aangesloten zijn kan onderdeel 1 samen met onderdeel 2, over onderdeel 6 naar beneden geschoven worden. Op de achtergrond de ESP32-C Super Mini.

Uiteindelijk gaan er 6 draadjes naar de ESP32: van elke A3244 een output en twee voor de voeding (5V en gnd).

De kap met windvaan
Hierboven het ontwerp van de kap en de windvaan. De horizontale as (1) waarop de onderdelen komen te zitten: de windvaan (3) en het gedeelte waarin de verticale as met de magneten wordt gemonteerd (2). Op het einde van de as komt nog een mooi puntje die de windrichting aanwijst.

De horizontale as is een aluminium buisje met een diameter van 6mm. Om zo’n buisje netjes op maat te zagen heb ik ooit een soort verstekbakje gemaakt.

Het zaagblad gaat langs een paar lagers voor de geleiding en bescherming van het bakje. Het idee hoe dit te maken kreeg ik van Totem, een soort moderne Meccano met kunststof onderdelen en metalen verbindingsstukjes.