Vieno kanalo osciloskopo gaminimas naudojant „Arduino“

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Šiame įdomiame įraše mes padarysime paprastą vieno kanalo osciloskopą naudodami „Arduino“ ir asmeninį kompiuterį, kur bangos formos bus rodomos kompiuterio ekrane, o įvesties bangų dažnis ir laikotarpis bus rodomas 16 x 2 ekrane. .

Įvadas

Kiekvienas elektronikos entuziastas kartą pasakė: „Aš turiu svajonę, vieną dieną įsigysiu osciloskopą“, tačiau daugeliui vis dar svajojama turėti tinkamą savo projektams ir eksperimentams skirtą osciloskopą.



Osciloskopas yra brangi įranga net pradinio lygio modeliui, mes juos laikome prabangos elektronikos įrankiu ir galbūt sustabdysime savo eksperimentus ir projektus, nes negalime to sau leisti.

Šis projektas gali būti žaidimų keitiklis daugeliui, elektronikos entuziastams nereikia išleisti daug pinigų osciloskopui pamatuoti bangos parametrus.



Siūloma idėja turi labai ribotą funkcionalumą, todėl nesitikėkite, kad šios funkcijos yra aukščiausios klasės osciloskopas dalyvauti šiame projekte. Iš šio projekto gauname tris patikimas funkcijas:

1) vizualinis bangos formos atvaizdavimas kompiuterio ekrane

2) įvesties bangos dažnio matavimas

3) Įvesties bangos laiko periodo matavimas mikrosekundėmis.

Signalo dažnis ir laikotarpis bus rodomi 16 x 2 LCD ekrane. Yra du būdai vizualiai pavaizduoti bangos formą kompiuterio ekrane, kurie bus aprašyti tolesnėje straipsnio dalyje.

Dabar pasinerkime į techninę sąrankos dalį.

Siūlomą sąranką sudaro „arduino“, kuri yra smegenys, kaip įprasta, 16 x 2 skystųjų kristalų ekranas, IC 7404, 10K potenciometras ir kompiuteris, pageidautina „Windows“ mašina.

„Arduino“ yra sąrankos pagrindas, todėl šiam projektui turime pasirinkti „Arduino UNO“ arba „Arduino mega“ arba „Arduino nano“, nes kituose modeliuose nėra įmontuoto USB į nuoseklųjį keitiklį, kuris yra būtinas norint bendrauti tarp „Arduino“ ir kompiuterio.

Jei pasirenkame kitus „arduino“ plokštės modelius, mums reikia išorinio USB į nuoseklų keitiklį, kuris gali apsunkinti projektą.

LCD ir „Arduino“ ryšio iliustracija:

Vieno kanalo osciloskopo skystųjų kristalų ekranas

Minėta grandinė yra savaime suprantama. Panašų ryšį tarp ekrano ir „arduino“ galime rasti ir kituose LCD pagrįstuose projektuose.

10K potenciometras naudojamas 16 x 2 skystųjų kristalų ekrano kontrastui reguliuoti, kurį vartotojas turi nustatyti, kad vaizdas būtų optimalus.

Vieno kanalo osciloskopas naudojant „Arduino“

IC 7404 funkcija yra pašalinti bet kokį triukšmo signalą iš įėjimo ir tiekti į dažnio mėginių ėmimo kaištį A0. „IC 7404“ skleidžia tik stačiakampes bangas, o tai yra didelis „arduino“ pranašumas, nes „arduino“ sugeba apdoroti skaitmeninį signalą nei analoginius signalus.

Programa:

//-----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-----//

Kai baigsite aparatinės įrangos dalį ir įkelsite aukščiau nurodytą kodą. Laikas kompiuterio ekrane braižyti bangos formą. Tai galima padaryti dviem būdais, lengviausias ir tingiausias būdas aprašytas toliau.

1 metodas:

• Prijunkite įvesties laidą prie „arduino“ kaiščio Nr. 9 (bandymo režimas).
• Atidarykite „Arduino IDE“ (ji turi būti 1.6.6 ar naujesnės versijos)
• Eikite į skirtuką „įrankiai“ ir pasirinkite nuoseklųjį braižytuvą

