Oprettelse af et enkeltkanalsoscilloskop ved hjælp af Arduino

Oprettelse af et enkeltkanalsoscilloskop ved hjælp af Arduino

I dette interessante indlæg skal vi lave et simpelt enkeltkanalsoscilloskop ved hjælp af Arduino og en personlig computer, hvor bølgeformerne vises på pc'ens skærm, og frekvensen og tidsperioden for inputbølgerne vises på 16 x 2-skærmen .



Introduktion

Enhver elektronikentusiast sagde engang 'Jeg har en drøm, en dag vil jeg købe et oscilloskop', men det er stadig en drøm for mange at eje et anstændigt oscilloskop til deres projekter og eksperimenter.

Oscilloskopet er dyrt udstyr, selv for en entry level-model, vi betragter dem som et luksuselektronikværktøj, og vi stopper måske vores eksperimenter og projekter, fordi vi ikke har råd til det.





Dette projekt kan være en spilskifter for mange, elektronikentusiaster behøver ikke at bruge masser af penge til et oscilloskop til at måle basale parametre for en bølge.

Den foreslåede idé har meget begrænset funktionalitet, så forvent ikke funktionerne på en high end oscilloskop at være til stede i dette projekt. Vi får tre solide funktioner fra dette projekt:



1) visuel repræsentation af bølgeform på computerskærmen

2) frekvensmåling af indgangsbølgen

3) Tidsperiode måling af inputbølge i mikrosekunder.

Frekvensen og tidsperioden for signalet vises på 16 x 2 LCD-display. Der er to metoder til visuel repræsentation af bølgeformen på computerskærmen, som vil blive beskrevet i den senere del af artiklen.

Lad os nu dykke ned i den tekniske del af opsætningen.

Den foreslåede opsætning består af arduino, som er hjernen til vores projekt som sædvanlig, en 16 x 2 LCD-skærm, IC 7404, 10K potentiometer og en computer, helst en Windows-maskine.

Arduino er hjernen i opsætningen, og vi skal vælge Arduino UNO eller Arduino mega eller Arduino nano til dette projekt, da andre modeller ikke har indbygget USB til seriel konverter, hvilket er vigtigt for kommunikation mellem Arduino og computer.

Hvis vi vælger andre modeller af arduino-kort, har vi brug for ekstern USB til seriel konverter, der kan komplicere projektet.

Illustration af LCD til Arduino-forbindelse:

Enkeltkanals oscilloskop LCD-skærm

Ovenstående kredsløb er selvforklarende. Vi kan finde en lignende forbindelse mellem skærmen og arduino på andre LCD-baserede projekter.

10K potentiometeret bruges til at justere kontrasten på 16 x 2 LCD-displayet, som skal indstilles af brugeren for at få den optimale visning.

Enkeltkanalsoscilloskop ved hjælp af Arduino

Funktionen af ​​IC 7404 er at eliminere ethvert støjsignal fra indgangen og føres til frekvenssamplingsstift A0. IC 7404 udsender kun rektangulære bølger, hvilket er en stor fordel for arduino, da arduino er mere i stand til at behandle digitalt signal end analoge signaler.

Program:

//-----Program Developed by R.Girish-----//
#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int X
int Y
float Time
float frequency
const int Freqinput = A0
const int oscInput = A1
int Switch = A2
const int test = 9
void setup()
{
Serial.begin(9600)
lcd.begin(16,2)
pinMode(Switch,INPUT)
pinMode(Freqinput,INPUT)
pinMode(oscInput,INPUT)
pinMode(test, OUTPUT)
analogWrite(test,127)
lcd.setCursor(0,0)
lcd.print('Press the button')
}
void loop()
{
if(digitalRead(Switch)==HIGH)
{
lcd.clear()
lcd.setCursor(0,0)
X = pulseIn(Freqinput,HIGH)
Y = pulseIn(Freqinput,LOW)
Time = X+Y
frequency = 1000000/Time
if(frequency<=0)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('F=')
lcd.print('0.00 Hz')
lcd.setCursor(0,1)
lcd.print('T=')
lcd.print('0.00 us')
}
else
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('F=')
lcd.print(frequency)
lcd.print('Hz')
lcd.setCursor(0,1)
lcd.print('T=')
lcd.print(Time)
lcd.print(' us')
delay(500)
}
}
else
{
Serial.println(analogRead(oscInput))
}
}
//-----Program Developed by R.Girish-----//

