U ovom zanimljivom postu napravit ćemo jednostavan jednokanalni osciloskop pomoću Arduina i osobnog računala, gdje će valni oblici biti prikazani na zaslonu računala, a frekvencija i vremensko razdoblje ulaznih valova na zaslonu 16 x 2 .
Uvod
Svaki zaljubljenik u elektroniku jednom je rekao 'Imam san, jednog ću dana kupiti osciloskop', ali mnogima je još uvijek san da posjeduju pristojan osciloskop za svoje projekte i eksperimente.
Osciloskop je skupa oprema čak i za početni model, smatramo ih luksuznim elektroničkim alatom i možda bismo zaustavili naše eksperimente i projekte jer si ih ne možemo priuštiti.
Ovaj bi projekt mnogima mogao promijeniti igru, zaljubljenici u elektroniku ne trebaju trošiti tone novca za osciloskop za mjerenje osnovnih parametara vala.
Predložena ideja ima vrlo ograničenu funkcionalnost, pa nemojte očekivati značajke na a vrhunski osciloskop biti prisutan u ovom projektu. Ovim projektom dobivamo tri solidne funkcionalnosti:
1) vizualni prikaz valnog oblika na zaslonu računala
2) mjerenje frekvencije ulaznog vala
3) Mjerenje vremenskog razdoblja ulaznog vala u mikrosekundama.
Frekvencija i vremensko razdoblje signala bit će prikazani na LCD zaslonu 16 x 2. Postoje dvije metode za vizualno predstavljanje valnog oblika na zaslonu računala koje će biti opisane u daljnjem dijelu članka.
Sada zaronimo u tehnički dio postavljanja.
Predložena postavka sastoji se od arduina koji je mozak našeg projekta kao i obično, LCD zaslona 16 x 2, IC 7404, potenciometra 10K i računala, po mogućnosti Windows stroja.
Arduino je mozak postavljanja i za ovaj projekt moramo odabrati Arduino UNO ili Arduino mega ili Arduino nano, jer drugi modeli nemaju ugrađeni USB u serijski pretvarač koji je neophodan za komunikaciju između Arduina i računala.
Ako odaberemo druge modele arduino ploče, potreban nam je vanjski USB u serijski pretvarač koji bi mogao zakomplicirati projekt.
Ilustracija povezivanja LCD-a i Arduina:
Gornji sklop je samorazumljiv. Sličnu vezu između zaslona i arduina možemo pronaći i na drugim LCD projektima.
Potenciometar 10K koristi se za podešavanje kontrasta LCD zaslona 16 x 2 koji korisnik mora postaviti za optimalan prikaz.
Funkcija IC 7404 je uklanjanje svakog signala buke s ulaza i napajanja na pin za uzorkovanje frekvencije A0. IC 7404 emitira samo pravokutne valove što je velika prednost za arduino, jer je arduino sposobniji za obradu digitalnog signala od analognih.
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-----//
Nakon što dovršite hardverski dio i prenesete gornji kod. Vrijeme je za crtanje valnog oblika na ekranu računala. To se može učiniti na dva načina, najlakši i naj lijeniji način opisan je u nastavku.
Metoda 1:
• Spojite ulaznu žicu na pin # 9 arduina (testni način).
• Otvorite Arduino IDE (mora biti 1.6.6 ili novija verzija)
• Idite na karticu 'alati' i odaberite serijski crtač
Čim se otvori serijski ploter, možete vidjeti pravokutni val koji se generira iz arduinoovog pina br. 9, prikazan u nastavku.
Pritisnite gumb za prikaz očitanja, a također i za osvježavanje očitanja LCD zaslona, on mora prikazivati oko 490Hz u 'test modu'.
Shema testnog načina:
Način ispitivanja je provjera ispravnog rada osciloskopa. Pin # 9 programiran je tako da daje 490Hz izlaz.
Metoda 2:
Ova je metoda relativno jednostavna, ali moramo preuzeti softver s dane poveznice: http://www.x-io.co.uk/downloads/Serial-Oscilloscope-v1.5.zip
Ovaj softver pružit će nam malo više kontrole i značajki u usporedbi s arduinovim serijskim ploterom. Možemo povećavati i smanjivati generirani valni oblik, možemo postaviti funkcionalnost okidača, kontrolu pomaka nad okomitom i vodoravnom osi itd.
• Preuzmite softver i izvadite.
• Sada dvaput kliknite na aplikaciju Serial Oscilloscope.
• Otvorit će se prozor kao što je prikazano dolje i odaberite brzinu prijenosa na 9600.
• Sada odaberite karticu “Serial port” i odaberite odgovarajući COM port koji može razlikovati računalo od računala. Ako odaberete ispravni COM priključak, možete vidjeti očitanja kao što je prikazano u nastavku.
• Sada odaberite karticu „osciloskop” i odaberite „kanali 1, 2 i 3” (prva opcija).
• Možete vidjeti generirani testni signal iz Arduina kako je prikazano dolje.
Kao što vidite, na softveru postoje neki kontrolni gumbi pomoću kojih možete bolje analizirati valni oblik.
BILJEŠKA:
Predloženi postav ima jedan glavni nedostatak:
Arduino ne može istovremeno prikazati ulazni valni oblik na zaslonu računala i očitavanje frekvencije / vremenskog razdoblja na LCD zaslonu. Da biste prevladali ovaj problem, prisutan je gumb za očitavanje / osvježavanje frekvencije i vremenskog razdoblja na LCD zaslonu.
Jednom kada pritisnete tipku, na LCD zaslonu će se istovremeno prikazati frekvencija i vremensko razdoblje, dok će se valni oblik zamrznuti na zaslonu računala sve dok pritiskate tipku.
To možete smatrati i prednošću, jer frekvenciju na monitoru računala možete zaustaviti u bilo kojem trenutku, a to vam može dati vremena za analizu prikazanog valnog oblika.
Autorski prototip:
Ako imate dodatnih pitanja u vezi s ovim jednostavnim jednokanalnim Arduino osciloskopskim krugom, slobodno upotrijebite donji okvir za komentare za izražavanje svojih specifičnih stavova
Prethodno: Arduino mjerač frekvencije pomoću zaslona 16 × 2 Dalje: Krug internetskog odašiljača LiFi - USB prijenos signala kroz LED