Drehzahlmessung mit PIC18

Gast #1768931
Lesenswert?

Hallo,
ich möchte mit dem PIC18F4580 die Drehzahl eines Motors erfassen.
Drehzahlbereich 0-2000 RPM.
An derm Motor sitzt ein Näherungsschalter, der 2 Impulse pro Umdrehung 
ausgibt.
Ich sehe folgende 2 Möglichkeiten, weiß aber nicht, welche besser ist:

Lösung 1. Das Signal auf einen Interupt Pin (INT0-INT2) geben. Dann die 
Zeit zwischen 2 Impulsen messen.

Lösung2: Die Impulse als Taktquelle für einen Timer geben.

Nachteil: Lösung1 ist bei hohen Drehzahlen zu ungenau, Lösung2 bei 
kleinen Drehzahlen zu ungenau.

Einen hochauflösenden Encoder mit z.B 1024 Impulsen pro Umdrehungen kan 
ich leider nicht einsetzen.

Bin für Hinweise sehr dankbar.
Gruß Dirk
#1768935
Lesenswert?

DirkF schrieb:
> Lösung 1. Das Signal auf einen Interupt Pin (INT0-INT2) geben. Dann die
> Zeit zwischen 2 Impulsen messen.

Was spricht gegen ein festes Zeitfenster, in dem Du die Anzahl der Pulse 
erfasst und daraus dann die Drehzahl errechnest?

Du kannst auch mehrere Verfahren gleichzeitig laufen lassen und die 
Ergebnisse dann in Abhängigkeit vom Drehzahlbereich auswählen.
Gast #1769496
Lesenswert?

Hallo,
vielen Dank für die zahlreichen Hinweise.
Die Software Umsetzung mache ich später, mir ging es jetzt erst mal 
darum, wie ich das Layout entwerfen muß, also an welchen Pin das Signal 
dran muß.
Ich denke mal, es ist der Pin CCP1 (Pin 17 beim 18F4580).
Langeweile hat mein PIC leider nicht, da er noch andere Werte erfasst 
und dann alles über den Profibus zur Siemens S7 schaufelt.

Wäre schön, wenn jemand ein kurzes Beispielprogramm zum CCP hat.
Gruß Dirk
#1770275
Lesenswert?

DirkF schrieb:

> Nachteil: Lösung1 ist bei hohen Drehzahlen zu ungenau, Lösung2 bei
> kleinen Drehzahlen zu ungenau.

Das ist allerdings prinzipbedingt so.
Man kann aber ausrechnen, bei welcher Drehzahl die Grenze liegt.
Was spricht daher dagegen, beide Messungen zu machen und je nach 
Messergebnis dann das eine bzw. das andere Ergebnis zu benutzen.
Gast #1771072
Lesenswert?

DirkF schrieb:
> Nachteil: Lösung1 ist bei hohen Drehzahlen zu ungenau, Lösung2 bei
> kleinen Drehzahlen zu ungenau.

Also: bei 1us Auflösung fürs CCP hat man bei 2 Pulsen / Umdr und 2000 
RPM 15000 Counts zwischen den Pulsen im CCP-Register. (also ca 0,01% 
Auflösung). Ich zweifle mal daß die Drehzahl so stabil ist daß man eine 
höhere Auflösung braucht. Falls doch kann man jederzeit mehrere Pulse 
ausmitteln.

Gruß Anja
Gast #1772392
Lesenswert?

DirkF schrieb:
> 1 % Genauigkeit reich mir vollkommen.

Ich würde trotzdem immer eine volle Umdrehung messen (ggf. als 
gleitender Mittelwert aus 2 aufeinanderfolgenden Abständen) falls die 
beiden Markierungen nicht ganz exakt 1/2 Umdrehung auseinander sind oder 
das Geberrad unrund ist.

Gruß Anja

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren