Sida 1 av 1

Hur gör man för att mäta frekvens med en PIC?

Postat: 29 september 2014, 01:52:04
av Magnus_K
Sitter och klurar på två problem som jag inte riktigt vet hur jag ska bemöta och tänkte fråga eliten om lite tips om vilken riktning jag ska gå.

Just nu PWM-styr jag en fläkt men för att få feedback om hastigheten så behöver jag göra två saker; dels tillfälligt öka till 100% pulskvot och under samma period, mäta frekvensen på en annan ingång. När frekvensen är fastställd ska pulskvoten återgå och frekvensingången kan koppla av.
Jag kommer försöka utföra detta ca 1 gång per sekund.

Det kommer säkert följdfrågor men vilka funktioner använder man till det här?

Om jag får säga vad jag kommit fram till än så länge är att man låter en counter räkna upp, baserad på antal PWM-cykler (tex räkna fallande flanker). När denna counter nått sitt mål (ca 1 gång per sekund) så triggas en interrupt.
I denna interrupt sätts pulskvoten till 100% och man mäter frekvensen genom att ... (där tar det stopp på mina ideér)
När interrupten är över så återställs pulskvoten till tidigare och så går det om igen.

Re: Hur gör man för att mäta frekvens med en PIC?

Postat: 29 september 2014, 07:04:45
av Micke_s
Hur snabb är signalerna. Spontant så hade jag valt en pic med capture campare hårdvara.

Re: Hur gör man för att mäta frekvens med en PIC?

Postat: 29 september 2014, 07:32:18
av Icecap
Typisk är att man använder Capture-funktionen.

Den låter man fånga två pulser och tar sedan tiden mellan dom. Den tid delar man upp i en konstant vars värde beror på capturefrekvens.

Om det är för att styra en fläkt med tacho-puls till ett konstant varvtal 'är det enklare att lösa det hela med interruptstyrning.

Re: Hur gör man för att mäta frekvens med en PIC?

Postat: 29 september 2014, 14:08:40
av Magnus_K
Vad bra. PIC:en jag sitter med har just en Capture-funktion. Ska ta och läsa på om denna.
Fläkten snurrar allt mellan 0-3300 RPM och avger en puls varje varv. Pulserna kommer alltså med en frekvens av 0-55 Hz och 50% pulskvot.

Återkommer antagligen med lite mer frågor. Det brukar sluta så :wink:

Re: Hur gör man för att mäta frekvens med en PIC?

Postat: 29 september 2014, 15:24:42
av Icecap
En frekvens på 0Hz är ingen frekvens...

Och sedan är det frågan för om du verkligen behöver att mäta RPM eller om tiden mellan pulserna räcker. Det sparar ju en uträkning om det går bra.

Det går ju också att om man har ett specifikt RPM som ska mötas att räkna baklänges till vilken tid det ska vara mellan flankerna och sedan räkna, då slipper man räkna för varje flank.

Man kan även mäta tiden över ett antal flanker för att få högre noggrannhet...

Så det finns nog med möjligheter och kombinationer.

Re: Hur gör man för att mäta frekvens med en PIC?

Postat: 29 september 2014, 17:37:25
av Agwan
Jo då, 0Hz är en frekvens det med.

Re: Hur gör man för att mäta frekvens med en PIC?

Postat: 29 september 2014, 17:49:50
av Micke_s
Agwan: Hur vet du att det inte bara är nära 0Hz :badgrin:

Re: Hur gör man för att mäta frekvens med en PIC?

Postat: 29 september 2014, 22:18:21
av Agwan
0 har ju bara en värdesiffra, så nära 0 innefattas. Men hur som helst så är det inget problem med frekvensen 0Hz, oavsett antalet värdesiffror.

Re: Hur gör man för att mäta frekvens med en PIC?

Postat: 29 september 2014, 22:20:19
av Icecap
Agwan: Hur mäter du 0Hz?

Re: Hur gör man för att mäta frekvens med en PIC?

Postat: 29 september 2014, 22:49:07
av ElectricNooB
DC? :wink:

Nämen seriöst: "Finns" det 0Hz? jag menar då f=1/T men T=1/f... :?

Re: Hur gör man för att mäta frekvens med en PIC?

Postat: 29 september 2014, 23:34:13
av Wedge
DC-komponenten i en signal motsvaras av 0 Hz i FFT, så om inte 0 Hz finns så finns det ingen likspänning heller.