Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Mesure Précise de Fréquence et Rapport Cyclique avec Arduino UNO

Composants et Fournitures

Arduino UNO ×1
Écran LCD Alphanumérique 20×4 ×1

Outils Nécessaires

Applications et Services en Ligne

À Propos du Projet

L'Arduino trouve des applications dans de nombreux domaines, dont la mesure : grandeurs électriques (tension, courant, puissance), physiques (température, humidité, luminosité) ou valeurs de composants électroniques.

Cet article démontre la mesure de fréquence et de rapport cyclique (duty cycle) de signaux d'impulsion avec Arduino. La mesure de fréquence est cruciale en communications. Le rapport cyclique (largeur d'impulsion) est essentiel pour le contrôle de vitesse moteur DC, position servo, ou vérification de symétrie de signaux numériques (récepteurs, répéteurs).

Le projet mesure : fréquence, temps haut (Ton), temps bas (Toff), rapport cyclique, et affiche sur LCD 16×4 (le texte mentionne 16×4, le composant listé est 20×4).

Mesure Précise de Fréquence et Rapport Cyclique avec Arduino UNO

Description du Circuit

Fonctionnement

  1. Au démarrage : affichage « Freq: », « Ton: », « Toff: », « Duty: » sur 4 lignes.
  2. À l'arrivée d'impulsions sur pin 7 : attente front montant.
  3. Mesure durée niveau haut → Ton (µs).
  4. Mesure durée niveau bas → Toff (µs).
  5. Période = Ton + Toff.
  6. Fréquence = 1 / Période (en Hz, période en secondes).
  7. Rapport cyclique = Ton / (Ton + Toff) × 100 (%).
  8. Affichage des 4 paramètres sur LCD.
  9. Répétition chaque seconde → mesure continue.

Code Arduino

#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 10, 11, 12, 13); // RS, EN, D4, D5, D6, D7
#define pulse_ip 7

int ontime, offtime, duty;
float freq, period;

void setup() {
  pinMode(pulse_ip, INPUT);
  lcd.begin(16, 4); // ou 20, 4 selon votre écran
  lcd.clear();
  lcd.print("Freq:");
  lcd.setCursor(0,1); lcd.print("Ton:");
  lcd.setCursor(0,2); lcd.print("Toff:");
  lcd.setCursor(0,3); lcd.print("Duty:");
}

void loop() {
  ontime = pulseIn(pulse_ip, HIGH);
  offtime = pulseIn(pulse_ip, LOW);
  period = ontime + offtime;
  freq = 1000000.0 / period; // Période en µs → Fréquence en Hz
  duty = (ontime / period) * 100;
  
  lcd.setCursor(5,0); lcd.print(freq); lcd.print("Hz");
  lcd.setCursor(4,1); lcd.print(ontime); lcd.print("us");
  lcd.setCursor(5,2); lcd.print(offtime); lcd.print("us");
  lcd.setCursor(6,3); lcd.print(duty); lcd.print('%');
  
  delay(1000);
}

Schéma de Câblage

Mesure Précise de Fréquence et Rapport Cyclique avec Arduino UNO

Processus de fabrication

  1. Mesure de la fréquence et de la phase dans les systèmes de puissance AC
  2. Système de pointage RFID fiable avec Arduino et Python (base de données phpMyAdmin)
  3. Construire une télécommande Android universelle avec Arduino, 1Sheeld et contrôle IR
  4. Construire un Voltmètre Intelligent avec Arduino et Smartphone – Projet DIY Facile
  5. Bocal Intelligent IoT avec ESP8266, Arduino et Capteur Ultrasonique – Surveillance Temps Réel
  6. Mesure Précise de Fréquence et Rapport Cyclique avec Arduino UNO
  7. Contrôlez un rover Arduino avec Firmata et une manette Xbox One
  8. Mesurer la masse de la Terre avec Arduino : Guide DIY étape par étape
  9. Construire une Boussole Numérique Temps Réel avec Arduino et Processing