Padarykite skaitmeninį osciloskopą Via Arduino: 3 žingsniai

Padarykite skaitmeninį osciloskopą Via Arduino: 3 žingsniai

Turinys:

Anonim

Dažnai matomi žmonės, kurie naudojasi skaitmeniniu skaitmeniniu osciloskopu, DSO turi turėti skaitmeninį analoginį konversijos įrenginį, pagal d / a konversijos grandinę galima suskirstyti į du režimus: 1. Specialusis ADC lustas + vieno lusto, 2. naudojant vieno lusto ADC skaičiavimą konverteris. Pirmuoju modeliu, kurį bandžiau du (žr. Mano dienoraštį: http://blog.Sina.com.CN/ntwhq), ši grandinė yra šiek tiek sudėtingesnė, sudėtingesnis komponentas, pradedantiesiems sunku. Antroji struktūra yra gana paprasta, lengva padaryti, tačiau turi didelį trūkumą, ty, esant siauram pralaidumui, vienas iš tipiškesnių darbų yra http://www.serasidis.gr/circuits/AVR_oscilloscope/avr_oscilloscope draugai užsienyje. htm, tik osciloskopo pralaidumas tik 7.7KHz. Vidaus vartotojai ir STC vieno lusto AVR gamyba, tačiau tikrasis pralaidumas yra mažesnis nei 10KHz. Taip pat galite pasirinkti naudoti „Fusion PCB“, kad galėtumėte gaminti PCB plokštę vietoj litavimo.

Prekės:

1 veiksmas: kodas

Neseniai matėme neto draugą su Arduino osciloskopu, jis gali būti paprastesnis už antrąjį metodą, tačiau jų rezultatai nėra idealūs, pralaidumas yra siauras. Taigi norėjau pabandyti pamatyti ir nėra gero būdo išspręsti šią problemą. Gautas eksperimentas, nuolat keičiantis kodą ir patobulintas d / konversijos mėginių skaičius, pasiekta labai gerų rezultatų.

Pagrindiniai galutinio produkto parametrai: Dažnio atsakas: 10 Hz-50KHz Maitinimo šaltinis: 5V LCD skystųjų kristalų ekranas: 128x64 (ST7920) Matavimo rodymo sritis: 96x64 Informacijos ekranas: 32x64, parodo bandymo signalo dažnį, Vpp ir dar daugiau Sinchronizavimas: kylantis kraštas sukelia nuskaitymo greitį: 0,02ms / div ~ 10ms / div, atliekant devynis 1-2-5 sulaikymo funkcijas: užšaldykite rodomą bangų formą ir parametrus Antras, pagrindinis testas Naudojant didžiausią „Arduino“ projekto pranašumą, reikia turėti daug išteklių daug žinių apie SCM. Naudojau saugyklą u8glib LCD, kad būtų lengviau programuoti, arba LCD diskas jums kainuos daug laiko. U8glib parsisiųsti: u8glib_arduino_v1.13.zip (989.55 KB, parsisiųsti: 2577) Čia yra mano pirmoji testavimo grandinė, skirta „Arduino UNO“ pastatui. Tol, kol įvedus šį kodą įvedus metodą galėsite pasiekti pagrindines skaitmeninės osciloskopo funkcijas, ar tai būtų paprasčiau? # Įtraukti // pareiškimą U8GLIB_ST7920_128X64_4X u8g (13, 12, 11); Pranešimas LCD SPI Com: SCK = 13, MOSI = 12, CS = 11 int x, y; Dažytos taškų koordinatės bu Buffer 128; „Cache storage array void setup“ () {} Pavyzdinis tuščiasis pavyzdys () {už (x = 0; x <128; x ++) Buferis x = analoginis (A0); Signalo mėginių ėmimas (x = 0; x <128; x ++) buferiui x = 63- (buferis x >> 4); Apskaičiuokite y reikšmes} Ekrano negaliojantis piešinys () {už (x = 0; x <127; x ++) u8g.drawLine (x, buferis x, x, buferis x + 1); Piešti dvi eilutes u8g.drawLine (64,0,64,63); Nubraižykite ašis u8g.drawLine (0,32,128,32); Už (x = 0; x <128; x + = 8) // atkreipia ašies skalę u8g.drawLine (x, 31, x, 33); už (x = 0; x <64; x + = 8) u8g.drawLine (63, x, 65, x); u8g.drawFrame (0,0,128,64); Lygiosios sienos} tuščia kilpa () {pavyzdys (); Pavyzdys u8g.firstPage (); Išvalykite ekraną (); Rodyti, kol (u8g.nextPage ());

}