Når du har gennemført hardwaredelen og uploadet ovenstående kode. Det er tid til at plotte bølgeform på computerskærmen. Dette kan gøres på to måder, den nemmeste og lateste måde er beskrevet nedenfor.

Metode 1:

• Tilslut indgangskablet til pin nr. 9 i arduino (testtilstand).
• Åbn Arduino IDE (det skal være version 1.6.6 eller derover)
• Gå til fanen “værktøjer”, og vælg seriel plotter

Så snart den serielle plotter åbner, kan du se den rektangulære bølge, der genereres fra arduinos pin nr. 9, illustreret nedenfor.

rektangulær bølge, der genereres fra arduinos pin nr. 9

Tryk på trykknappen for at vise aflæsningerne, og også for at opdatere aflæsningerne LCD-skærmen, skal den vise omkring 490Hz i 'testtilstand'.

Skematisk af testtilstand:

Testtilstanden er at kontrollere oscilloskopets funktion. Stiften # 9 er programmeret til at give 490Hz output.

Metode 2:

Denne metode er relativt let, men vi skal downloade software fra det givne link: http://www.x-io.co.uk/downloads/Serial-Oscilloscope-v1.5.zip

Denne software giver os lidt mere kontrol og funktioner sammenlignet med arduinos serielle plotter. Vi kan zoome ind og ud af den genererede bølgeform, vi kan indstille triggerfunktionalitet, forskydningskontrol over lodret og vandret akse osv.

• Download softwaren og uddrag.

• Dobbeltklik nu på applikationen Serial Oscilloscope.

arduinos serielle plotter

• Et vindue vises som illustreret nedenfor og vælger baudrate til 9600.

vælg baudrate til 9600.

• Vælg nu fanen “Seriel port”, og vælg den rigtige COM-port, som kan variere computer til computer. Hvis du vælger den korrekte COM-port, kan du se aflæsninger som illustreret nedenfor.

• Vælg nu fanen “oscilloskop” og vælg “kanal 1, 2 og 3” (første mulighed).

Vælg nu Bølgeform fra enkeltkanalsoscilloskop ved hjælp af Arduino

• Du kan se det genererede testsignal fra Arduino som illustreret nedenfor.

Som du kan se, er der nogle kontrolknapper på softwaren, hvormed du bedre kan analysere bølgeformen.

BEMÆRK:

Den foreslåede opsætning har en stor ulempe:

Arduino kan ikke vise inputbølgeform på computerskærm og frekvens / tidsperiode på LCD-display samtidigt. For at løse dette problem findes der en trykknap til at læse / opdatere frekvensen og tidsperioden på LCD-skærmen.

Når du har trykket på knappen, vises frekvensen og tidsperioden på LCD-displayet, samtidig med at bølgeformen fryser på computerskærmen, så længe du fortsætter med at trykke på trykknappen.

Du kan også overveje dette som en fordel, da du når som helst kan stoppe frekvensen på computerskærmen, og dette kan give dig tid til at analysere den viste bølgeform.

Forfatterens prototype:

Prototype billede til Arduino oscilloskop kredsløb

Hvis du har yderligere spørgsmål vedrørende dette enkle enkeltkanals Arduino-oscilloskopkredsløb, er du velkommen til at bruge nedenstående kommentarfelt til at udtrykke dine specifikke synspunkter




Forrige: Arduino frekvensmåler ved hjælp af 16 × 2-skærm Næste: LiFi Internet Transmitter Circuit - USB Signal Transfer via LED