Selles huvitavas postituses teeme Arduino ja personaalarvuti abil lihtsa ühekanalilise ostsilloskoobi, kus lainekuju kuvatakse arvuti ekraanil ning sisendlainete sagedus ja ajaperiood kuvatakse 16 x 2 ekraanil .
Sissejuhatus
Iga elektroonikahuviline ütles kord: 'Mul on unistus, ühel päeval ostan ostsilloskoobi', kuid paljude unistus on ikkagi omada oma projektide ja katsete jaoks korralik ostsilloskoop.
Ostsilloskoop on kallis seade isegi algtaseme mudeli jaoks. Peame neid luksuselektroonika tööriistaks ja võime katsed ja projektid peatada, kuna meil pole seda endale lubada.
See projekt võib olla paljude jaoks mängude vahetaja, elektroonikahuvilistel pole vaja laine põhiparameetrite mõõtmiseks ostsilloskoobi jaoks kulutada tonni raha.
Kavandatud ideel on väga piiratud funktsionaalsus, nii et ärge oodake funktsioone a tipptasemel ostsilloskoop selles projektis kohal olla. Sellest projektist saame kolm kindlat funktsionaalsust:
1) lainekuju visuaalne esitus arvuti ekraanil
2) sisendlaine sageduse mõõtmine
3) Sisendlaine ajaperioodi mõõtmine mikrosekundites.
Signaali sagedus ja ajavahemik kuvatakse 16 x 2 LCD ekraanil. Lainekuju visuaalseks kuvamiseks arvutiekraanil on kaks meetodit, mida kirjeldatakse artikli hilisemas osas.
Nüüd sukeldume seadistuse tehnilisse ossa.
Kavandatud seadistus koosneb arduinost, mis on meie projekt aju nagu tavaliselt, 16 x 2 LCD-ekraanist, IC 7404, 10K potentsiomeetrist ja arvutist, eelistatavalt Windowsi masinast.
Arduino on seadistamise põhiosa ja selle projekti jaoks peame valima Arduino UNO või Arduino mega või Arduino nano, kuna teistel mudelitel pole sisseehitatud USB-jadamuutjat, mis on Arduino ja arvuti vahel suhtlemiseks hädavajalik.
Kui valime muud arduino plaadi mudelid, vajame välist USB-jadamuundurit, mis võib projekti keeruliseks muuta.
LCD-Arduino ühenduse illustratsioon:
Ülaltoodud vooluring on iseenesestmõistetav. Saame ekraani ja arduino vahel sarnast ühendust leida teistel LCD-põhistel projektidel.
10K potentsiomeetrit kasutatakse 16 x 2 LCD-ekraani kontrastsuse reguleerimiseks, mille kasutaja peab optimaalseks vaatamiseks seadistama.
IC 7404 ülesandeks on kõrvaldada igasugune mürasignaal sisendist ja suunata sageduse proovivõtupoldile A0. IC 7404 väljastab ainult ristkülikukujulisi laineid, mis on arduino jaoks suur eelis, kuna arduino suudab digitaalsignaali rohkem töödelda kui analoogsignaale.
Programm:
//-----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-----//
Kui olete riistvaraosa lõpetanud ja ülaltoodud koodi üles laadinud. On aeg joonistada lainekuju arvutiekraanile. Seda saab teha kahel viisil, kõige lihtsam ja laisem on kirjeldatud allpool.
1. meetod:
• Ühendage sisendkaabel arduino kontakti nr 9 külge (testrežiim).
• Avage Arduino IDE (see peab olema 1.6.6 või uuem versioon)
• Minge vahekaardile „tööriistad” ja valige jada plotter
Niipea, kui jada plotter avaneb, näete ristkülikukujulist lainet, mis tekib allpool illustreeritud arduino tihvtist nr 9.
Näitude kuvamiseks vajutage nuppu ja ka LCD-ekraani näitude värskendamiseks peab see 'testrežiimis' näitama umbes 490 Hz.
Katserežiimi skeem:
Testrežiim on ostsilloskoobi nõuetekohase toimimise kontrollimine. Pin # 9 on programmeeritud andma 490Hz väljundit.
2. meetod:
See meetod on suhteliselt lihtne, kuid peame antud lingilt tarkvara alla laadima: http://www.x-io.co.uk/downloads/Serial-Oscilloscope-v1.5.zip
See tarkvara annab meile arduino jada plotteriga võrreldes veidi rohkem kontrolli ja funktsioone. Saame genereeritud lainekuju sisse ja välja suumida, saame seadistada päästiku funktsionaalsuse, tasakaalustada juhtimist vertikaalse ja horisontaalse telje kohal jne
• Laadige tarkvara alla ja ekstraktige.
• Nüüd topeltklõpsake rakendusel Serial Oscilloscope.
• Hüpatakse aken, nagu allpool illustreeritud, ja valige edastuskiiruseks 9600.
• Nüüd valige sakk „Serial port” ja valige sobiv COM-port, mis võib arvutist erinevaks muutuda. Kui valite õige COM-pordi, näete näiteid, nagu allpool illustreeritud.
• Nüüd valige sakk „ostsilloskoop“ ja valige „kanalid 1, 2 ja 3“ (esimene valik).
• Näete Arduino loodud genereeritud testisignaali, nagu allpool illustreeritud.
Nagu näete, on tarkvaras mõned juhtnupud, mille abil saate lainekuju paremini analüüsida.
MÄRGE:
Kavandatud seadistusel on üks suur puudus:
Arduino ei saa samaaegselt kuvada arvuti ekraanil sisendi lainekuju ja LCD-ekraanil sageduse / ajaperioodi lugemist. Selle probleemi lahendamiseks on LCD-ekraanil ette nähtud sageduse ja ajavahemiku lugemiseks / värskendamiseks nupp.
Kui vajutate nuppu, kuvatakse LCD-ekraanil sagedus ja ajavahemik samal ajal. Lainekuju külmub arvutiekraanil seni, kuni vajutate surunuppu.
Samuti võite seda pidada eeliseks, kuna saate arvutimonitori sageduse igal hetkel peatada ja see võib anda teile aega kuvatud lainekuju analüüsimiseks.
Autori prototüüp:
Kui teil on selle lihtsa ühekanalilise Arduino ostsilloskoobi ahela kohta täiendavaid küsimusi, kasutage oma konkreetsete vaadete väljendamiseks julgelt allolevat kommentaarikasti
Eelmine: Arduino sagedusmõõtur 16 × 2 ekraani abil Järgmine: LiFi Interneti-saatja vooluring - USB-signaali edastamine LED-i kaudu