Wykonanie oscyloskopu jednokanałowego przy użyciu Arduino

Wypróbuj Nasz Instrument Do Eliminowania Problemów





W tym interesującym poście zamierzamy wykonać prosty oscyloskop jednokanałowy przy użyciu Arduino i komputera osobistego, w którym przebiegi będą wyświetlane na wyświetlaczu komputera, a częstotliwość i okres fal wejściowych będą wyświetlane na wyświetlaczu 16 x 2 .

Wprowadzenie

Każdy entuzjasta elektroniki powiedział kiedyś: „Mam marzenie, kiedyś kupię oscyloskop”, ale wielu wciąż marzy o posiadaniu przyzwoitego oscyloskopu do swoich projektów i eksperymentów.



Oscyloskop jest drogim sprzętem nawet dla podstawowego modelu, uważamy go za luksusowe narzędzie elektroniczne i możemy wstrzymać nasze eksperymenty i projekty, ponieważ nas na to nie stać.

Ten projekt może być dla wielu entuzjastów elektroniki punktem zwrotnym, nie trzeba wydawać ton pieniędzy na oscyloskop do pomiaru podstawowych parametrów fali.



Proponowany pomysł ma bardzo ograniczoną funkcjonalność, więc nie oczekuj funkcji na wysokiej klasy oscyloskop być obecnym w tym projekcie. Z tego projektu otrzymujemy trzy solidne funkcjonalności:

1) wizualna reprezentacja przebiegu na ekranie komputera

2) pomiar częstotliwości fali wejściowej

3) Pomiar okresu czasu fali wejściowej w mikrosekundach.

Częstotliwość i okres czasu sygnału zostaną pokazane na wyświetlaczu LCD 16 x 2. Istnieją dwie metody wizualnego przedstawienia przebiegu na ekranie komputera, które zostaną opisane w dalszej części artykułu.

Przejdźmy teraz do technicznej części konfiguracji.

Proponowana konfiguracja składa się z arduino, które jak zwykle jest mózgiem naszego projektu, wyświetlacza LCD 16 x 2, IC 7404, potencjometru 10K i komputera, najlepiej maszyny z systemem Windows.

Arduino jest mózgiem konfiguracji i musimy wybrać Arduino UNO, Arduino mega lub Arduino nano do tego projektu, ponieważ inne modele nie mają wbudowanego konwertera USB na port szeregowy, który jest niezbędny do komunikacji między Arduino a komputerem.

Jeśli wybierzemy inne modele płyty arduino, potrzebujemy zewnętrznego konwertera USB na port szeregowy, który może skomplikować projekt.

Ilustracja połączenia LCD z Arduino:

Jednokanałowy wyświetlacz LCD oscyloskopu

Powyższy obwód jest oczywisty. Podobne połączenie między wyświetlaczem a arduino możemy znaleźć w innych projektach opartych na LCD.

Potencjometr 10K służy do regulacji kontrastu wyświetlacza LCD 16 x 2, który musi być ustawiony przez użytkownika dla optymalnego widoku.

Oscyloskop jednokanałowy wykorzystujący Arduino

Zadaniem układu IC 7404 jest eliminacja sygnału szumu z wejścia i doprowadzenie go do styku próbkowania częstotliwości A0. IC 7404 generuje tylko fale prostokątne, co jest wielką zaletą dla arduino, ponieważ arduino jest bardziej zdolny do przetwarzania sygnału cyfrowego niż sygnały analogowe.

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

Po ukończeniu części sprzętowej i przesłaniu powyższego kodu. Czas wykreślić przebieg na ekranie komputera. Można to zrobić na dwa sposoby. Najłatwiejszy i najbardziej leniwy sposób opisano poniżej.

Metoda 1:

• Podłącz przewód wejściowy do pinu # 9 arduino (tryb testowy).
• Otwórz Arduino IDE (musi to być wersja 1.6.6 lub nowsza)
• Przejdź do zakładki „narzędzia” i wybierz ploter szeregowy

Gdy tylko ploter szeregowy się otworzy, możesz zobaczyć prostokątną falę, która jest generowana z pinu nr 9 arduino, pokazanego poniżej.

prostokątna fala generowana z pinu nr 9 arduino

Naciśnij przycisk, aby wyświetlić odczyty, a także w celu odświeżenia odczytów, wyświetlacz LCD musi wskazywać około 490 Hz w „trybie testowym”.

Schemat trybu testowego:

Tryb testowy polega na sprawdzeniu poprawności działania oscyloskopu. Pin # 9 jest zaprogramowany na wyjście 490 Hz.

Metoda 2:

Ta metoda jest stosunkowo łatwa, ale musimy pobrać oprogramowanie z podanego linku: http://www.x-io.co.uk/downloads/Serial-Oscilloscope-v1.5.zip

To oprogramowanie da nam trochę więcej kontroli i funkcji w porównaniu do plotera szeregowego arduino. Możemy przybliżać i oddalać generowany przebieg, możemy ustawić funkcjonalność wyzwalania, kontrolę przesunięcia względem osi pionowej i poziomej itp.

• Pobierz oprogramowanie i rozpakuj.

• Kliknij dwukrotnie aplikację Serial Oscilloscope.

ploter seryjny arduino

• Pojawi się okno, jak pokazano poniżej, i wybierz prędkość transmisji na 9600.

wybierz prędkość transmisji na 9600.

• Teraz wybierz zakładkę „Serial port” i wybierz właściwy port COM, który może różnić się komputerem. Jeśli wybierzesz właściwy port COM, zobaczysz odczyty, jak pokazano poniżej.

• Teraz wybierz zakładkę „oscyloskop” i wybierz „kanały 1, 2 i 3” (pierwsza opcja).

Teraz wybierz zakładkę „oscyloskop” i wybierz „kanały 1, 2 i 3” (pierwsza opcja). Przebieg z oscyloskopu jednokanałowego przy użyciu Arduino

• Możesz zobaczyć wygenerowany sygnał testowy z Arduino, jak pokazano poniżej.

Jak widać w oprogramowaniu znajdują się przyciski sterujące, za pomocą których można lepiej analizować przebieg.

UWAGA:

Proponowana konfiguracja ma jedną zasadniczą wadę:

Arduino nie może jednocześnie wyświetlać przebiegu wejściowego na ekranie komputera i odczytu częstotliwości / okresu na wyświetlaczu LCD. Aby rozwiązać ten problem, zastosowano przycisk do odczytu / odświeżania częstotliwości i okresu na wyświetlaczu LCD.

Po naciśnięciu przycisku na wyświetlaczu LCD pojawi się częstotliwość i okres czasu, a przebieg zatrzyma się na ekranie komputera tak długo, jak długo naciśniesz przycisk.

Możesz również uznać to za zaletę, ponieważ możesz zatrzymać częstotliwość na monitorze komputera w dowolnym momencie, co może dać ci czas na analizę wyświetlanego przebiegu.

Prototyp autora:

Obraz prototypowy dla obwodu oscyloskopu Arduino

Jeśli masz dalsze pytania dotyczące tego prostego jednokanałowego obwodu oscyloskopu Arduino, możesz skorzystać z poniższego pola komentarza, aby wyrazić swoje konkretne poglądy




Poprzedni: Miernik częstotliwości Arduino z wyświetlaczem 16 × 2 Dalej: Obwód nadajnika internetowego LiFi - przesyłanie sygnału USB przez diodę LED