Waardering:
  • 0 stemmen - gemiddelde waardering is 0
  • 1
  • 2
  • 3
  • 4
  • 5
DHZ vermogensmeter
#53
(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? Wink

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
Antwoord }
Bedankt door: Willeke_IGKT
#54
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
Antwoord }
Bedankt door: Willeke_IGKT
#55
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
[Afbeelding: 71ZNOJub6dL._SL1500_.jpg]

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
Antwoord }
Bedankt door: Willeke_IGKT
#56
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
Antwoord }
Bedankt door:
#57
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
Antwoord }
Bedankt door: Willeke_IGKT
#58
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.)
Antwoord }
Bedankt door:
#59
Kan je niet een magnetische sensor gebruiken?
Hal sensor of reedrelais?
Antwoord }
Bedankt door: Willeke_IGKT
#60
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
Antwoord }
Bedankt door: Willeke_IGKT
#61
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
Antwoord }
Bedankt door: Willeke_IGKT
#62
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
Antwoord }
Bedankt door: Willeke_IGKT
#63
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
Antwoord }
Bedankt door: Willeke_IGKT
#64
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.
Antwoord }
Bedankt door: Willeke_IGKT


Ga naar locatie:


Gebruikers die dit topic lezen: 1 gast(en)
Welkom
Je moet jezelf aanmelden voor je een bericht kunt plaatsen.

Gebruikersnaam:


Wachtwoord:





Nieuwe berichten
Vandaag ben ik niet blij omdat.....
Later we vooral er n...Hardloper — 02:37 PM
Velion / Code naam: VM45
10 min langer de ...Hardloper — 02:35 PM
Zelfbouw voorwiel aangedreven ligfiets ...
Lang leve ducttape...GHOOGEN — 02:30 PM
Quest xs nr 13
De Milan is een wa...Gideonaut — 01:12 PM
Zelfbouw voorwiel aangedreven ligfiets ...
Oh, je kan je zadel ...LigfietsWilsum — 01:11 PM
Zelfbouw voorwiel aangedreven ligfiets ...
Lang leve ducttape. ...Fietsbennie — 12:40 PM
Zelfbouw voorwiel aangedreven ligfiets ...
Met het kleine ac...GHOOGEN — 12:34 PM
Quest xs nr 13
En toch zul je er ...Wim -de roetsende — 12:06 PM
Utrechtse Heuvelrug - Zuid Limburg
Mooie foto's Martin....Fietsbennie — 11:17 AM
Quest xs nr 13
Als ik iets te koo...melle z — 10:16 AM
Vandaag ben ik niet blij omdat.....
Mijn gevoel zegt dat...Wim -de roetsende — 09:44 AM
Quest xs nr 13
Ook speelt missc...Wim -de roetsende — 09:38 AM
Zelfbouw voorwiel aangedreven ligfiets ...
Ik kan er mee ri...Wim -de roetsende — 09:10 AM
Zelfbouw voorwiel aangedreven ligfiets ...
Mijn Flevo ervarin...GHOOGEN — 12:56 AM
Velion / Code naam: VM45
Een multi programm...365cycle — 11:37 PM
Quest xs nr 13
De Milan is een wat ...Jeroen S — 11:28 PM
Velion / Code naam: VM45
Een multi programmeu...Tom Fekkes — 11:23 PM