Fréquencemètre DIY Arduino Nano – Mesure jusqu'à 6,5 MHz
Composants et fournitures
| Composant | Quantité |
|---|---|
| Arduino Nano R3 | 1 |
| Écran LCD 16x2 (standard) | 1 |
| Transistor NPN usage général (ex. 2N2222) | 1 |
| Interrupteur à glissière | 1 |
| Bouton poussoir | 1 |
| Résistances, condensateurs, diodes (pour amplificateur de forme) | 1 lot |
Outils nécessaires
- Fer à souder
Logiciels
- Arduino IDE
À propos du projet
Ce fréquencemètre basé sur Arduino Nano mesure des signaux carrés, sinusoïdaux et triangulaires de quelques Hz à 6,5 MHz.

Trois durées de mesure : 0,1 s, 1 s, 10 s. Pour signaux purement carrés, l'amplificateur de forme n'est pas nécessaire (signal direct sur pin D5).
Le code est simplifié grâce à la bibliothèque FreqCount.
Composition
- Arduino Nano
- Carte amplificateur de forme (shaping amplifier)
- Écran LCD
- Sélecteur forme de signal
- Entrée JACK
- Commutateur durée : 0,1 / 1 / 10 s
Calibration
- Dans le dossier libraries Arduino, ouvrez
FreqCount.cpp. - Trouvez les lignes :
#if defined (TIMER_USE_TIMER2) && F_CPU == 12000000L
float correct = count_output * 0.996155; - Remplacez par :
#if defined (TIMER_USE_TIMER2) && F_CPU == 16000000L
float correct = count_output * 1.000000; - Le facteur 1.000000 est votre correction. Calibrez en injectant 1 MHz à l'entrée.
- Re-téléversez le sketch.
L'instrument est précis sur toute la plage et s'intègre dans un boîtier plastique pour le laboratoire.
Code
#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); // Bouton changement durée
FreqCount.begin(1000); // Défaut 1s
}
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(FreqCount.available()) { f = FreqCount.read(); lcd.setCursor(10,1); lcd.print("***"); }
// Affichage selon plage et durée
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"); }
delay(200); lcd.clear();
}
Bibliothèque FreqCount : Télécharger
Schéma

Processus de fabrication
- Conception d'un verrou à combinaison 4 bits avec portes XOR et NOR
- Multimètres : de l'analogique au numérique — guide complet
- Mesure de la fréquence et de la phase dans les systèmes de puissance AC
- Construire une horloge Numitron rétro avec Arduino : simple, fiable et économe en énergie
- Construire un oscilloscope Arduino 20 kHz sur écran Nokia 5110 – Guide DIY facile
- Créer votre propre jeu de roulette à 37 LED avec Arduino Nano
- Détecteur de séismes DIY ADXL335 – Accéléromètre 3 axes basse consommation
- Contrôleur DIY pour fer à souder 862D+ — Précision et fiabilité
- Never Ride Alone : Système de sécurité vélo intelligent