Frequenzzähler mit dem Arduino Uno Teil 2

Die Frequenz wird zu besseren Lesbarkeit mit Dezimalpunkten ausgegeben.

Anstelle von 123445566 Hz wird nun 123.445.566 Hz ausgegeben.

Die Software

Hier der Arduino Programmcode mit Kommentaren:

// Arduino Uno Frequenzzähler bis ca. 5 MHz
// Eingangsspannung muss an Pin 5 mit 5V Pegel ankommen.
// 
// Beschreibung und Library unter:
// http://interface.khm.de/index.php/lab/experiments/arduino-frequency-counter-library/
//
// Matthias Busse 12.04.2014 Version 1.1

#include < FreqCounter.h>

long int rfreq, mfreq;               // rfreq=Rechenfrequenz, mfreq=Messfrequenz
int hz=0, khz=0, mhz=0;              // Hz, kHz und MHz je 3 Ziffern
char sfreq[15];                      // sfreq=Stringfrequenz

void setup() {
  Serial.begin(38400);               // Serielle Ausgabe
  Serial.println("Frequenz Zaehler V 1.1");
}

void loop() {
  FreqCounter::f_comp= 8;              // Kompensation einstellen
  FreqCounter::start(1000);            // Zähler starten für 1000ms
  while (FreqCounter::f_ready == 0)    // warten bis der Zähler fertig ist 
  mfreq=FreqCounter::f_freq;           // Ergebnis lesen
  rfreq=mfreq;
  hz=rfreq-(int((rfreq/1000))*1000);   // Hz ermitteln
  rfreq=(rfreq-hz)/1000;               // kHz ermitteln
  khz=rfreq-(int((rfreq/1000))*1000);
  rfreq=(rfreq-khz)/1000;              // MHz ermitteln
  mhz=rfreq-(int((rfreq/1000))*1000);
  if(mfreq<1000)                       // Hz in String schreiben
    sprintf(sfreq,"        %3d Hz",hz);
  if((mfreq>=1000)&&(mfreq<1000000))   // kHz.Hz in String schreiben
    sprintf(sfreq,"    %3d.%03d Hz",khz,hz);
  if(mfreq>999999)                     // MHz.kHz.Hz in String schreiben
    sprintf(sfreq,"%3d.%03d.%03d Hz",mhz,khz,hz);
  Serial.println(sfreq);               // und ausgeben
}

von Matthias Busse

Hilfreiche Links
sprintf() Formatierung
< Frequenzzähler mit dem Arduino Uno Teil 1
> Frequenzzähler mit LCD Display

4 Gedanken zu „Frequenzzähler mit dem Arduino Uno Teil 2

  1. Max Katzberg

    Hallo Matthias Busse
    Diesen Frequenzzaehler würde ich gerne nachbauen aber in dem sketch finde ich
    keine Zahl 5 für den Eingang da ich Pin 5 für meine LCD Anzeige brauche
    muss ich für den Eingang einen anderen Pin nehmen.
    Es gibt ja hier so viele schöne Sachen aber ich bin ein ziemlicher
    Neuling für den Arduino.
    Viele Grüsse von Max Katzberg aus Moers

    Antworten
    1. admin Beitragsautor

      Hallo Max,

      Pin 5 muss hier der Eingangspin für die Frequenzzählung sein, das gibt die Library FreqCounter.h vor.
      Ggf. solltest Du das Displays auf einen anderen Pin legen. Das ist häufig gut machbar.

      Matthias

      Antworten
  2. Max Katzberg

    Danke für die Antwort den Pin 5 habe ich schon in 3 umgeschriben und
    das Gerät funktioniert wunderbar
    Grüße Max

    Ich habe immer in meinem Postfach nach einer Antwort gesehen
    jetzt weiss ich bescheid. Aber das ist ja ganz priema das man auch was in Deutsch
    hat was den Arduino betrifft,hier kann ich noch was lernen.Ich bin ja schon Rentner und
    72 Jahre und habe mit Arduino erst angefangen macht mir aber Spass.

    Antworten
  3. Pingback: Den Frequenzzähler mit LCD Display auf der Platine aufgebaut. | Shelvin – Elektronik ausprobiert und erläutert

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.