Buat Digital Oscilloscope Melalui Arduino: 3 Langkah

Buat Digital Oscilloscope Melalui Arduino: 3 Langkah

Isi kandungan:

Anonim

Sering kali dilihat orang yang membuat osiloskop digital dalam talian, DSO mesti mempunyai unit penukaran digital-analog, mengikut litar penukaran d / a boleh dibahagikan kepada dua mod: 1. Cip ADC khas + cip tunggal, 2. menggunakan kiraan ADC tunggal cip di dalam penukar. Untuk model pertama saya mencuba dua (lihat blog saya: http://blog.Sina.com.CN/ntwhq), litar ini sedikit lebih rumit, komponennya lebih sukar untuk diselesaikan, sukar untuk pemula. Struktur kedua adalah agak mudah, mudah dibuat, tetapi mempunyai kelemahan yang signifikan, iaitu, dengan lebar jalur sempit, salah satu karya yang lebih tipikal adalah rakan-rakan di luar negara http://www.serasidis.gr/circuits/AVR_oscilloscope/avr_oscilloscope. htm, jalur lebar osiloskop hanya 7.7KHz. Pengguna domestik dan AVC cip tunggal pengeluaran AVR, tetapi bandwidth sebenar kurang daripada 10KHz.Anda juga boleh memilih untuk menggunakan Fusion PCB untuk membuat papan PCB bukannya pematerian sendiri.

Bekalan:

Langkah 1: Kod

Baru-baru ini melihat rakan bersih dengan osiloskop Arduino, mungkin lebih mudah daripada kaedah kedua di atas, tetapi hasilnya tidak sesuai, jalur lebar sempit. Jadi saya ingin mencuba dan melihat dan tidak ada cara yang baik untuk menyelesaikan masalah ini. Dihasilkan oleh percubaan, dan sentiasa mengubah kod, dan meningkatkan kadar sampel penukaran yang lebih baik, hasil yang sangat baik telah dicapai.

Parameter utama produk akhir: Respon frekuensi: 10Hz-50KHz Bekalan kuasa: Skrin LCD LCD 5V: 128x64 (ST7920) Paparan kawasan paparan: 96x64 Paparan maklumat: 32x64, memaparkan kekerapan isyarat ujian, Vpp, kelajuan yang mencetuskan kelajuan Imbas: 0.02ms / div ~ 10ms / div, yang membawa sembilan 1-2-5 Fungsi: membekukan bentuk gelombang yang dipaparkan dan parameter Kedua, ujian asas Menggunakan kelebihan terbesar projek Arduino adalah sumber yang kaya, dan tidak perlu banyak pengetahuan mengenai SCM. Saya menggunakan LCD u8glib repositori, menjadikannya lebih mudah untuk program, atau pemacu LCD akan menyebabkan anda banyak masa. U8glib muat turun: u8glib_arduino_v1.13.zip (989.55 KB, muat turun: 2577) Berikut adalah litar ujian pertama saya untuk bangunan Arduino UNO, daripada 12864 LCD LCD menggunakan kawalan ST7920. Selagi kaedah input dalam kod berikut, dikumpulkan selepas muat turun, anda boleh mencapai fungsi dasar osiloskop digital, bukankah lebih mudah? # Termasuk // pernyataan U8GLIB_ST7920_128X64_4X u8g (13, 12, 11); Penyataan LCD SPI Com: SCK = 13, MOSI = 12, CS = 11 int x, y; Koordinat titik dicat int Buffer 128; Penyediaan void storan penyimpanan cache () {} Contoh sampel tidak sah () {untuk (x = 0; x <128; x ++) Penampan x = analogRead (A0); Sampel isyarat untuk (x = 0; x <128; x ++) Buffer x = 63- (Buffer x >> 4); Hitung nilai y} Tunjukkan kekosongan lukis () {untuk (x = 0; x <127; x ++) u8g.drawLine (x, Buffer x, x, Buffer x + 1); Lukis dua baris u8g.drawLine (64,0,64,63); Lukis paksi u8g.drawLine (0,32,128,32); Untuk (x = 0; x <128; x + = 8) // lukis skala paksi u8g.drawLine (x, 31, x, 33); untuk (x = 0; x <64; x + = 8) u8g.drawLine (63, x, 65, x); u8g.drawFrame (0,0,128,64); Draw border} void loop () {sample (); Contoh u8g.firstPage (); Skrin jelas buat (); Paparan sementara (u8g.nextPage ());

}

