DIY Frequentiemeter – Meet tot 6,5 MHz met Arduino Nano
Onderdelen en benodigdheden
| Onderdeel | Aantal |
|---|---|
| Arduino Nano R3 | 1 |
| Adafruit Standaard LCD - 16x2 Wit op Blauw | 1 |
| Algemene NPN Transistor | 1 |
| Schuifschakelaar | 1 |
| Tastschakelaar (Top Actuated) | 1 |
| Weerstanden, condensatoren, diodes | 1 set |
Benodigde tools
- Solderbout
Apps en online diensten
- Arduino IDE
Over dit project
Het apparaat in de video is een frequentiemeter gemaakt met een Arduino Nano. Het meet frequenties van blokgolven, sinusgolven en driehoeksgolven.
Meetbereik: enkele Hertz tot 6,5 MHz. Drie meetintervals: 0,1s, 1s en 10s. Voor alleen blokgolven is geen vormversterker nodig; het signaal gaat direct naar digitale pin 5.
De code is simpel dankzij de FreqCount bibliotheek.
Componenten
- Arduino Nano microcontroller
- Vormversterker printplaat
- LCD display
- Ingangssignaal-vorm selector
- Ingangs JACK
- Meetinterval schakelaar: 0,1 - 1 - 10 seconden

Kalibratie
In de Arduino libraries map, vind de FreqCount library. In FreqCount.cpp zoek:
#if defined (TIMER_USE_TIMER2) && F_CPU == 12000000L
float correct = count_output * 0.996155;
Vervang door:
#if defined (TIMER_USE_TIMER2) && F_CPU == 16000000L
float correct = count_output * 1.000000;
Waar 1.000000 je correctiefactor is. Kalibreer door 1 MHz aan de ingang aan te leggen. Upload daarna een nieuwe sketch.
De frequentiemeter is in een plastic doosje gemonteerd en een handig instrument in de laboratorium.
Code
Hoofdcode (C/C++)
#include <FreqCount.h> // https://github.com/PaulStoffregen/FreqCount
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 6, 4, 3, 2); // RS,E,D4,D5,D6,D7
void setup() {
lcd.begin(16, 2);
pinMode(7, INPUT);
FreqCount.begin(1000);
}
unsigned long f; float f0;
int x, n = 3, r;
void loop() {
if (digitalRead(7) == HIGH) { n++; x = 0; delay(100); }
lcd.setCursor(0, 1);
if (n == 1) { x++; if (x == 1) FreqCount.begin(100); r = -1; lcd.print("T = 0.1 s "); }
if (n == 2) { x++; if (x == 1) FreqCount.begin(10000); r = 1; lcd.print("T = 10 s "); }
if (n == 3) { x++; if (x == 1) FreqCount.begin(1000); r = 0; lcd.print("T = 1 s "); }
if (n > 3) n = 1;
lcd.setCursor(0, 0);
lcd.print("F = ");
if (f >= 1000000 && n == 3) { f0 = f / 1000000.0; lcd.print(f0, 6 + r); lcd.print(" MHz"); }
if (f < 1000000 && n == 3) { f0 = f / 1000.0; lcd.print(f0, 3 + r); lcd.print(" kHz"); }
if (f >= 100000 && n == 1) { f0 = f / 100000.0; lcd.print(f0, 6 + r); lcd.print(" MHz"); }
if (f < 100000 && n == 1) { f0 = f / 100.0; lcd.print(f0, 3 + r); lcd.print(" kHz"); }
if (f >= 10000000 && n == 2) { f0 = f / 10000000.0; lcd.print(f0, 6 + r); lcd.print(" MHz"); }
if (f < 10000000 && n == 2) { f0 = f / 10000.0; lcd.print(f0, 3 + r); lcd.print(" kHz"); }
if (FreqCount.available()) {
f = FreqCount.read();
lcd.setCursor(10, 1);
lcd.print("***");
}
delay(200);
lcd.clear();
}
FreqCount Library
Download: FreqCount-master.zip
Schema
Productieproces
- Bouw een retro Numitron-klok met Arduino: Eenvoudig, betrouwbaar en energiezuinig
- Bouw een 20 kHz Arduino Oscilloscoop op een Nokia 5110 LCD – Eenvoudige DIY Handleiding
- Bouw Je Eigen 37-LED Roulette-spel met Arduino Nano
- DIY ADXL335 Aardbevingendetector – Laag-vermogen 3-as Versnellingsmeter Project
- DIY Soldeerbout-controller voor 862D+ — Precisie & Betrouwbaarheid
- Bouw een Tetris-spel met Arduino Nano op een Zelfgemaakte 16×8 LED-matrix
- MobBob: Bouw Je Eigen Arduino Robot, Naadloos Bestuurd via Android Smartphone
- Nooit meer alleen fietsen: slimme fietsveiligheidssysteem (Never Ride Alone)
- Een 4-Bit Combinatieslot Ontwerpen met XOR & NOR Poorten
- Multimeters: van analog naar digitaal – een uitgebreide gids
- Frequentie en Fase Meten in AC Energiesystemen