Kai tik atidaromas nuoseklusis braižytuvas, galite pamatyti stačiakampę bangą, kurią generuoja žemiau pavaizduota arduino kaištis Nr. 9.

stačiakampė banga, kurią generuoja „arduino“ kaištis Nr. 9

Paspauskite mygtuką, kad parodytumėte rodmenis, o jei norite atnaujinti rodmenis, LCD ekranas turi būti rodomas maždaug 490 Hz „testo režimu“.

Bandymo režimo schema:

Bandymo režimas yra tinkamo osciloskopo veikimo patikrinimas. Kaištis Nr. 9 užprogramuotas taip, kad išeitų 490Hz.

2 metodas:

Šis metodas yra gana lengvas, tačiau programinę įrangą turime atsisiųsti iš nurodytos nuorodos: http://www.x-io.co.uk/downloads/Serial-Oscilloscope-v1.5.zip

Ši programinė įranga suteiks mums šiek tiek daugiau valdymo ir funkcijų, palyginti su „arduino“ nuosekliu braižytuvu. Mes galime priartinti ir sumažinti sugeneruotą bangos formą, mes galime nustatyti paleidimo funkcionalumą, kompensuoti vertikalios ir horizontalios ašies valdymą ir kt.

• Atsisiųskite programinę įrangą ir ištraukite.

• Dabar dukart spustelėkite „Serial Oscilloscope“ programą.

arduino serijinis braižytuvas

• Pasirodys langas, kaip parodyta žemiau, ir pasirinkite perdavimo greitį iki 9600.

pasirinkite perdavimo greitį iki 9600.

• Dabar pasirinkite skirtuką „Serial port“ ir pasirinkite tinkamą COM prievadą, kuris gali skirtis nuo kompiuterio. Jei pasirinksite teisingą COM prievadą, galite pamatyti rodmenis, kaip parodyta žemiau.

• Dabar pasirinkite skirtuką „osciloskopas“ ir pasirinkite „1, 2 ir 3 kanalai“ (pirmoji parinktis).

Dabar pasirinkite skirtuką „osciloskopas“ ir pasirinkite „1, 2 ir 3 kanalai“ (pirmoji parinktis). Bangos forma iš vieno kanalo osciloskopo naudojant „Arduino“

• Galite pamatyti sugeneruotą bandymo signalą iš „Arduino“, kaip parodyta žemiau.

Kaip matote, programinėje įrangoje yra keletas valdymo mygtukų, kuriais galite geriau analizuoti bangos formą.

PASTABA:

Siūloma sąranka turi vieną pagrindinį trūkumą:

„Arduino“ negali vienu metu rodyti įvesties bangos formos kompiuterio ekrane ir dažnio / laikotarpio rodmenų LCD ekrane. Norėdami išspręsti šią problemą, pateikiamas mygtukas, skirtas skaityti / atnaujinti dažnį ir laiką LCD ekrane.

Kai paspausite mygtuką, LCD ekrane bus rodomas dažnis ir laikotarpis tuo pačiu metu, kai bangos forma sustings kompiuterio ekrane tol, kol nuolat paspausite mygtuką.

Tai taip pat galite laikyti pranašumu, nes bet kuriuo metu galite sustabdyti dažnį kompiuterio monitoriuje ir tai gali suteikti laiko analizuoti rodomą bangos formą.

Autoriaus prototipas:

„Arduino“ osciloskopo grandinės atvaizdo prototipas

Jei turite daugiau klausimų dėl šios paprastos vieno kanalo „Arduino“ osciloskopo grandinės, nedvejodami naudokitės žemiau esančiu komentarų laukeliu, norėdami išreikšti savo nuomonę




Pora: „Arduino“ dažnio matuoklis, naudojant 16 × 2 ekraną Kitas: „LiFi“ interneto siųstuvo grandinė - USB signalo perdavimas per LED