Arduino Üzerinden Dijital Osiloskop Yapın: 3 Adım

Arduino Üzerinden Dijital Osiloskop Yapın: 3 Adım

İçindekiler:

Anonim

Genellikle çevrimiçi dijital osiloskop yapan insanlar görülüyor, DSO dijital / analog dönüşüm ünitesine sahip olmalı, d / a dönüşüm devresine göre iki moda ayrılabilir: 1. Özel ADC çip + tek çip, 2. içinde tek çipli ADC sayımı kullanılarak dönüştürücü. İlk denemede iki tane denedim (bkz. Blogum: http://blog.Sina.com.CN/ntwhq), bu devre biraz daha karmaşık, bileşenlerin tamamlanması daha zor, yeni başlayanlar için zor. İkinci yapı nispeten basittir, yapımı kolaydır, ancak önemli bir dezavantajı vardır; yani, dar bant genişliği ile, daha tipik çalışmalardan biri http://www.serasidis.gr/circuits/AVR_oscilloscope/avr_oscilloscope'un denizaşırı dostlarıdır. htm, osiloskopun bant genişliği sadece 7.7KHz'dir. Yerli kullanıcılar ve STC tek yongalı AVR üretimi, ancak gerçek bant genişliği 10KHz'den az. Ayrıca, lehimleme yerine PCB kartı yapmak için Fusion PCB kullanmayı da seçebilirsiniz.

Gereçler:

1. Adım: Kod

Son zamanlarda Arduino osiloskoplu bir net arkadaş gördüm, yukarıdaki ikinci yöntemden daha kolay olabilir, ancak sonuçları ideal değildir, bant genişliği dardır. Bu yüzden denemek ve görmek istedim ve bu sorunu çözmek için iyi bir yol yoktur. Deneme ile üretilir ve kodu sürekli olarak değiştirir ve dönüşüm oranını iyileştirirseniz, çok iyi sonuçlar elde edilmiştir.

Nihai ürünün ana parametreleri: Frekans cevabı: 10Hz-50KHz Güç kaynağı: 5V LCD LCD ekran: 128x64 (ST7920) Ölçüm ekranı alanı: 96x64 Bilgi ekranı: 32x64, test sinyalinin, Vpp ve daha fazlasının frekansını gösterir Senk: yükselen kenar tetikleyicileri Tarama hızı: 0.02ms / div ~ 10ms / div, dokuz adet 1-2-5 Bekletme işlevi taşır: görüntülenen dalga biçimini ve parametrelerini dondur İkinci olarak, temel test Arduino projesinin en büyük avantajı, zengin kaynaklarıdır ve gerek yoktur SCM hakkında çok fazla bilgi. Bir depo u8glib LCD kullanarak programlamayı kolaylaştırarak yaptım, ya da LCD sürücü size zaman kazandıracak. U8glib indir: u8glib_arduino_v1.13.zip (989.55 KB, indirmeler: 2577) İşte Arduino UNO binası için yapılan ilk test devresi, 12879 LCD LCD, ST7920 kontrolünü kullanarak. Aşağıdaki koddaki giriş yöntemi, indirme işleminden sonra derlendikten sonra dijital osiloskopun temel işlevlerini elde edebilirsiniz, daha kolay olmaz mıydı? # // ifadesini dahil et U8GLIB_ST7920_128X64_4X u8g (13, 12, 11); Beyanı LCD SPI Com: SCK = 13, MOSI = 12, CS = 11 int x, y; Boyalı nokta koordinatları int Buffer 128; Önbellek depolama dizisi geçersiz kurulum () {} Örnek geçersiz örnek () {için (x = 0; x <128; x ++) Tampon x = analogRead (A0); (X = 0; x <128; x ++) için tampon örneklemesi Tampon x = 63- (Tampon x >> 4); Y değerlerini hesapla} Ekran boşluğunu göster () {((x = 0; x <127; x ++)) u8g.drawLine (x, Buffer x, x, Buffer x + 1); İki çizgi çizin u8g.drawLine (64,0,64,63); Eksenleri çizin u8g.drawLine (0,32,128,32); (X = 0; x <128; x + = 8) // için eksen ölçeğini çizin u8g.drawLine (x, 31, x, 33); (x = 0; x <64; x + = 8) u8g.drawLine (63, x, 65, x); u8g.drawFrame (0,0,128,64); Sınır çizin} void loop () {sample (); Örnek u8g.firstPage (); Ekranı temizle draw (); Gösteriliyor (u8g.nextPage ());

}

Adım 2: Devre

Test devresini kullanarak, Arduino'm yaklaşık 111 conversions dönüşüm hızı için reklamı / dönüşümü tamamlamak için analogRead () işlevini doğrudan ölçerek ölçülür, bant genişliği 1KHz'dir, bir sonraki öncelik dijital-analog hızını arttırmaktır. dönüştürme, diğer özellikleri eklerken.

Üçüncüsü, en yeni programlar İşte en son kullanılan kaynak kod, lütfen önyüklemem LOGO, HA HA. Arduino_oscilloscope.zip (2.72 KB, indirmeler: 2710)

Program çipi 1.1V ADC yukarıda belirtilen voltaj referansını kullanın, harici 5V referans voltajı kullanmak istiyorsanız ADMUX = 0xe0; Kime: ADMUX = 0x60; Vpp = (V_max-V_min) * 1.1 / 255; okuma: Vpp = (V_max-V_min) * 5/255;

Fusion PCB kullanmak daha iyi bir devre kartı yapabilir.

Dört, makine yukarıda Arduino UNO, daha küçük bir hacme sahip olmak için Arduino PRO mini kullanırken gerçek kart kullanarak deneyler yaptı.

Devre şeması:

Ana bileşen listesi: Numara adı Arduino PRO mini 1 LCD12864 LCD (ST7920) 1 elektrolitik kondansatörler (100 μ 25V) 1 potansiyometre (50k) 1 delik plakası 3 güç düğmesi 1 pil kartuşu 2 düğme anahtarı (şarj edilebilir pil ile, 7.) 1 Kutu 1

1, kaynak Arduino PRO mini PIN.

2, kaynak devre kartı bileşenleri

3, LCD delik plakası yapmak

4, devre kartları montajı

Şekil 5'de, haznenin plastik hazneli doldurma yeniden yapılandırmasını deliğin uygun yerinde kullandım.

6, Meclis

Devre kartını, ön panelin içine takılı kalın beyaz Panel ile kasaya yerleştirin.

Adım 3: Yükleme ve Test Etme

Arduino PRO mini nedeniyle, USB seri port devresini açmaz, böylece programı indirmeden önce bir USB seri port indirerek aktarmak için.

Osiloskop hata ayıklama çok basittir, sadece potansiyometreyi 50k ayarlamak yatay taramayı ortalayın. Bir sinyal üreteci sinyal kaynağı kullanıyorum.

Önyükleme LOGOSU

Test yapmak:

bazı açıklamalar

1, bu en basit dijital Osiloskoplardan biridir, bu bazda daha da geliştirebilirsiniz;

2, bir 8-bit AVR tek çipli mikrobilgisayar ve ağzı olan G / Ç bağlantı noktası 0-7 kullanmadığımı fark etmiş olabilirsiniz, bu, daha sonraki yükseltmeler için hazırladığım özel ADC yongasını kullanarak, osiloskop ile ilgileniyorsanız, veri girişi olarak kullanılabilir, o zaman yükseltme düşüneceğim;

3, iş koştu ve herhangi bir kusur ve eksiklikleri var, lütfen tavsiye, burada canalso herhangi bir sorunuz var.