Frekvensmätning med PIC, räkna eller mäta period?
Frekvensmätning med PIC, räkna eller mäta period?
Anta att jag behöver mäta och logga (över RS232) två pulståg. Frekvensen är olika på båda och max ett par hundra Hz. Vilket är vettigast? Räkna pulser under en sekund, eller tex andvända CCP för att räkna klockpulser/4 under en (eller två) perioder? Det senare är ju snabbare, men hur är det med noggrannheten?
Re: Frekvensmätning med PIC, räkna eller mäta period?
Vad är det du ska mäta ? Frekvens ?
Det beror även på hur ofta du behöver ett mätvärde.
Och hur stabila frekvenserna är över tiden.
Om du mäter en (eller ett par) pulslängder så är risken
att just den pulsen var "onormal". Om du räknar pulser övre en
längre tid så jämnar det ut sig. Det blir inte heller något
problem ifall du har en okänd (eller varierande) duty-cycle.
Det beror även på hur ofta du behöver ett mätvärde.
Och hur stabila frekvenserna är över tiden.
Om du mäter en (eller ett par) pulslängder så är risken
att just den pulsen var "onormal". Om du räknar pulser övre en
längre tid så jämnar det ut sig. Det blir inte heller något
problem ifall du har en okänd (eller varierande) duty-cycle.
Re: Frekvensmätning med PIC, räkna eller mäta period?
Jo, det är en frekvens, från en läsgaffel, dvs rotationshastighet.
Re: Frekvensmätning med PIC, räkna eller mäta period?
Har gjort detta på en labb för länge sedan, och labben ser ut att finnas kvar fortfarande 
http://www.ict.kth.se/courses/IL131V/freq/pk2f62x.htm
Anpassad för kompilatorn CC5X, http://www.bknd.com/cc5x/index.shtml
Labbade lite vidare på detta, med båda varianterna (mäta tid,frekvens) vill jag minnas. Har för mig att labbens setup fungerade från ca 15Hz upp till några kHz med hyfsad noggrannhet.

http://www.ict.kth.se/courses/IL131V/freq/pk2f62x.htm
Anpassad för kompilatorn CC5X, http://www.bknd.com/cc5x/index.shtml
Labbade lite vidare på detta, med båda varianterna (mäta tid,frekvens) vill jag minnas. Har för mig att labbens setup fungerade från ca 15Hz upp till några kHz med hyfsad noggrannhet.
Re: Frekvensmätning med PIC, räkna eller mäta period?
Hur stabil är rotationen ?
Och som sagt, hur ofta behöver du *veta* frekvensen ?
Med vilken precision behöver du mäta frekvensen ?
När du vet det, så ger sig i princip resten av sig självt...
Och som sagt, hur ofta behöver du *veta* frekvensen ?
Med vilken precision behöver du mäta frekvensen ?
När du vet det, så ger sig i princip resten av sig självt...

Re: Frekvensmätning med PIC, räkna eller mäta period?
Perfekt!Har gjort detta på en labb för länge sedan
Jag skulle helst vilja ha 1% noggrannhet. Apparaten är en gammal Sun bakhjulsdynamometer. Ena pulståget är rullarnas hastighet och det andra är proportionellt mot effekten. Anta att man accelererar 0..100 på 6 sekunder tex... Men normalt vid effektmätningar så försöker man hålla effekten någotsånär konstant under ett par sekunder. Hade tänkt logga 1/s ungefär.Hur stabil är rotationen ?
Och som sagt, hur ofta behöver du *veta* frekvensen ?
Med vilken precision behöver du mäta frekvensen ?
Re: Frekvensmätning med PIC, räkna eller mäta period?
Handlar det om rotationshastighet skulle jag mäta tiden över så många pulser som behövs för att få en vettig noggrannhet OCH reaktionstid.
Det blir alltså en kompromiss.
Dels när man räknar pulser under en viss tid så får man väl räkna med att felet blir +/- en halv pulslängd?
Och sen får man fundera över hur snabb reaktionstid man behöver, om hastigheten ändras, räcker det med att få veta det efter en sekund eller behöver man veta det direkt?
Jag skulle kunna tänka mig att den allra bästa lösningen är att faktiskt göra båda sakerna, det blir ju lite PID-regualtor över det hela. Snabb respons på förändringar genom att mäta pulstiden och bra noggrannhet genom att räkna pulser över en längre tid.
Det blir alltså en kompromiss.
Dels när man räknar pulser under en viss tid så får man väl räkna med att felet blir +/- en halv pulslängd?
Och sen får man fundera över hur snabb reaktionstid man behöver, om hastigheten ändras, räcker det med att få veta det efter en sekund eller behöver man veta det direkt?
Jag skulle kunna tänka mig att den allra bästa lösningen är att faktiskt göra båda sakerna, det blir ju lite PID-regualtor över det hela. Snabb respons på förändringar genom att mäta pulstiden och bra noggrannhet genom att räkna pulser över en längre tid.
Re: Frekvensmätning med PIC, räkna eller mäta period?
Jag gillar varianten med tid mellan två pulser dels för att man snabbt får resultat och dels för att den är enkel att koda i mjukvara, tar det för lång tid så lägger man bara på en extra variabel som räknare. Dock är denna metod mindre bra på supersnabba förlopp då koden blir ganska tidkritisk, fast då tror jag man är uppe i nästan MHz.
MEN är det ostabil frekvens så är denna metod i stort sett värdelös om man inte kör många beräkningar efter varandra och medelvärdesbildar och då är det ju enklare att direkt köra med andra metoden dvs räkna pulser.
Har provat som varvräknare och det enda som är svårt är vad man gillar för uppdateringsfrekvens då man kommer se "hoppen" i ökning/minskning varv bli orimligt stora för person X medan för person Y är det helt ok.
MEN är det ostabil frekvens så är denna metod i stort sett värdelös om man inte kör många beräkningar efter varandra och medelvärdesbildar och då är det ju enklare att direkt köra med andra metoden dvs räkna pulser.
Har provat som varvräknare och det enda som är svårt är vad man gillar för uppdateringsfrekvens då man kommer se "hoppen" i ökning/minskning varv bli orimligt stora för person X medan för person Y är det helt ok.
Re: Frekvensmätning med PIC, räkna eller mäta period?
Det finns en bra metod som fungerar för båda ytterligheterna, både snabb och långsam mätfrekvens. Om man utgår från en mättid på t.ex en sekund. Sedan tar man närmast hela antal perioder över eller under det och mäter tiden noggrannt för det antal hela perioder som passar. Genom lämpliga räkneoperationer får man sedan fram rätt frekvens.
Är det långsam mätfrekvens så blir metoden lik att mäta periodtiden, medan vid snabb mätfrekvens så liknar det att räkna antal perioder på en viss gatetid. Vid mellanfrekvenser så blir det ett mellanting. Alla lägen ger bra mätnoggrannhet. Det finns ett namn på metoden men jag kommer inte på det för ögonblicket...
Är det långsam mätfrekvens så blir metoden lik att mäta periodtiden, medan vid snabb mätfrekvens så liknar det att räkna antal perioder på en viss gatetid. Vid mellanfrekvenser så blir det ett mellanting. Alla lägen ger bra mätnoggrannhet. Det finns ett namn på metoden men jag kommer inte på det för ögonblicket...