Gör ett enda kanalsoscilloskop med Arduino

Prova Vårt Instrument För Att Eliminera Problem





I det här intressanta inlägget ska vi göra ett enkelt oscilloskop med en kanal med Arduino och en persondator, där vågformerna kommer att visas på datorns skärm och frekvensen och tidsperioden för ingångsvågorna visas på 16 x 2 .

Introduktion

Varje elektronikentusiast sa en gång ”Jag har en dröm, en dag kommer jag att köpa ett oscilloskop” men det är fortfarande drömmen för många att äga ett anständigt oscilloskop för sina projekt och experiment.



Eftersom oscilloskopet är dyr utrustning även för en nybörjarmodell anser vi dem som ett lyxelektronikverktyg och vi kan stoppa våra experiment och projekt för att vi inte har råd med det.

Detta projekt kan vara en spelväxlare för många, elektronikentusiaster behöver inte spendera massor av pengar för ett oscilloskop för att mäta grundläggande parametrar för en våg.



Den föreslagna idén har mycket begränsad funktionalitet så förvänta dig inte funktionerna på en high end oscilloskop att vara närvarande i detta projekt. Vi får tre solida funktioner från detta projekt:

1) visuell representation av vågform på datorns skärm

2) frekvensmätning av ingångsvågen

3) Tidsperiodmätning av ingångsvåg i mikrosekunder.

Signalens frekvens och tidsperiod visas på 16 x 2 LCD-display. Det finns två metoder för att visuellt representera vågformen på datorskärmen som kommer att beskrivas i senare del av artikeln.

Låt oss nu dyka in i den tekniska delen av installationen.

Den föreslagna installationen består av arduino som är hjärnan som vårt projekt som vanligt, en 16 x 2 LCD-skärm, IC 7404, 10K potentiometer och en dator, helst en Windows-maskin.

Arduino är hjärnan i installationen och vi måste välja Arduino UNO eller Arduino mega eller Arduino nano för detta projekt eftersom andra modeller inte har inbyggd USB till seriell omvandlare vilket är viktigt för att kommunicera mellan Arduino och dator.

Om vi ​​väljer andra modeller av arduino-kort behöver vi extern USB till seriell omvandlare som kan komplicera projektet.

Illustration av LCD till Arduino-anslutning:

Enkanals oscilloskop LCD-skärm

Ovanstående krets är självförklarande. Vi kan hitta liknande samband mellan skärmen och arduino på andra LCD-baserade projekt.

10K-potentiometern används för att justera kontrasten på 16 x 2 LCD-skärmen som måste ställas in av användaren för optimal vy.

Enkelkanalsoscilloskop med Arduino

IC 7404: s funktion är att eliminera brus från ingången och matas till frekvenssamplingsstift A0. IC 7404 matar bara ut rektangulära vågor vilket är en stor fördel för arduino, eftersom arduino är mer kapabelt att bearbeta digital signal än analoga 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 slutfört hårdvarudelen och laddat upp ovanstående kod. Det är dags att plotta vågform på datorskärmen. Detta kan göras på två sätt, det enklaste och lataste sättet beskrivs nedan.

Metod 1:

• Anslut ingångsledningen till stift nr 9 i arduino (testläge).
• Öppna Arduino IDE (den måste vara version 1.6.6 eller högre)
• Gå till fliken “verktyg” och välj serieplotter

Så snart serieplottern öppnas kan du se den rektangulära vågen som genereras från arduinos stift nr 9, illustrerat nedan.

rektangulär våg som genereras från arduinos stift nr 9

Tryck på tryckknappen för att visa avläsningarna och för att uppdatera avläsningarna på LCD-skärmen måste den visa cirka 490Hz i “testläge”.

Schema över testläge:

Testläget är att kontrollera att oscilloskopet fungerar. Stift nr 9 är programmerat för att ge 490Hz utgång.

Metod 2:

Den här metoden är relativt enkel men vi måste ladda ner programvara från den givna länken: http://www.x-io.co.uk/downloads/Serial-Oscilloscope-v1.5.zip

Denna programvara ger oss lite mer kontroll och funktioner jämfört med arduinos serieplotter. Vi kan zooma in och ut från den genererade vågformen, vi kan ställa in triggerfunktionalitet, offsetkontroll över vertikal och horisontell axel etc.

• Ladda ner programvaran och extrahera den.

• Dubbelklicka nu på Serial Oscilloscope-applikationen.

arduinos serieplotter

• Ett fönster dyker upp som illustrerat nedan och väljer överföringshastighet till 9600.

välj överföringshastighet till 9600.

• Välj nu fliken 'Seriell port' och välj rätt COM-port som kan variera dator till dator. Om du väljer rätt COM-port kan du se avläsningar som illustreras nedan.

• Välj nu fliken 'oscilloskop' och välj 'kanal 1, 2 och 3' (första alternativet).

Välj nu fliken Vågform från enkanalsoscilloskop med Arduino

• Du kan se den genererade testsignalen från Arduino som illustreras nedan.

Som du kan se finns det några kontrollknappar på programvaran som du kan analysera vågformen bättre.

NOTERA:

Den föreslagna installationen har en stor nackdel:

Arduino kan inte visa ingångsvågform på datorskärmen och läsa frekvens / tidsperiod på LCD-skärmen samtidigt. För att lösa problemet finns en tryckknapp för att läsa / uppdatera frekvensen och tidsperioden på LCD-skärmen.

När du väl har tryckt på knappen visas frekvensen och tidsperioden på LCD-skärmen samtidigt som vågformen fryser på datorskärmen så länge du trycker på tryckknappen.

Du kan också överväga detta som en fördel eftersom du kan stoppa frekvensen på datorskärmen när som helst och detta kan ge dig tid att analysera visad vågform.

Författarens prototyp:

Prototypbild för Arduino-oscilloskopkrets

Om du har ytterligare frågor angående denna enkla Arduino-oscilloskopkrets, kan du gärna använda kommentarfältet nedan för att uttrycka dina specifika åsikter




Tidigare: Arduino frekvensmätare med 16 × 2-skärm Nästa: LiFi Internet Transmitter Circuit - USB Signal Transfer via LED