- Composants requis:
- Explication du circuit:
- Générateur de signaux utilisant 555 Timer IC:
- Porte de déclenchement Schmitt:
- Explication du code du compteur de fréquence Arduino:
Presque chaque amateur électronique doit avoir été confronté à un scénario où il doit mesurer la fréquence du signal généré par une horloge ou un compteur ou une minuterie. Nous pouvons utiliser un oscilloscope pour faire le travail, mais nous ne pouvons pas tous nous permettre un oscilloscope. On peut acheter du matériel pour mesurer la fréquence mais tous ces appareils sont coûteux et ne conviennent pas à tout le monde. Dans cet esprit, nous allons concevoir un compteur de fréquence simple mais efficace utilisant Arduino Uno et Schmitt trigger gate.
Ce compteur de fréquence Arduino est rentable et peut être facilement fabriqué, nous allons utiliser ARDUINO UNO pour la mesure de la fréquence du signal, UNO est au cœur du projet ici.
Pour tester le fréquencemètre, nous allons fabriquer un générateur de signal factice. Ce générateur de signal factice sera réalisé en utilisant une puce de minuterie 555. Le circuit de minuterie génère une onde carrée qui sera fournie à l'UNO pour le test.
Avec tout en place, nous aurons un fréquencemètre Arduino et un générateur d'onde carrée. Arduino peut également être utilisé pour générer d'autres types de formes d'onde comme l'onde sinusoïdale, l'onde en dents de scie, etc.
Composants requis:
- 555 minuterie IC et 74LS14 Schmitt déclenchent la porte ou PAS la porte.
- Résistance 1K Ω (2 pièces), résistance 100Ω
- Condensateur 100nF (2 pièces), condensateur 1000µF
- Écran LCD 16 * 2,
- Pot 47KΩ,
- Breadboard et quelques connecteurs.
Explication du circuit:
Le schéma de circuit de la mesure de fréquence à l'aide d'Arduino est illustré dans la figure ci-dessous. Le circuit est simple, un écran LCD est interfacé avec Arduino pour afficher la fréquence mesurée du signal. «Wave Input» va au circuit du générateur de signaux, à partir duquel nous transmettons le signal à Arduino. Une porte de déclenchement Schmitt (IC 74LS14) est utilisée pour garantir que seule une onde rectangulaire est envoyée à Arduino. Pour filtrer le bruit, nous avons ajouté deux condensateurs sur l'alimentation. Ce fréquencemètre peut mesurer des fréquences jusqu'à 1 MHz.
Le circuit du générateur de signaux et le déclencheur de Schmitt ont été expliqués ci-dessous.
Générateur de signaux utilisant 555 Timer IC:
Tout d'abord, nous parlerons du générateur d'ondes carrées basé sur 555 IC, ou devrais-je dire 555 Astable Multivibrator. Ce circuit est nécessaire car, avec le fréquencemètre en place, nous devons avoir un signal dont la fréquence nous est connue. Sans ce signal, nous ne pourrons jamais dire le fonctionnement du fréquencemètre. Si nous avons un carré de fréquence connue, nous pouvons utiliser ce signal pour tester le fréquencemètre Arduino Uno et nous pouvons le modifier pour des ajustements de précision, en cas d'écart. L'image du générateur de signaux utilisant 555 Timer IC est donnée ci-dessous:
Le circuit typique de 555 en mode Astable est donné ci-dessous, à partir duquel nous avons dérivé le circuit générateur de signal donné ci-dessus.
La fréquence du signal de sortie dépend des résistances RA, RB et du condensateur C. L'équation est donnée comme suit:
Fréquence (F) = 1 / (Période de temps) = 1,44 / ((RA + RB * 2) * C).
Ici RA et RB sont des valeurs de résistance et C est la valeur de capacité. En mettant les valeurs de résistance et de capacité dans l'équation ci-dessus, nous obtenons la fréquence de l'onde carrée de sortie.
On peut voir que RB du diagramme ci-dessus est remplacé par un pot dans le circuit générateur de signaux; ceci est fait afin que nous puissions obtenir une onde carrée à fréquence variable à la sortie pour de meilleurs tests. Pour plus de simplicité, on peut remplacer le pot par une simple résistance.
Porte de déclenchement Schmitt:
Nous savons que tous les signaux de test ne sont pas des ondes carrées ou rectangulaires. Nous avons des ondes triangulaires, des ondes dentaires, des ondes sinusoïdales, etc. L'UNO étant capable de détecter uniquement les ondes carrées ou rectangulaires, nous avons besoin d'un appareil capable de transformer tous les signaux en ondes rectangulaires, nous utilisons donc Schmitt Trigger Gate. La porte de déclenchement de Schmitt est une porte logique numérique, conçue pour les opérations arithmétiques et logiques.
Cette porte fournit une sortie basée sur le niveau de tension d'entrée. Un déclencheur de Schmitt a un niveau de tension THERSHOLD, lorsque le signal INPUT appliqué à la porte a un niveau de tension supérieur au SEUIL de la porte logique, OUTPUT passe à HAUT. Si le niveau du signal de tension d'entrée est inférieur au SEUIL, la SORTIE de la porte sera BASSE. Nous n'obtenons généralement pas le déclenchement de Schmitt séparément, nous avons toujours une porte NOT après le déclenchement de Schmitt. Le fonctionnement de Schmitt Trigger est expliqué ici: Schmitt Trigger Gate
Nous allons utiliser la puce 74LS14, cette puce contient 6 portes Schmitt Trigger. Ces portes SIX sont connectées en interne comme indiqué dans la figure ci-dessous.
La table de vérité de la porte de déclenchement de Schmitt inversée est montrée dans la figure ci-dessous, avec cela, nous devons programmer l'UNO pour inverser les périodes de temps positives et négatives à ses terminaux.
Maintenant, nous allons envoyer tout type de signal à la porte ST, nous aurons une onde rectangulaire de périodes inversées à la sortie, nous allons transmettre ce signal à UNO.
Explication du code du compteur de fréquence Arduino:
Le code pour cette mesure de fréquence à l'aide d'arduino est assez simple et facilement compréhensible. Nous expliquons ici la fonction pulseIn qui est principalement responsable de la mesure de la fréquence. L'Uno a une fonction spéciale pulseIn , qui nous permet de déterminer la durée de l'état positif ou la durée de l'état négatif d'une onde rectangulaire particulière:
Htime = pulseIn (8, HIGH); Ltime = pulseIn (8, LOW);
La fonction donnée mesure le temps pendant lequel le niveau Haut ou Bas est présent au PIN8 de Uno. Ainsi, en un seul cycle d'onde, nous aurons la durée des niveaux positifs et négatifs en micro secondes. La fonction pulseIn mesure le temps en micro secondes. Dans un signal donné, nous avons un temps haut = 10 mS et un temps bas = 30 ms (avec une fréquence de 25 HZ). Ainsi, 30000 seront stockés en entier Ltime et 10000 en Htime. Lorsque nous les additionnons, nous aurons la durée du cycle, et en l'inversant, nous aurons la fréquence.
Le code complet et la vidéo pour ce fréquencemètre utilisant Arduino sont donnés ci-dessous.