Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

DIY Einfacher Rechteckwellengenerator bis 1MHz

Komponenten und Verbrauchsmaterialien

Arduino Nano R3
× 1
Adafruit Standard LCD - 16x2 Weiß auf Blau
× 1
Druckschalter, kurzzeitig
× 3
Single Turn Potentiometer - 10k Ohm
× 1

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Dies ist ein einfacher Rechteckwellengenerator, der im Wesentlichen die TimerOne-Bibliothek verwendet, mit der Sie ein PWM-Signal an Pin 9 im Bereich von etwa 5 Hz bis 1 MHz erzeugen und das Tastverhältnis von 0 bis 100 % einstellen können.

Das Gerät ist sehr einfach aufzubauen und besteht nur aus wenigen Komponenten:

- Arduino Nano-Mikrocontroller

- LCD-Anzeige

- Drei Pull-Up-Widerstände

- und drei Druckknöpfe

Der Impulsgenerator hat die Möglichkeit, die Impulswiederholungsperiode über die an den Digitaleingängen 6 und 7 des Arduino angeschlossenen Tasten einzustellen. 13 Eingangspin ermöglicht Ihnen die Einstellung des Tastverhältnisses. Die Messwerte für Dauer und Arbeitszyklus werden in der ersten Zeile des 16 × 2-LCD-Indikators angezeigt, und die Frequenzmesswerte werden in der zweiten Zeile angezeigt. Der minimale Schritt zum Einstellen der Pulswiederholungsperiode beträgt 1 μs, sodass sich die Frequenz diskret ändert, z. B. 1 μs entspricht 1 MHz, 2 μs entspricht 500 kHz, 3 μs entspricht 333,333 Hz usw. und wenn die Frequenz abnimmt , erhöht sich die Leichtgängigkeit seiner Einstellung. Dies ist bei höheren Frequenzen ziemlich unpraktisch, aber das ist der Preis der Einfachheit. In einem meiner vorherigen Videos habe ich den Aufbau eines ähnlichen Geräts beschrieben, jedoch mit Hilfe eines spezialisierten DDS-Chips, der diese Mängel nicht aufweist und eine viel größere Reichweite hat, aber komplexer zu bauen ist

Zur Visualisierung des Ausgangssignals verwende ich ein kleines Einkanal-Oszilloskop. Abschließend wird das Gerät in einer passenden Box montiert und ist ein weiteres nützliches Werkzeug im Elektroniklabor.

Code

  • Arduino-Code
Arduino-CodeC/C++
#include #include LiquidCrystal lcd(12, 11, 5, 4, 3, 2);// RS,E,D4,D5,D6,D7unsigned long t=1000 ,f,k=512;// default 1000 μs (1000 Hz), Mäander, Pulsbyte k1,kn,kn1,kn2;int drive,drive0;void setup(){ lcd.begin(16, 2);// LCD 16X2 PinMode (9, AUSGANG); pinMode(6,INPUT);// Taste am Eingang 6 PinMode(7,INPUT);// Taste am Eingang 7 PinMode(13,INPUT);// Taste am Eingang 13}void loop(){ Timer1.initialize(t ); // Periode Timer1.pwm(9, k); // k - Füllfaktor 0-1023. kn=digitalRead(6);// Tastereingang 6 (- Pulsperiode) kn1=digitalRead(7);// Tastereingang 7 (+ Pulsperiode) kn2=digitalRead(13);// Tastereingang 13 (+ Kreisfüllung Faktor) if(kn==HIGH){// Verringern der Periode drive++; if(drive<30){t=t-1; } // Wenn die Taste lange gehalten wird, wird der Impuls korrigiert else if (drive>30 &&drive<60) { t=t-10; aufrechtzuerhalten. Sonst if(Laufwerk>=60 &&Laufwerk<100){t=t-100; aufrechtzuerhalten. Sonst if (Laufwerk> =100) {t =t-1000; } } sonst { Laufwerk =0; } if(kn1==HIGH){// Hinzufügen einer Periode drive0++; if(drive0<30){t=t+1; // Wenn die Taste lange gehalten wird, wird die Korrektur der} else if(drive0>30 &&drive0<60){t=t+10; aufrechtzuerhalten. Sonst if(drive0>=60 &&drive0<100){t=t+100; aufrechtzuerhalten. Sonst if (drive0>=100) {t=t+1000; }} sonst { Laufwerk0 =0; } if(t==0 || t>300000){// Begrenzung der Pulsdauer auf das Minimum, wenn t=1; } if(t>200000 &&t<300000){// Begrenzung der Impulsdauer auf t=200000; } f=1000000/t; // Berechnen Sie die Frequenz k1 =k * 100/1024; // % Füllfaktor berechnen if(kn2==HIGH){// Schaltfläche zum Anpassen des Füllfaktors (in einem Kreis von k=k+16;// Schritt 16 von 1024 (Sie können 8 für eine sanftere Anpassung tun)} if(k==1024){ k=0; }// Anzeige von Informationen über den Indikator lcd.setCursor(0,0); lcd.print("T="); lcd.print(t); lcd.print( "uns"); 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( " ");}

Schaltpläne


Herstellungsprozess

  1. Rechteckwellensignale
  2. DIY LUMAZOID Arduino Music Visualiser
  3. Einfache Wordclock (Arduino)
  4. DIY Einfaches 20-kHz-Arduino-Oszilloskop auf Nokia 5110 LCD
  5. DIY-Voltmeter mit Arduino und Smartphone
  6. JX-Wellengenerator
  7. Einfacher Hindernissensor mit Arduino
  8. DIY Virtual Reality Skateboard
  9. Einfacher UNO-Rechner
  10. DIY Einfaches Messrad mit Drehgeber