Realizarea unui osciloscop cu un singur canal folosind Arduino

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





În această postare interesantă, vom face un osciloscop monocanal simplu folosind Arduino și un computer personal, unde formele de undă vor fi prezentate pe afișajul PC-ului și frecvența și perioada de timp a undelor de intrare vor fi afișate pe ecranul de 16 x 2 .

Introducere

Fiecare pasionat de electronică a spus odată „Am un vis, într-o zi voi cumpăra un osciloscop”, dar este încă vis de mulți să dețină un osciloscop decent pentru proiectele și experimentele lor.



Osciloscopul fiind echipament scump chiar și pentru un model entry level, le considerăm ca un instrument electronic de lux și am putea pune capăt experimentelor și proiectelor noastre, deoarece nu ne putem permite unul.

Acest proiect ar putea fi un schimbător de jocuri pentru mulți, pasionații de electronică nu trebuie să cheltuiască tone de bani pentru un osciloscop pentru a măsura parametrii de bază ai unei unde.



Ideea propusă are o funcționalitate foarte limitată, așa că nu vă așteptați la caracteristicile de pe un osciloscop high end să fie prezent în acest proiect. Obținem trei funcționalități solide din acest proiect:

1) reprezentarea vizuală a formei de undă pe ecranul computerului

2) măsurarea frecvenței undei de intrare

3) Măsurarea perioadei de timp a undei de intrare în microsecunde.

Frecvența și perioada de timp a semnalului vor fi prezentate pe ecranul LCD de 16 x 2. Există două metode pentru reprezentarea vizuală a formei de undă pe ecranul computerului, care va fi descrisă în partea ulterioară a articolului.

Acum să ne adâncim în partea tehnică a configurării.

Setarea propusă constă din arduino, care este creierul proiectului nostru ca de obicei, un afișaj LCD de 16 x 2, IC 7404, potențiometru 10K și un computer, de preferință un aparat Windows.

Arduino este creierul configurării și trebuie să alegem Arduino UNO sau Arduino mega sau Arduino nano pentru acest proiect, deoarece alte modele nu au convertor USB-serial încorporat, care este esențial pentru comunicarea între Arduino și computer.

Dacă alegem alte modele de placă arduino, avem nevoie de convertor USB-serial extern care ar putea complica proiectul.

Ilustrația conexiunii LCD la Arduino:

Afișaj LCD cu osciloscop monocanal

Circuitul de mai sus se explică de la sine. Putem găsi o conexiune similară între afișaj și arduino pe alte proiecte bazate pe LCD.

Potențiometrul de 10K este utilizat pentru a regla contrastul afișajului LCD 16 x 2 care trebuie setat de utilizator pentru o vizualizare optimă.

Osciloscop cu un singur canal folosind Arduino

Funcția IC 7404 este de a elimina orice semnal de zgomot de la intrare și alimentat la pinul de eșantionare a frecvenței A0. IC 7404 scoate numai unde dreptunghiulare, ceea ce reprezintă un mare avantaj pentru arduino, deoarece arduino este mai capabil să proceseze semnalul digital decât semnalele analogice.

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

Odată ce ați finalizat partea hardware și ați încărcat codul de mai sus. Este timpul să trasați forma de undă pe ecranul computerului. Acest lucru se poate face în două moduri, cel mai simplu și mai leneș este descris mai jos.

Metoda 1:

• Conectați firul de intrare la pinul 9 al arduino (modul Test).
• Deschideți IDE-ul Arduino (trebuie să fie versiunea 1.6.6 sau mai mare)
• Mergeți la fila „instrumente” și selectați plotterul serial

De îndată ce se deschide plotterul serial, puteți vedea unda dreptunghiulară care este generată de pinul arduino # 9, ilustrat mai jos.

undă dreptunghiulară care este generată de pinul arduino # 9

Apăsați butonul pentru a afișa citirile și, de asemenea, pentru reîmprospătarea citirilor pe ecranul LCD, acesta trebuie să afișeze în jur de 490Hz în „modul de testare”.

Schema modului de testare:

Modul de testare este de a verifica funcționarea corectă a osciloscopului. Pinul # 9 este programat pentru a da ieșire la 490Hz.

Metoda 2:

Această metodă este relativ ușoară, dar trebuie să descărcăm software-ul de pe linkul dat: http://www.x-io.co.uk/downloads/Serial-Oscilloscope-v1.5.zip

Acest software ne va oferi puțin mai mult control și caracteristici în comparație cu plotterul serial arduino. Putem mări și micșora forma de undă generată, putem seta funcționalitatea declanșatorului, controlați controlul asupra axelor verticale și orizontale etc.

• Descărcați software-ul și extrageți-l.

• Acum faceți dublu clic pe aplicația Serial Oscilloscope.

plotter serial arduino

• Va apărea o fereastră, după cum este ilustrat mai jos, și va selecta rata de transmisie la 9600.

selectați rata de transmisie la 9600.

• Acum selectați fila „Port serial” și selectați portul COM potrivit, care poate varia de la computer la computer. Dacă selectați portul COM corect, puteți vedea citirile așa cum este ilustrat mai jos.

• Acum selectați fila „osciloscop” și selectați „canalele 1, 2 și 3” (prima opțiune).

Acum selectați fila „osciloscop” și selectați „canalele 1, 2 și 3” (prima opțiune). Forma de undă de la osciloscopul cu un singur canal folosind Arduino

• Puteți vedea semnalul de test generat de la Arduino așa cum este ilustrat mai jos.

După cum puteți vedea, există câteva butoane de control pe software prin care puteți analiza mai bine forma de undă.

NOTĂ:

Configurarea propusă are un dezavantaj major:

Arduino nu poate afișa simultan forma de undă de intrare pe ecranul computerului și citirea frecvenței / perioadei de timp pe ecranul LCD. Pentru a depăși această problemă, este furnizat un buton pentru citirea / reîmprospătarea frecvenței și a perioadei de timp pe ecranul LCD.

Odată ce apăsați butonul, acesta va afișa frecvența și perioada de timp pe afișajul LCD, în același timp, forma de undă va îngheța pe ecranul computerului, atâta timp cât continuați să apăsați butonul.

De asemenea, puteți considera acest lucru ca un avantaj, deoarece puteți opri frecvența pe monitorul computerului în orice moment și acest lucru vă poate oferi timp pentru a analiza forma de undă afișată.

Prototipul autorului:

Imagine prototip pentru circuitul osciloscopului Arduino

Dacă aveți întrebări suplimentare cu privire la acest circuit osciloscop Arduino cu un singur canal, vă rugăm să nu ezitați să utilizați caseta de comentarii de mai jos pentru a vă exprima opiniile specifice.




Precedent: Arduino Meter Frequency folosind afișajul 16 × 2 Următorul: Circuitul emițătorului Internet LiFi - Transfer semnal USB prin LED