2 žingsnis: grandinė

Naudojant bandymų grandinę, mano „Arduino“ yra matuojamas tiesiogiai naudojant „AnalRead“ () funkciją, kad būtų užbaigtas skelbimas / konversija apie 111 μs konversijos greitis yra lėtas, todėl jos dažnių juostos plotis yra 1KHz, o kitas prioritetas - pagerinti skaitmeninio analogo greitį konversijos metu, pridedant kitas funkcijas.

Trečia, naujausios programos Čia yra naujausias šaltinio kodas, naudokitės mano „LOGO“, HA HA. Arduino_oscilloscope.zip (2.72 KB, parsisiųsti: 2710)

Programinės lusto 1.1V ADC naudojimo įtampos nuoroda, jei norite naudoti išorinę 5V atskaitos įtampą, turėtų būti programa ADMUX = 0xe0; Į: ADMUX = 0x60; Vpp = (V_max-V_min) * 1,1 / 255; skaityti: Vpp = (V_max-V_min) * 5/255;

Naudokite „Fusion PCB“ gali padaryti daug geresnę plokštę.

Keturi, mašina pagaminti Eksperimentai naudojant Arduino UNO aukščiau, faktinė kortelė naudojant Arduino PRO mini, kad būtų mažesnis tūris.

Grandinės schema:

Pagrindinis komponentų sąrašas: Numeris pavadinimas Arduino PRO mini 1 LCD12864 LCD (ST7920) 1 elektrolitiniai kondensatoriai (100 μ 25V) 1 potenciometras (50 k) 1 skylė 3 maitinimo jungiklis 1 akumuliatoriaus kasetė 2 mygtuko jungiklis (su įkraunama baterija, 7) 1 atvejis 1

1, suvirinimas Arduino PRO mini PIN.

2, suvirinimo plokštės komponentai

3, skystųjų kristalų skylės plokštė

4, sumontuoti plokštes

5, padarius atvejį, naudojosi įkrovos restruktūrizavimu lobio dėžutėje su plastikiniu korpusu, tinkamoje vietoje ant skylės.

6, Asamblėja

Įdėkite plokštelę į dėklą su storu baltu skydeliu, pritvirtintu prie priekinio skydelio vidinės pusės.

3 veiksmas: įkėlimas ir testavimas

Dėl „Arduino PRO mini“ neperjungia USB nuosekliojo prievado grandinė, todėl persiunčiama per USB nuosekliojo prievado atsisiuntimą prieš atsisiųsti programą.

Osciloskopo derinimas yra labai paprastas, tiesiog reikia reguliuoti 50 k potenciometrą horizontaliai. Aš naudoju signalo generatoriaus signalo šaltinį.

Boot LOGO

Testavimas:

kai kurie paaiškinimai

1, tai yra vienas iš paprasčiausių skaitmeninių osciloskopų, kurį galite toliau tobulinti;

2, galbūt pastebėjote, kad aš nesinaudoju I / O prievadu 0-7, kuris atsitinka 8 bitų AVR vieno lusto mikrokompiuteriui ir burnai. gali būti naudojamas kaip duomenų įvedimas, jei jus domina osciloskopas, tada aš apsvarstysiu atnaujinimą;

3, darbas buvo skubotas ir turi kokių nors trūkumų ir trūkumų, prašome patarti, turite kokių nors klausimų, kuriuos galite pateikti čia.