Langkah 2: Litar

Menggunakan litar ujian, Arduino saya diukur dengan menggunakan fungsi analogRead () untuk menyelesaikan iklan / penukaran untuk kira-kira 111 penukaran kelajuan perlahan, sehingga lebar jalurnya adalah 1KHz, keutamaan seterusnya adalah untuk meningkatkan kelajuan digital-analog penukaran, sambil menambah ciri-ciri lain.

Ketiga, program terbaharu Berikut adalah kod sumber terkini yang digunakan, sila simpan LOGO boot saya, HA HA. Arduino_oscilloscope.zip (2.72 KB, muat turun: 2710)

Cip program 1.1V ADC menggunakan rujukan voltan yang dinyatakan di atas, jika anda ingin menggunakan voltan rujukan 5V luaran hendaklah menjadi program ADMUX = 0xe0; Kepada: ADMUX = 0x60; Vpp = (V_max-V_min) * 1.1 / 255; baca: Vpp = (V_max-V_min) * 5/255;

Gunakan Fusion PCB boleh membuat papan litar yang lebih baik.

Empat, mesin dibuat Eksperimen menggunakan Arduino UNO di atas, sebenarnya jika menggunakan Arduino PRO mini, supaya mempunyai jumlah yang lebih kecil.

Rajah rajah:

Senarai komponen utama: Nama nombor Arduino PRO mini 1 LCD12864 LCD (ST7920) 1 kapasitor elektrolitik (100 μ 25V) 1 potentiometer (50k) 1 lubang plat 3 suis kuasa 1 suis butang kartrij bateri 2 (dengan bateri boleh dicas semula, 1, PIN mini Arduino PRO kimpalan.

2, komponen papan litar kimpalan

3, membuat plat lubang lcd

4, memasang papan litar

5, membuat kes itu saya menggunakan penstrukturan semula mengisi kotak harta karun dengan sarung plastik, di tempat yang sesuai di lubang.

6, Perhimpunan

Muatkan papan litar ke dalam kes itu, dengan panel putih tebal, melekat pada bahagian dalam panel depan.

Langkah 3: Muat naik dan Uji

Oleh kerana mini Arduino PRO tidak menghidupkan litar port bersiri USB, jadi untuk memindahkan melalui muat turun port siri USB sebelum memuat turun program.

Debugging osiloskop sangat mudah, hanya perlu menyesuaikan 50k pusat Potentiometer yang mengimbas imbasan mendatar. Saya menggunakan sumber isyarat penjana isyarat.

LOGO Boot

Ujian:

beberapa penjelasan

1, ini adalah salah satu daripada Oscilloscopes digital yang paling mudah, anda boleh terus memperbaiki asas ini;

2, anda mungkin perasan bahawa saya tidak menggunakan port I / O 0-7, yang berlaku sebagai mikrokomputer dan mulut cip tunggal AVR 8 bit, inilah yang saya sediakan untuk peningkatan seterusnya, menggunakan cip ADC khas, ia boleh digunakan sebagai kemasukan data, jika anda berminat dengan oscilloscope, maka saya akan mempertimbangkan untuk menaik taraf;

3, kerja tergesa-gesa dan ada kecacatan dan kekurangan, sila maklumkan, anda mempunyai sebarang pertanyaan yang anda boleh lakukan di sini.