I'd like to show you my new project. I've never had a generator and an oscilloscope so I decided to make these. I started making oscilloscope on Atmega32, but later I bought LPC2138 and it has DAC so I decided to change uC to LPC.
Generator
Few words about generator. Generator can generate sine wave, square wave and triangle wave. You can adjust duty cycle in range 1-99%. Amplitude of generating signal is 3.3V. I used an internal DAC to make this generator.
Oscilloscope
I used an internal ADC to make oscilloscope. It has these features:
time/div: 50us/div-500ms/div
voltage/div: 1V/div-50V/div
detection signal DC/AC
calculate frequency and duty cycle
calculate voltage
All values: frequency, duty cycle and voltage calculate only on based values from ADC that means frequency and duty cycle could not be accurate. Firstly oscilloscope detect signal if it is AC then calculate frequency, duty cycle and maximum of voltage. If detected signal is DC then only calculate average of voltage. Input of oscilloscope is very simple I only used a voltage divider and a range of input signal is ±30V.
LCD
I used LCD with a driver KS0108.
How to use these
I used 5 keys to choose option and input data for generator you can enter value through for example terminal Putty.
Code
I wrote it in C.
Video
On video I show you 3 different waves and measurement voltage of transformer. You can also watch earlier version of oscilloscope on Atmega at my YouTube channel.
Summary
This is simple oscilloscope with generator but what it's important it works. At main screen you can see a clock with thermometer as RTC: PCF8583, thermometer: DS18B20 and EEPROM: ATMEL24C256 to storage a configuration.
You are welcome to post your opinions of my project.
Chciałbym przedstawić mój nowy
projekt generator i oscyloskop. Z racji tego, że nie posiadam ani
oscyloskopu ani generatora, postawiłem zrobić te dwa urządzenia,
początkowo miałem to zrobić na Atmedze 32, ale z racji, że
ostatnio zacząłem przygodę z ARM, a w wykorzystanym ARM jest
przetwornik cyfrowo analogowy, dzięki któremu mogłem w prosty
sposób zrobić generator, wybór właśnie padł na ARM. Konstrukcja
przede wszystkim opiera się na zestawie uruchomieniowym ZL9ARM z
wykorzystaniem mikrokontrolera LPC2138.
Generator
Teraz kilka słów na temat generatora.
Generator potrafi generować przebiegi sinusoidalne, prostokątne i
trójkątne, z możliwością regulacji współczynnika wypełnienia
w zakresie 1-99%. Zakres generowanych częstotliwości wynosi od 1 Hz
do 100 kHz. Na wyjściu generatora mamy przebieg o amplitudzie 3.3V.
Do zrobienia generatora użyłem oczywiście wewnętrznego
przetwornika cyfrowo analogowego.
Oscyloskop
Oscyloskop powstał przy użyciu
wewnętrznego przetwornika analogowo cyfrowego, posiada takie
właściwości jak:
-podstawę czasu od 50us/dz do 500ms/dz
-podziałka napięcia od 1V/dz do
50V/dz
-detekcja sygnału DC/AC
-obliczanie częstotliwości i
współczynnika wypełnienia
-wyświetlanie napięcia
Wszystkie obliczenia dotyczące sygnału
wejściowego są tylko na podstawie wartości z przetwornika ADC,
dlatego pomiar częstotliwości jak i współczynnika nie zawsze jest
dokładny. Oscyloskop na podstawie wyników z przetwornika ADC robi
detekcję sygnału i w przypadku sygnału AC obliczana jest
częstotliwość i współczynnik wypełnienia, oraz wyliczana
maksymalna wartość napięcia. Natomiast w przypadku przebiegu DC
wyliczana średnia wartość napięcia. Tor wejściowy oscyloskopu to
zwykły dzielnik napięcia, od którego zależy przede wszystkim
zakres napięć wejściowych, należy również pamiętać, że im
większy zakres tym gorsza dokładność pomiaru napięcia. Przy
obecnych wartościach rezystorów zakres napięć wejściowych wynosi
do około ±30V.
Wyświetlacz
Do wyświetlania użyłem wyświetlacza
LCD ze sterownikiem KS0108.
Sterowanie
Sterowanie zarówno oscyloskopu jak i
generatora odbywa się przy użyciu 5 klawiszy, które są w zestawie
uruchomieniowym, natomiast wprowadzanie danych dla generatora odbywa
się przez RS232 z wykorzystaniem terminala.
Oprogramowanie
Całość została napisana w języku
C.
Film
Na filmie pokazane są 3 różne
przebiegi, jak i pomiar napięcia z transformatora. Na moim kanale
youtube można zobaczyć wcześniejsze próby na Atmedze 32. Na
filmie można zauważyć, że oprócz generatora i oscyloskopu są
jeszcze inne funkcje jak wyświetlanie czasu, daty, temperatury, ale
to taki dodatek do całości, który nie odnosi się do głównej
funkcjonalności.
Podsumowanie
Reasumując do projektu użyłem
zestawu uruchomieniowego, wyświetlacz LCD ze sterownikiem KS0108,
paru rezystorów służących jako dzielnik napięcia do toru
wejściowego oscyloskopu. Do pozostałej funkcjonalności którą
można zobaczyć na głównym ekranie użyłem jako RTC: PCF8583,
termometr DS18B20 i pamięć EEPROM ATMEL24C256 służącą do
przechowania konfiguracji.
Oczywiście jest to dość prosta konstrukcja, ale do moich prostych zastosowań jest wystarczająca :)