Räkna ungefärligt RPM

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
doggy
Inlägg: 18
Blev medlem: 5 januari 2008, 22:24:24
Ort: Örebro

Räkna ungefärligt RPM

Inlägg av doggy »

Om man vill få ut ungefärligt varvtal 0-8000 rpm skulle följande principexempel kunna fungera?
Förstår att det kanske inte blir helt "vetenskapligt" korrekt men
kanske nära nog för lite lek.

Tänkte testa att tjyva in mig på varvtalssignalen i bilen och
räkna/sampla med en Microchip PIC 12F675.

Fråga mig inte vad det blev för slags språk men ni kanske förstår
vad jag menar.


------------------------------------
INTERUPT ON RPM GOES LOW SIGNAL:
SIGNALINCOUNT++;
------------------------------------

START:

SAMPLETIME=1000ms

LOOP:
SAMPLETIME--
TEST SAMPLETIME ZERO SKIP IF ZERO
GOTO LOOP:

SAMPLEDONE:
RPMAPROX=SIGNALCOUNT*60
SIGNALINCOUNT=0
GOTO START:
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Vad ska du med signalen sedan?
Ska det vara en "shift-light"?

Om du vill räkna det "exakt" ska du välja en PIC med CCP-enhet i, då kan du få exakta tal, PIC12F615 och PIC12F683 har det.

Min erfarenhet(!) med detta är även att man ska mäta över ett antal pulser för att få stabil utläsning, i min 245'a dög det bra med att fånga tiden för 4 pulser och sedan räkna om, det blev trevligt och stabilt.
doggy
Inlägg: 18
Blev medlem: 5 januari 2008, 22:24:24
Ort: Örebro

Inlägg av doggy »

Intressant, räknade du utifrån programcountern då?
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Troligen med timersystemet då han skrev CCP-enhet.
optimizer
Inlägg: 74
Blev medlem: 5 juli 2006, 17:35:10
Ort: norrköping
Kontakt:

Inlägg av optimizer »

jag har gjort liknande grejor i bilen och jag gjorde att jag räknade tiden mellan pulserna och på så sätt räknade ut varvtalet. funkade kanon :)
Elektroniskt så tog jag varvtalssignalen som gick ut från ecu'n (fyrkantsvåg +12V) med en spänningsdelare ner till 5V och sen in på en interruptingång i pic'en.
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

CCP betyder Compare - Capture - PWM och är en bit hårdvara som man kan mäta tiden mellan 2 flanker med bra noggrannhet.

Sedan är RPM = Faktor_X/tiden.

Detta system har jag använd sedan länge, jag gjorde min första trip-dator 1993 eller 1994 och använde det princip redan då.

För varje puls får man då en interrupt och hårdvaran sparar ett 16 bitars värde som anger tiden. Sedan får man göra vad man måste göra med det värde och resten är enkel.

Men om du ska ha det som en varv-gräns avkänning duger det fint att du bara jämför tiden med en annan fast tid: är den mätta tiden under är varvet över "det fasta".
Skriv svar