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

Générateur d'onde carrée 1 MHz DIY avec Arduino Nano – Circuit PWM simple

Composants et fournitures

Applications et services en ligne

À propos du projet

Ce générateur d'onde carrée simple utilise la bibliothèque TimerOne pour générer un signal PWM sur la broche 9, avec une fréquence réglable d'environ 5 Hz à 1 MHz, et un cycle de travail ajustable de 0 à 100 %.

L'appareil est très simple à construire et ne nécessite que quelques composants :

Générateur d onde carrée 1 MHz DIY avec Arduino Nano – Circuit PWM simple

Le générateur d'impulsions permet d'ajuster la période de répétition via les boutons connectés aux entrées numériques 6 et 7 de l'Arduino. La broche 13 permet d'ajuster le cycle de travail. La durée et le cycle de travail sont affichés sur la première ligne de l'écran LCD 16×2, et la fréquence sur la deuxième ligne.

Le pas minimal d'ajustement de la période est de 1 µs, ce qui fait varier la fréquence de manière discrète : 1 µs = 1 MHz, 2 µs = 500 kHz, 3 µs = 333,333 kHz, etc. Plus la fréquence diminue, plus l'ajustement devient fluide. C'est peu pratique aux hautes fréquences, mais c'est le prix de la simplicité. Dans une vidéo précédente, j'ai décrit un dispositif similaire utilisant une puce DDS spécialisée qui n'a pas ces inconvénients et offre une plage bien plus large, mais qui est plus complexe à construire.

Pour visualiser le signal de sortie, j'utilise un petit oscilloscope monocanal. Finalement, l'appareil est monté dans un boîtier adapté, devenant un autre outil utile dans le laboratoire d'électronique.

Code

Code Arduino

#include 
#include 

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7
unsigned long t = 1000, f, k = 512; // défaut 1000 µs (1000 Hz), créneau, impulsion
byte k1, kn, kn1, kn2;
int drive, drive0;

void setup() {
  lcd.begin(16, 2); // LCD 16x2
  pinMode(9, OUTPUT);
  pinMode(6, INPUT); // bouton entrée 6 (- période)
  pinMode(7, INPUT); // bouton entrée 7 (+ période)
  pinMode(13, INPUT); // bouton entrée 13 (+ cycle de travail)
}

void loop() {
  Timer1.initialize(t); // période
  Timer1.pwm(9, k); // k - facteur de remplissage 0-1023

  kn = digitalRead(6);  // bouton entrée 6 (- période d'impulsion)
  kn1 = digitalRead(7); // bouton entrée 7 (+ période d'impulsion)
  kn2 = digitalRead(13); // bouton entrée 13 (+ cycle de travail)

  if (kn == HIGH) { // diminution de la période
    drive++;
    if (drive < 30) { t = t - 1; }
    else if (drive > 30 && drive < 60) { t = t - 10; }
    else if (drive >= 60 && drive < 100) { t = t - 100; }
    else if (drive >= 100) { t = t - 1000; }
  } else {
    drive = 0;
  }

  if (kn1 == HIGH) { // augmentation de la période
    drive0++;
    if (drive0 < 30) { t = t + 1; }
    else if (drive0 > 30 && drive0 < 60) { t = t + 10; }
    else if (drive0 >= 60 && drive0 < 100) { t = t + 100; }
    else if (drive0 >= 100) { t = t + 1000; }
  } else {
    drive0 = 0;
  }

  if (t == 0 || t > 300000) { t = 1; } // limitation durée impulsion min
  if (t > 200000 && t < 300000) { t = 200000; } // limitation durée impulsion max

  f = 1000000 / t; // calcul fréquence
  k1 = k * 100 / 1024; // calcul % cycle de travail

  if (kn2 == HIGH) { // bouton ajustement cycle de travail
    k = k + 16; // pas de 16 sur 1024 (peut faire 8 pour plus doux)
  }
  if (k == 1024) { k = 0; }

  // Affichage sur l'écran
  lcd.setCursor(0, 0);
  lcd.print("T=");
  lcd.print(t);
  lcd.print(" us");
  lcd.setCursor(12, 0);
  lcd.print(k1);
  lcd.print(" %");
  lcd.setCursor(0, 1);
  lcd.print("F=");
  lcd.print(f);
  lcd.print(" Hz");
  delay(300);
  lcd.setCursor(0, 0);
  lcd.print(" ");
  lcd.setCursor(0, 1);
  lcd.print(" ");
}

Schémas

Générateur d onde carrée 1 MHz DIY avec Arduino Nano – Circuit PWM simple

Processus de fabrication

  1. Comprendre les signaux d'onde carrée : fondamentaux et applications
  2. Construisez votre propre LUMAZOID : Visualiseur musical DIY Arduino
  3. Horloge à Mots DIY Arduino – Afficheur Temps Réel Élégant et Personnalisable
  4. Construire un oscilloscope Arduino 20 kHz sur écran Nokia 5110 – Guide DIY facile
  5. Construire un Voltmètre Intelligent avec Arduino et Smartphone – Projet DIY Facile
  6. JX Wave Generator – Générateur DDS compatible Arduino avec affichage OLED
  7. Capteur d'obstacle IR simple avec Arduino — LED IR + Photodiode
  8. Construisez un skateboard VR DIY avec Arduino, Google Cardboard et Bluetooth
  9. Calculatrice basique Arduino UNO - Projet facile pour débutants