Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

DIY Simple Square Wave Generator tot 1 MHz

Componenten en benodigdheden

Arduino Nano R3
× 1
Adafruit Standaard LCD - 16x2 Wit op Blauw
× 1
Drukknop, tijdelijk
× 3
Single Turn Potentiometer - 10k ohm
× 1

Apps en online services

Arduino IDE

Over dit project

Dit is een eenvoudige blokgolfgenerator die in feite de TimerOne-bibliotheek gebruikt, waarmee u een PWM-signaal op pin 9 kunt genereren in het bereik van ongeveer 5 Hz tot 1 Mhz, en u kunt de werkcyclus aanpassen van 0 tot 100%.

Apparaat is heel eenvoudig te bouwen en bestaat uit slechts een paar componenten:

- Arduino Nano-microcontroller

- LCD-scherm

- Drie pull-up weerstanden

- en drie drukknoppen

De pulsgenerator heeft de mogelijkheid om de pulsherhalingsperiode aan te passen met behulp van de knoppen die zijn aangesloten op de digitale ingangen 6 en 7 van de Arduino. 13 invoerpin stelt u in staat om de duty cycle aan te passen. De aflezingen van de duur en de werkcyclus worden weergegeven op de eerste rij van de LCD 16 × 2-indicator en de frequentie-aflezingen worden weergegeven op de tweede rij. De minimale stap voor het aanpassen van de pulsherhalingsperiode is 1 s, dus de frequentie zal discreet veranderen, bijvoorbeeld 1 μs is 1 MHz, 2 μs is 500 kHz, 3 μs is 333,333 Hz, enzovoort, en naarmate de frequentie afneemt , neemt de soepelheid van de aanpassing toe. Dit is vrij onpraktisch bij hogere frequenties, maar dat is de prijs van eenvoud. In een van mijn vorige video's heb ik de constructie beschreven van een soortgelijk apparaat maar met behulp van een gespecialiseerde DDS-chip die deze tekortkomingen niet heeft en een veel groter bereik heeft, maar complexer is om te bouwen

Om het uitgangssignaal te visualiseren gebruik ik een kleine enkelkanaals oscilloscoop. Ten slotte wordt het apparaat in een geschikte doos gemonteerd en is het een ander handig hulpmiddel in het elektronicalaboratorium.

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;// standaard 1000 μs (1000 Hz), meander, pulse byte k1,kn,kn1,kn2;int drive,drive0;void setup(){ lcd.begin(16, 2);// LCD 16X2 pinMode (9, UITGANG); pinMode(6,INPUT);// knop bij ingang 6 pinMode(7,INPUT);// knop bij ingang 7 pinMode(13,INPUT);// knop bij ingang 13}void loop(){ Timer1.initialize(t ); // periode Timer1.pwm(9, k); // k - vulfactor 0-1023. kn=digitalRead (6);// knop input 6 (- pulsperiode) kn1=digitalRead (7);// knop input 7 (+ pulsperiode) kn2=digitalRead(13);// knop input 13 (+ cirkel vullen factor) if(kn==HIGH){ // het verlagen van de periode drive++; if(drive<30){ t=t-1; } // als de knop lang wordt ingedrukt, de correctie van de puls anders if(drive>30 &&drive<60){ t=t-10; } else if(schijf>=60 &&schijf<100){ t=t-100; } else if(drive>=100){ t=t-1000; } } anders{ schijf=0; } if(kn1==HIGH){// het toevoegen van een periode drive0++; if(drive0<30){ t=t+1; // als de knop lang wordt ingedrukt, wordt de } 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; } } anders{ drive0=0; } if(t==0 || t>300000){ // beperking van de pulsduur tot het minimum, als t=1; } if(t>200000 &&t<300000){ // beperking van de pulsduur tot t=200000; } f=1000000/t; // bereken de frequentie k1=k*100/1024; // bereken% vulfactor if(kn2==HIGH){// knop voor het aanpassen van de vulfactor (in een cirkel van k=k+16;// stap 16 uit 1024 (u kunt 8 doen voor een soepelere aanpassing)} if(k==1024){ k=0; }// geeft informatie weer op de indicator lcd.setCursor(0,0); lcd.print("T="); lcd.print(t); lcd.print( "ons"); 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( " ");}

Schema's


Productieproces

  1. Vierkante golfsignalen
  2. DIY LUMAZOID Arduino Music Visualiser
  3. Eenvoudige Word Clock (Arduino)
  4. DIY Eenvoudige 20 kHz Arduino-oscilloscoop op Nokia 5110 LCD
  5. DIY voltmeter met Arduino en smartphone
  6. JX Wave Generator
  7. Eenvoudige obstakelsensor met Arduino
  8. DIY Virtual Reality Skateboard
  9. Eenvoudige UNO-rekenmachine
  10. DIY eenvoudig meetwiel met roterende encoder
  11. Eenvoudige Arduino-chronometer