Tutorials

 
Kontakt| Impressum
   
Beispiel: Frequenzmessung mit dem PIC 16F84

1 Allgemeines

2 Die Hardware

3 Software

4 Erzielbare Genauigkeit

5 Schaltungsvorsatz zur Drehzahlmessung

6 Download

1 Allgemeines

In der Messtechnik kommt es häufig vor, dass Sensoren die Messgrösse in eine Frequenz, welche einen direkten Zusammenhang - zumeist proportial - zur Messgrösse hat, umwandeln. Zwei grosse Vorteile, die sich sich daraus ergeben sind, dass die Übertragung des Messignals über längere Distanzen unproblematisch ist und, dass sich Frequenzen mit Hilfe von Mikrocontrollern sehr einfach und genau messen lassen. In diesem Beispiel wird gezeigt, wie man mit einem PIC16F84 eine einfach Frequenzmessung realisieren kann. Das Beispiel wurde so gehalten, damit man mit die Schaltung mit geringem Aufwand nachbauen kann.

2. Die Hardware

Zur Hardware der zur Frequenzmessung teilt sich grob in vier Teile auf. Diese sind:

  1. der PIC 16F84 mit einem Reset-Taster, Oszillator, zwei Konensatoren und einem 10K-Widerstand,
  2. die Eingangsschutzschalttung, mit zwei Dioden (z.B. 1N414) und einem Vorwiderstand,
  3. einem zweistellinge LCD-Display mit zwei Widerständen zur Kontrasteinstellung
  4. und schliesslich der 5V-Stromversorgung, im Bild nur durch das +5V- und das GND-Symbol dargestellt.

Die Hardware für die Schaltung ist Abbildung 1 dargestellt.

Abbildung 1: Schaltplan für für den Aufbau einer einfachen Frequenzmessung mit dem PIC 16F84

Die Eingangschutzschaltung verhindert der Pic nicht beschädigt wird, wenn eine zu kleine oder eine zu grosse Spannung am Frequenzeingang anliegt. Wenn sichergestellt ist, dass sich die Eingangsspannungen zwischen >-0.3V und < 5V liegen, dann kann die Schaltung auch ohne Eingangsschutzschaltung betrieben werden.

An die Spannungsversorgung sind keine besonderen Anforderungen gerichtet. Benötigt wird eine Gleichspannungsquelle mit 5V Gleichstrom und einer Strombelastbarkeit von ca. >100mA.

Das LCD-Display wird im 4-Bit-Mode betrieben. Daher werden nur vier Datenleitungen zum Display geführt. Als LCD-Display dient ein "Standard"-LCD-Display, welches man im Elektronik-Laden um ein paar Euro kaufen kann.

3 Die Software

Die Software für die Frequenzmessung ist in der Sprache C geschrieben. Als Compiler diente PicAnt (jetzt Sourceboost). Der Compiler ist recht preiswert. Trotzdem kann man mit ihm vernünftig arbeiten.

 

Das Programm teilt lässt sich in drei Teile aufteilen:

  1. die Interrupt-Service-Routine, deren Aufage darin besteht, die Frequenz zu messen
  2. das Hauptprogramm, dessen Aufgabe darin besteht das Ergebnis der Messung auszugeben und
  3. das Programmodul zur Ansteuerung des LCD-Displays (hier nicht dargestellt), da es die Freqenzmessung im Vordergrund steht.

3.1 Der Sourcecode

Abbildung 2: Interrupt-Serivice-Routine zur Messung der Impulse

Abbildung 3: Hauptprogramm zur Ausgabe der gemessenen Frequenz

4. Messprinzip

Die Messung der Freuquenz läuft nach dem in Abbildung 4 dargestellten Prinzp ab. Nachem eine neue Messung gestartet wird, wird jedes mal, wenn sich der Frequenzeingang von logisch "0" auf logisch "1" ändert (positive Taktflanke), die Zählvariable AnzRB0Int um den Wert 1 erhöht.

Abbildung 4: Prinzip der Frequenzmessung

Wenn man die Zählung während einer definierten Zeit durchführt, dann errechnet sich die durchschnittliche Frequenz aus:

Abbildung 5: Formeller Zusammenhang zwischen der Messfrequenz und der Anzahl Impulse im Messfenster und er Dauer des Messfensters

