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
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
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
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.
Pingback: Den Frequenzzähler mit LCD Display auf der Platine aufgebaut. | Shelvin – Elektronik ausprobiert und erläutert
Hallo,
hat das einen Grund, warum hier vor FreqCounter.h bei dem include ein Space-Zeichen zuviel ist? (wie im Teil1)
Ansonsten läuft mein C64 nun mit 985.3 Hz und das Bild springt bei meiner Hauppauge USB-Live2 nicht mehr.
Danke
WordPress löscht ansonsten die Library Zeile wenn ich dort kein Leerzeichen schreibe, ich weiss nicht warum. Im Arduino Programm mußt Du es dann raus nehmen.
Hallo, Herr Busse,
ich hoffe, das Thema Frequenzzähler ist nicht erschöpft…
Ich suche eine einfache Möglichkeit einen arduino nano oder uno für die Frequenzzählung im FM UKW Bereich einzusetzen (ein Braun Regie 450 soll eine digitale anzeige bekommen)
Bisher habe ich nur Ihre geniale Seite gefunden, die aber halt nur bis 10Mhz zählt. Ich bräuchte min das 10 fache 😉 Vielleicht können Sie helfen?
Besten Dank im Voraus
Matthias
Für hochfrequente Messungen im 3 stelligen MHz würde sich ein vorgeschalteter Frequenzteiler anbieten, denke ich. Den Teilungsfaktor dann einfach in die Berechnungen des Microcontrollers mit einbeziehen.
Vielleicht war meine Antwort hilfreich für Sie oder sonst wen!
Beste Grüße