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'ondes carrées simple bricolage jusqu'à 1MHz

Composants et fournitures

Arduino Nano R3
× 1
Adafruit Standard LCD - 16x2 Blanc sur Bleu
× 1
Bouton-poussoir, momentané
× 3
Potentiomètre à un tour - 10k ohms
× 1

Applications et services en ligne

Arduino IDE

À propos de ce projet

Il s'agit d'un simple générateur d'ondes carrées qui utilise essentiellement la bibliothèque TimerOne vous permettant de générer un signal PWM à la broche 9 dans la plage d'environ 5 Hz à 1 Mhz, et vous pouvez ajuster le rapport cyclique de 0 à 100 %.

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

- Microcontrôleur Arduino Nano

- Écran LCD

- Trois résistances de rappel

- et trois boutons poussoirs

Le générateur d'impulsions a la capacité de régler la période de répétition des impulsions à l'aide des boutons connectés aux entrées numériques 6 et 7 de l'Arduino. 13 broches d'entrée vous permettent d'ajuster le cycle de service. Les lectures de durée et de cycle de service sont affichées sur la première rangée de l'indicateur LCD 16 × 2, et les lectures de fréquence sont affichées sur la deuxième rangée. Le pas minimum pour ajuster la période de répétition des impulsions est de 1 s, donc la fréquence changera discrètement, par exemple, 1 s correspond à 1 MHz, 2 s correspond à 500 kHz, 3 s correspond à 333,333 Hz, et ainsi de suite, et à mesure que la fréquence diminue , la douceur de son réglage augmente. C'est assez peu pratique à des fréquences plus élevées, mais c'est le prix de la simplicité. Dans l'une de mes vidéos précédentes, j'ai décrit la construction d'un appareil similaire mais à l'aide d'une puce DDS spécialisée qui ne présente pas ces défauts et a une portée beaucoup plus large, mais est plus complexe à construire

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

Code

  • Code Arduino
Code ArduinoC/C++
#include #include LiquidCrystal lcd(12, 11, 5, 4, 3, 2);// RS,E,D4,D5,D6,D7unsigned long t=1000 ,f,k=512;// par défaut 1000 s (1000 Hz), méandre, octet d'impulsion k1,kn,kn1,kn2;int drive,drive0;void setup(){ lcd.begin(16, 2);// LCD 16X2 pinMode (9, SORTIE); pinMode (6, INPUT); // bouton à l'entrée 6 pinMode (7, INPUT); // bouton à l'entrée 7 pinMode (13, INPUT); // bouton à l'entrée 13} void loop () { Timer1.initialize (t ); // période Timer1.pwm(9, k); // k - facteur de remplissage 0-1023. kn=digitalRead(6) ;// entrée du bouton 6 (- période d'impulsion) kn1=digitalRead(7) ;// entrée du bouton 7 (+ période d'impulsion) kn2=digitalRead(13);// entrée du bouton 13 (+ remplissage du cercle factor) if(kn==HIGH){ // diminution de la période drive++; if(drive<30){ t=t-1; } // si le bouton est maintenu longtemps, la correction du pouls else if(drive>30 &&drive<60 ){ t=t-10; } else if(lecteur>=60 &&lecteur<100){ t=t-100; } else if(drive>=100){ t=t-1000; } } else{ lecteur=0; } if(kn1==HIGH){// ajout d'un point drive0++ ; if(drive0<30){ t=t+1; // si le bouton est maintenu longtemps, la correction du } 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{ lecteur0=0; } if(t==0 || t>300000){ // limitation de la durée d'impulsion au minimum, si t=1; } if(t>200000 &&t<300000){ // limitation de la durée d'impulsion au t=200000; } f=1000000/t; // calcule la fréquence k1=k*100/1024; // calcule le facteur de remplissage en % if(kn2==HIGH){// bouton pour ajuster le facteur de remplissage (dans un cercle de k=k+16 ; // étape 16 sur 1024 (vous pouvez faire 8 pour un ajustement plus fluide) } if(k==1024){ k=0; }// affichage des informations sur l'indicateur lcd.setCursor(0,0); lcd.print("T="); lcd.print(t); lcd.print( " nous"); 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


Processus de fabrication

  1. Signaux à ondes carrées
  2. Visualiseur de musique Arduino DIY LUMAZOID
  3. Horloge de mots simple (Arduino)
  4. Oscilloscope Arduino 20 kHz simple bricolage sur écran LCD Nokia 5110
  5. Voltmètre DIY utilisant Arduino et Smartphone
  6. Générateur d'ondes JX
  7. Capteur d'obstacles simple avec Arduino
  8. Planche à roulettes en réalité virtuelle DIY
  9. Calculatrice UNO simple