Lav et digitalt oscilloskop Via Arduino: 3 trin

Lav et digitalt oscilloskop Via Arduino: 3 trin

Indholdsfortegnelse:

Anonim

DSO skal ofte have digital-analog konverteringsenhed, ifølge d / a konverteringskredsløbet kan opdeles i to tilstande: 1. Special ADC chip + single-chip 2. Brug single-chip ADC tæller inde konverteren. For den første model forsøgte jeg to (se min blog: http://blog.Sina.com.CN/ntwhq), dette kredsløb er lidt mere komplekst, komponent er vanskeligere at færdiggøre, det er svært for begyndere. Den anden struktur er forholdsvis simpel, men det har en betydelig ulempe, det vil sige med den smalle båndbredde, en af ​​de mere typiske værker er de oversøiske venner af http://www.serasidis.gr/circuits/AVR_oscilloscope/avr_oscilloscope. htm, oscilloskopets båndbredde kun 7,7 kHz. Indenlandske brugere og STC single-chip AVR produktion, men den faktiske båndbredde er mindre end 10KHz. Du kan også vælge at bruge Fusion PCB til at lave et printkort i stedet for lodning selv.

forsyninger:

Trin 1: Kode

For nylig så en netto ven med Arduino oscilloskop, det kan være nemmere end den anden metode ovenfor, men deres resultater er ikke ideelle, båndbredden er smal. Så jeg ønskede at prøve og se, og der er ingen god måde at løse dette problem på. Fremstillet ved eksperiment, og konstant modificere koden og forbedret d / a konverteringsprøvehastighed, er der opnået meget gode resultater.

De vigtigste parametre for slutproduktet: Frekvensrespons: 10Hz-50kHz Strømforsyning: 5V LCD LCD-skærm: 128x64 (ST7920) Målevisningsområde: 96x64 Informationsdisplay: 32x64, viser frekvensen af ​​testsignalet, Vpp og mere Synkronisering: stigende kant udløser Scanhastighed: 0,02ms / div ~ 10ms / div, bærer ni 1-2-5 Holdfunktion: fryser den viste bølgeform og parametre For det andet grundlæggende test Brug af Arduino-projektets største fordel er dets rige ressourcer og behøver ikke meget viden om SCM. Jeg lavede ved hjælp af et opbevaringsboks u8glib LCD, hvilket gør det nemmere at programmere, eller LCD-drevet vil koste dig meget tid. U8glib download: u8glib_arduino_v1.13.zip (989.55 KB, downloads: 2577) Her er mit første test kredsløb til Arduino UNO bygning, af 12864 LCD LCD med ST7920 kontrol. Så længe indtastningsmetoden i den følgende kode, der er kompileret efter download, kan du nå de grundlæggende funktioner i det digitale oscilloskop, ville det ikke være enklere? # Inkluder // opgørelse U8GLIB_ST7920_128X64_4X u8g (13, 12, 11); Statement LCD SPI Com: SCK = 13, MOSI = 12, CS = 11 int x, y; Malede punktkoordinater int Buffer 128; Cache storage array void setup () {} Prøve tom prøve () {for (x = 0; x <128; x ++) Buffer x = analogRead (A0); Signalprøveudtagning for (x = 0; x <128; x ++) Buffer x = 63- (Buffer x >> 4); Beregn y værdier} Vis ugyldigning () {for (x = 0; x <127; x ++) u8g.drawLine (x, Buffer x, x, Buffer x + 1); Tegn to linjer u8g.drawLine (64,0,64,63); Tegn akserne u8g.drawLine (0,32,128,32); For (x = 0; x <128; x + = 8) // tegne akse skalaen u8g.drawLine (x, 31, x, 33); for (x = 0; x <64; x + = 8) u8g.drawLine (63, x, 65, x); u8g.drawFrame (0,0,128,64); Tegn grænsen} tomrumssløjfe () {sample (); Prøve u8g.firstPage (); Ryd skærmen tegne (); Vis mens (u8g.nextPage ());

}

Trin 2: Kredsløb

Ved hjælp af testkredsløbet måles min Arduino direkte ved hjælp af analogRead () -funktionen for at fuldføre ad / a-konvertering for omkring 111 μs konverteringshastighed er langsom, så meget af dens båndbredde er 1KHz, den næste prioritet er at forbedre hastigheden af ​​digital-analog konvertering, mens andre funktioner tilføjes.

For det tredje, de nyeste programmer Her er den nyeste kildekode ved hjælp af, behold venligst min boot LOGO, HA HA. Arduino_oscilloscope.zip (2.72 KB, downloads: 2710)

Program chip 1.1V ADC brug spændingsreference nævnt ovenfor, hvis du vil bruge ekstern 5V reference spænding bør være program ADMUX = 0xe0; Til: ADMUX = 0x60; Vpp = (V_max-V_min) * 1,1 / 255; læs: Vpp = (V_max-V_min) * 5/255;

Brug Fusion PCB kan gøre et meget bedre printkort.

Fire, maskine foretaget Eksperimenter ved hjælp af Arduino UNO ovenfor, actualcard når du bruger Arduino PRO mini, for at få et mindre volumen.

Kredsløbsdiagram:

Hovedkomponentliste: Nummernavn Arduino PRO Mini 1 LCD12864 LCD (ST7920) 1 Elektrolytkondensatorer (100 μ 25V) 1 Potentiometer (50k) 1-hullers plade 3 Strømkontakt 1 Batterikassette 2-knappen switch (med genopladeligt batteri 7.

1, svejsning Arduino PRO mini PIN.

2, komponenter til svejsekredsløb

3, gør LCD hulplade

4, samling kredsløb

5, gør sagen jeg brugte en opladning omstrukturering af skattekasse med plastikhus på passende sted på hullet.

6, Montering

Læg kretskortet i sagen med tykt, hvidt panel, fastgjort til indersiden af ​​frontpanelet.

Trin 3: Upload og test

På grund af Arduino PRO mini bliver ikke USB seriel port kredsløb, så at overføre via en USB seriel port downloading før downloading af programmet.

Oscilloskop debugging er meget enkel, bare nødt til at justere potentiometer 50k Center de vandrette scanlines. Jeg bruger en signalgeneratorsignalkilde.

Boot LOGO

Test:

nogle forklaringer

1, dette er en af ​​de mest enkle digitale oscilloskoper, du kan yderligere forbedre på basis af dette;

2, har du måske bemærket, at jeg ikke bruger I / O-port 0-7, som tilfældigvis er en 8-bit AVR single-chip mikrocomputer og mund. Det er det, jeg forberedte til efterfølgende opgraderinger, ved hjælp af en særlig ADC-chip kan bruges som dataindtastning, hvis du er interesseret i oscilloskopet, så vil jeg overveje at opgradere;

3, arbejdet blev skyndte og har mangler og mangler ved, vær venlig at rådgive, at du har nogle spørgsmål, du kan også her.