DHZ vermogensmeter
|
Berichten: 187
Topics: 6
Lid sinds: May 2022
Bedankt: 73
394 x bedankt in 177 berichten
(16-Mar-2024, 08:37 PM)HugoW1975 schreef: @JanBurp; dank voor je reactie. Ik snap wat je bedoelt, heb de code aangepast. Ik snap nog niet waarom ik iets in een buffer moet plaatsen, en ook niet hoe. Wel valt me op dat jij in je eigen voorbeeld in je eerste post in dit topic wel Millis() gebruikt in je interrupt (eerste link, regel 516). Waarom mag jij dat wel en ik dat niet?
Haha je hebt helemaal gelijk :-) uitlezen van timers kan gewoon wel natuurlijk. Maar een delay zoals eerder genoemd geeft wel problemen. (Was er niet helemaal bij)
Quest 631 - "Als je niet weet waar je heen gaat, kom je er altijd."
Berichten: 207
Topics: 6
Lid sinds: Feb 2024
Bedankt: 17
412 x bedankt in 202 berichten
17-Mar-2024, 12:11 PM
(Dit bericht is het laatst bewerkt op 17-Mar-2024, 12:20 PM door Merijn.)
Hoi Hugo,
als je even het schema rond pin 2 schetst, dan kijk ik wel even mee. Ik denk dat je even moet filteren, maar het kan ook zijn dat het probleem optisch is (spiegelingen of speling bijvoorbeeld).
Er zijn ook allerlei manieren om debouncing in SW te doen, maar ik prefereer een strak signaal.
Globaal verwacht je bij maximaal 200 RPM en 52 tanden zo'n 10000 pulsen per min, dus pakweg 170 Hz. Alles wat veel sneller gaat kan je wegfilteren. Met een beetje mazzel ben je er al met een R en een C.
Bij 170 Hz moet je met trouwens millis() al gaan uitkijken. Dan zitten er maar 6 tikken tussen twee metingen. En millis() meet niet echt milicecondes, maar loopt een fractie trager (1.024 ms). Dat is op zich niet erg, maar wordt elke 42 tikken gecompenseerd, en als dat in je meetinterval valt zit je er wel flink naast. Voor details zie: https://www.arduino.cc/reference/en/lang...me/millis/
Voor dit soort werk moet je bij elke functie die je gebruikt even goed de documentatie lezen. Ik werk meestal dichter op de hardware © en heb het uitgeprinte manuaal van de processor er naast liggen.
Fietser en knutselaar en eventjes niet in vorm. Roets, FlevoRacer en diverse (carbon) zelfbouwers voor 1 of 2 personen
Berichten: 71
Topics: 6
Lid sinds: Feb 2024
Bedankt: 7
148 x bedankt in 70 berichten
Ik ben het geheel met je eens, een schoon signaal is het beste. Ik heb inmiddels 24 pulsen per omwenteling van het hoofdtandwiel, geen 52 meer.
Ik heb deze voor het tellen van de spaakjes van het kleine tandwieltje:
https://www.amazon.nl/dp/B07D924JHT
Het ding zit aan 0 (GND) en 5V (VCC) en geeft een 5V signaal als je boven een ingestelde waarde komt (potmetertje). Ik zit eraan te denken om de LED aan de ene kant, en de sensor aan de andere kant van het wieltje te zetten. Dan kan hij door het wieltje heen kijken, geen weerspiegeling opvangen.
Hugo
Berichten: 207
Topics: 6
Lid sinds: Feb 2024
Bedankt: 17
412 x bedankt in 202 berichten
17-Mar-2024, 12:42 PM
(Dit bericht is het laatst bewerkt op 17-Mar-2024, 12:48 PM door Merijn.)
Dit zou ook kunnen.
https://www.tinytronics.nl/nl/sensoren/o...odule-10mm
Ik kan van dat ding van jou geen schema vinden. Er zit een comparator op en misschien iets van filtering gezien de C’s. Maar aan zo’n printje is dat lastig te zien.
De optiek moet wel beter. En dan een multimeter er aan en heel langzaam het wieltje draaien om te kijken wat er gebeurd. Zonlicht kan je straks ook nog parten spelen, net als vervuiling. Vandaar dat ik die magneet voorstelde. Reed contact kan je rechtstreeks tussen pin en massa hangen als je de interne pulk-up activeert, eventueel met een extra c en r als filter.
Fietser en knutselaar en eventjes niet in vorm. Roets, FlevoRacer en diverse (carbon) zelfbouwers voor 1 of 2 personen
Berichten: 71
Topics: 6
Lid sinds: Feb 2024
Bedankt: 7
148 x bedankt in 70 berichten
17-Mar-2024, 12:52 PM
(Dit bericht is het laatst bewerkt op 17-Mar-2024, 01:03 PM door HugoW1975.)
Heb je zelf ervaring met die lichtsluis? Ik wil niet in hetzelfde wak vallen. Ik zat er nog aan te denken of er niet een pull-up of pull-down weerstand nodig is, maar dat lijkt me toch niet met zo'n module. Staat ook niet in de gebruiksaanwijzing.
Een Reed-contact op 80Hz vind ik wel spannend, eerlijk gezegd. Voor mij is het een glazen buisje met twee contactpunten erin die door de passerende magneet tegen elkaar getrokken worden. Of is daar inmiddels al iets beters solid state voor?
(En even tussendoor iets anders; ik zie in je handtekening dat je een FlevoRacer hebt. Ik wil zoiets misschien als woon-werk racer gaan bouwen, tekeningen zijn gratis te downloaden (en ben ik naar 3D aan het overzetten). Is dat wat, zo'n fiets?)
Hugo
Berichten: 1.908
Topics: 57
Lid sinds: Dec 2020
Bedankt: 28449
2782 x bedankt in 1240 berichten
Misschien de Flevo racer zijn eigen draadje geven.
Voornaamste fiets(en): Carbon Strada 220 - Whike - (Flevo bike, Flevo trike, beide alle wielen 20" en knik-kantel besturing, beide te koop maar hoeven niet weg.)
Berichten: 338
Topics: 13
Lid sinds: Jan 2023
Bedankt: 117
592 x bedankt in 303 berichten
Kan je niet een magnetische sensor gebruiken?
Hal sensor of reedrelais?
Berichten: 207
Topics: 6
Lid sinds: Feb 2024
Bedankt: 17
412 x bedankt in 202 berichten
Met deze specifieke Sluis niet, ik ontwerp de hardware meestal zelf. Optische sensoren buiten in een vieze omgeving zijn link, daar ben ik wel eens mee gestruikeld. Magnetisch is veel betrouwbaarder. Als je een oude bedrade snelheidsmeter hebt moet je die eens proberen. Die hoeft niet op 180 hz, neem een wat groter wieltje of zet hem (bij 1 voorblad) op het crankstel.
Een pull up voor dit bordje is niet nodig, dat regelt die comparator voor je.
Fietser en knutselaar en eventjes niet in vorm. Roets, FlevoRacer en diverse (carbon) zelfbouwers voor 1 of 2 personen
Berichten: 71
Topics: 6
Lid sinds: Feb 2024
Bedankt: 7
148 x bedankt in 70 berichten
17-Mar-2024, 02:06 PM
(Dit bericht is het laatst bewerkt op 17-Mar-2024, 02:37 PM door HugoW1975.)
Even anders denken;
Het doel is om de metingen te middelen per omwenteling van de trapas. Hoe is ondergeschikt, als dat maar gebeurt. Want tijdens de omwenteling fluctueert die flink, door de stand van de krukken ten opzichte van je beenkracht. OK.
Als we uitgaan van max 120 omwentelingen per minuut, dan zijn dat 2 omwentelingen per seconde. Als ik 24 metingen per omwenteling wil doen, daar was ik eerder tevreden mee, heb ik 48 metingen per seconde nodig. Zeg even 50, voor het gemak, 0,02 seconde per meting. Da's niet zo moeilijk voor de Arduino. En ik plaats alleen een passeersensor op het frame die één van de twee krukken ziet. Dan wordt de code een stuk simpeler:
koppelsensor meten;
koppelwaarde bij vorige koppelwaarde optellen;
teller met eentje verhogen;
0,02 seconde pauze;
etc.
Totdat de kruksensor een seintje geeft (isr), dan;
totale koppelwaarde delen door het opgebouwde tellergetal (en omrekenen naar vermogen);
koppelwaarde terugzetten naar nul;
teller terugzetten naar nul;
berekend vermogen naar disply gooien;
En misschien iets dat als we na 100 metingen nog steeds geen isr hebben, de boel ook resetten en zo;
Zo heb ik minimaal 50 metingen per omwenteling, meer als ik langzamer trap (en ik cruise meestal rond de 90, dan heb ik 67 metingen per omwenteling) en minder als ik boven de 120 omwentelingen trap. Als ik er 200 zou trappen is dat nog steeds 30 metingen per omwenteling van de trapas. Minder accuraat, maar ook niet heel slecht.
Op deze manier wordt de interupperende maar één keer per omwenteling gevraagd, verder void-loopt het ding lekker zelf. Ik denk dat ik dit eens ga uitwerken in code.
Hugo
Berichten: 207
Topics: 6
Lid sinds: Feb 2024
Bedankt: 17
412 x bedankt in 202 berichten
Dat is wat ik bedoelde met de sensor op de crank. Met een enkel voorblad gaat dat goed. Met een dubbel niet, want je hebt de snelheid van de ketting nog nodig om het vermogen te bepalen ( P = kettingkracht x kettingsnelheid) omdat je op de ketting meet.
Je kan trouwens simpel de tijdsduur van de vorige omwenteling gebruiken om het aantal metingen in de volgende omwenteling te bepalen zodat je altijd ongeveer evenveel meet.
Overigens is in je vorige oplossing de arduino niet de beperking, die is snel zat. Het is de sensor die je moet oplappen.
Fietser en knutselaar en eventjes niet in vorm. Roets, FlevoRacer en diverse (carbon) zelfbouwers voor 1 of 2 personen
Berichten: 71
Topics: 6
Lid sinds: Feb 2024
Bedankt: 7
148 x bedankt in 70 berichten
Ik heb nog een Hall effect sensortje gevonden in mijn doosje rare dingen, nu nog wat magneetjes scoren. Als ik 6 magneetjes op het kleine wieltje kwijt kan en dat geeft schone signalen, ga ik met versie 2 verder (versie 1 was zonder interrupt). Zo niet, dan werk ik versie drie uit met één magneetje op de kruk van één van de trappers.
Hugo
Berichten: 338
Topics: 13
Lid sinds: Jan 2023
Bedankt: 117
592 x bedankt in 303 berichten
Waarom zoveel impulsen meten per omwenteling? Gewoon met maximale frequentie die krachtsensor sampelen, en dan eens per omwenteling integreren en middelen.
Je moet het vermogen sowieso middelen over een hele omwenteling.
|
Gebruikers die dit topic lezen: 7 gast(en)
|
Welkom
|
Je moet jezelf aanmelden voor je een bericht kunt plaatsen.
|
|