Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

DIY-Frequenzzähler – Bis 6,5 MHz mit Arduino Nano messen

Komponenten und Zubehör

Bauteil Menge
Arduino Nano R3 1
LCD 16x2 (Standard) 1
NPN-Transistor (Allzweck) 1
Schieberschalter 1
Taster 1
Widerstände, Kondensatoren, Dioden 1 Satz

Benötigte Werkzeuge

Apps und Online-Dienste

Über dieses Projekt

Das im Video gezeigte Gerät ist ein Frequenzzähler auf Basis eines Arduino Nano. Er misst Frequenzen von Rechteck-, Sinus- und Dreieckssignalen.

Messbereich: Wenige Hertz bis 6,5 MHz.
Messzeit-Intervalle: 0,1 s, 1 s und 10 s (umschaltbar).

Bei reinen Rechtecksignalen entfällt der Formverstärker – das Signal geht direkt an Digitalpin 5 (Timer1-Eingang).

Der Code ist dank der FreqCount-Bibliothek sehr einfach.

Aufbau

Das Gerät besteht aus wenigen Komponenten:

DIY-Frequenzzähler – Bis 6,5 MHz mit Arduino Nano messen

Kalibrierung

Das Instrument ist im gesamten Bereich sehr präzise. Kalibrierung:

  1. Im Arduino-Bibliotheken-Ordner die FreqCount-Bibliothek öffnen.
  2. In FreqCount.cpp folgende Zeilen suchen:
    #if defined (TIMER_USE_TIMER2) && F_CPU == 12000000L
    float correct = count_output * 0.996155;
    
  3. Ersetzen durch:
    #if defined (TIMER_USE_TIMER2) && F_CPU == 16000000L
    float correct = count_output * 1.000000;
    

    Wobei 1.000000 Ihr Korrekturfaktor ist. Kalibrierung durch Anlegen von genau 1 MHz am Eingang.

  4. Datei speichern und Sketch neu auf den Arduino laden.

Zum Schluss wird der Frequenzzähler in ein passendes Kunststoffgehäuse eingebaut – ein weiteres nützliches Laborinstrument.

Code

#include <FreqCount.h> // https://github.com/PaulStoffregen/FreqCount
#include <LiquidCrystal.h>

// LCD: RS, E, D4, D5, D6, D7
LiquidCrystal lcd(12, 11, 6, 4, 3, 2);

void setup() {
  lcd.begin(16, 2);
  pinMode(7, INPUT); // Taster für Intervall-Umschaltung
  FreqCount.begin(1000); // Start mit 1s Gate-Time
}

unsigned long f;
float f0;
int x, n = 3, r;

void loop() {
  // Taster abfragen (Intervall umschalten)
  if (digitalRead(7) == HIGH) {
    n++;
    x = 0;
    delay(100); // Entprellen
  }

  lcd.setCursor(0, 1);
  
  // Intervall wählen
  if (n == 1) { // 0,1 s
    if (x == 0) { FreqCount.begin(100); x = 1; }
    r = -1;
    lcd.print("T = 0.1 s ");
  }
  if (n == 2) { // 10 s
    if (x == 0) { FreqCount.begin(10000); x = 1; }
    r = 1;
    lcd.print("T = 10 s  ");
  }
  if (n == 3) { // 1 s (Standard)
    if (x == 0) { FreqCount.begin(1000); x = 1; }
    r = 0;
    lcd.print("T = 1 s   ");
  }
  if (n > 3) n = 1;

  // Frequenz formatiert anzeigen
  lcd.setCursor(0, 0);
  lcd.print("F = ");

  if (FreqCount.available()) {
    f = FreqCount.read();
    lcd.setCursor(10, 1);
    lcd.print("***");
  }

  // Anzeige je nach Intervall und Frequenzbereich
  if (n == 3) { // 1s Gate
    if (f >= 1000000) { f0 = f / 1000000.0; lcd.print(f0, 6 + r); lcd.print(" MHz"); }
    else { f0 = f / 1000.0; lcd.print(f0, 3 + r); lcd.print(" kHz"); }
  }
  if (n == 1) { // 0,1s Gate
    if (f >= 100000) { f0 = f / 100000.0; lcd.print(f0, 6 + r); lcd.print(" MHz"); }
    else { f0 = f / 100.0; lcd.print(f0, 3 + r); lcd.print(" kHz"); }
  }
  if (n == 2) { // 10s Gate
    if (f >= 10000000) { f0 = f / 10000000.0; lcd.print(f0, 6 + r); lcd.print(" MHz"); }
    else { f0 = f / 10000.0; lcd.print(f0, 3 + r); lcd.print(" kHz"); }
  }

  delay(200);
  lcd.clear();
}

Hinweis: Die FreqCount-Bibliothek (FreqCount-master) muss installiert sein – Download-Link im Code.

Schaltplan

DIY-Frequenzzähler – Bis 6,5 MHz mit Arduino Nano messen

Herstellungsprozess

  1. 4-Bit-Kombinationsschloss mit XOR- & NOR-Gattern entwerfen
  2. Multimeter: Von Analog zu Digital – Ein umfassender Leitfaden
  3. Frequenz- und Phasenmessung in AC-Stromversorgungssystemen
  4. Retro-Numitron-Uhr mit Arduino bauen: Einfach, zuverlässig & energieeffizient
  5. 20-kHz-Arduino-Oszilloskop mit Nokia 5110 LCD – Einfacher DIY-Bau
  6. 37-LED-Roulette-Spiel mit Arduino Nano bauen – Europäisches Layout
  7. DIY ADXL335 Erdbeben-Detektor – Low-Power 3-Achsen-Beschleunigungsmesser-Projekt
  8. DIY Lötkolben-Controller für 862D+ – Präzision & Zuverlässigkeit
  9. Tetris-Spiel mit Arduino Nano auf selbstgebauter 16×8 LED-Matrix
  10. Never Ride Alone – Smarter Fahrrad-Sicherheitsbegleiter mit Sigfox & GPS