Da im gezeigten Beispiel mit einem Zeitfenster von 1s gearbeitet wird, ergibt sich die Messfrequenz unmittelbar aus der Anzahl der Impulse.

4 Erzielbare Genauigkeit

Ein grosser Vorteil, dieser Art der Frequenzmessung ist, dass sie sehr einfach umgesetzt werden kann. Für viele Fälle reicht die erreichte Genauigkeit auch aus. Wie man aus der Formel in Abbildung 5 erkennen kann, hängt die Genauigkeit des Messergebnisses von der Anzahl der gemessenen Impulse im Messfenster und von der Länge des Messfensters, also der Dauer der Messung, ab.

4.1 Ungenauigkeit in der Anzahl der gemessenen Impulse

Im Logikdiagram in Abbildung 4 sieht man, dass die Messung ungeachtet davon, ob ein Impuls gerade anfängt, ob man dazwischen drin liegt oder ob er gerade endet beginnt. Das gleiche gilt auch für das Ende der Messung. Es ist im ungünstigsten Fall deshalb möglich, dass eine Messung kurz nach einer positven Flanke am Frequenzeingang beginnt und kurz vor einem neuen Impuls endet. Daraus ergbit sich im schlimmsten Fall eine Ungenauigkeit von genau von +-1 Impuls.

4.2 Ungenauigkeit in der Länge des Messfensters

Owohl die Mikroprozessoren zumeist mit einem sehr genauen Quarz ausgestattet sind, sind auch diese nicht ganz genau. So hängt die Frequenz des Quarzes u.a. von der Temperatur ab. Viel mehr macht aber die Ungenauigkeit durch die Software aus, da jeder Softwarebefehl eine bestimmte Zeit dauert. So vergeht eine bestimmte Zeit, wenn das Hauptprogramm durch einen Timerüberlauf unterbrochen wird, die Interrupt-Serviceroutine aufgerufen und ermittel wird, ob eine Sekunde abgelaufen ist.

Wenn sehr hohe Genauigkeiten gefordert sind, dann werden deshalb andere Ansätze verfolgt. Eine wesentliche Verbesserung liesse sich hier schon alleine durch Änderung der Software (u.a. Programmierung in der Maschinensprache und ein anderes Messprinzip) erreichen. Hier soll aber darauf nicht weiter eingegangen werden. Mit der gleichen Hardware liessen sich aber sehr hohe Frequenzen im MHz-Bereich mit grosser Genauigkeit messen.

4.3 Genauigkeit

Mit der hier gezeigten Schaltung und Software können aber Eingangsfrequenzen im Bereich von 1 bis 25KHz mit einer Genauigkeiten von <1% gemessen werden. Das reicht für viele Anwendungsfälle aus. Die hier gemachten Angaben stammen aus einer Vergleichsmessung mit einem professionellen Freuqenzmessgerät.

5 Schaltungsvorsatz für die Drehzahlmessung

Eine mögliche Anwendung für die Frequenzmessung ist beispielsweise die Messung der Drehzahl eines Motors oder die Implementierung eines Fahrrad-Tachometers. Zu diesem Zweck ist ein Sensor notwendig, welcher der Schaltung die Spannungsimpulse liefert. Eine einfache Möglichkeit ist, wenn man dazu einen Hall-Sensor verwendet, den man beispielsweise in vielen Elektronikläden zu einem Preis von etwa 2 Euro erhält. Was man dann noch braucht is ein kleines Stück eines Magneten. Deses wird am rotierenden Messobjekt, z.B. an der Radnabe, befestigt. Die in Abbildung 6 dargestellte Schaltung zeigt den Hardwareaufbau.

Abbildung 6: Erzeugung von Spannungsimpulsen mit Hilfe eines Hall-Sensors

4 Download

Nr Type downloadbares File Beschreibung
0 .gif Schaltplan Schaltplan für die Frequenezmessschaltung (Bild wie oben dargestellt)
1 .zip Sourcode und Hex-File Programmcode für die Frequenzmessung

Impressum | Haftungsausschluss

Version 1.0, ©Gerhard Burger 2004-2013, alle Rechte vorbehalten, letzte Änderung 09.11.2013