Lag et digitalt oscilloskop Via Arduino: 3 trinn

Lag et digitalt oscilloskop Via Arduino: 3 trinn

Innholdsfortegnelse:

Anonim

DSO må ofte ha digital-analog konverteringsenhet, i henhold til d / a-konverteringskrets kan deles inn i to moduser: 1. Spesiell ADC-chip + single-chip, 2. Bruk single-chip ADC-telle inne omformeren. For den første modellen prøvde jeg to (se bloggen min: http://blog.Sina.com.CN/ntwhq), denne kretsen er litt mer kompleks, komponent er vanskeligere å fullføre, det er vanskelig for nybegynnere. Den andre strukturen er relativt enkel, det er lett å lage, men har en betydelig ulempe, det vil si atina smal båndbredde, en av de mer typiske arbeider er de utenlandske vennene til http://www.serasidis.gr/circuits/AVR_oscilloscope/avr_oscilloscope. htm, båndbredden til oscilloskopet bare 7,7 kHz. Innenlandske brukere og STC single-chip AVR produksjon, men den faktiske båndbredden er mindre enn 10KHz. Du kan også velge å bruke Fusion PCB til å lage en PCB bord i stedet for lodding av deg selv.

forsyninger:

Trinn 1: Kode

Nylig så en nettvenn med Arduino-oscilloskop, det kan være lettere enn den andre metoden ovenfor, men resultatene deres er ikke ideelle, båndbredden er smal. Så jeg ville prøve å se og det er ingen god måte å løse dette problemet på. Produsert av eksperiment, og kontinuerlig modifisere koden, og forbedret d / a konverteringsprøvehastighet, har det blitt oppnådd meget gode resultater.

Hovedparametrene til sluttproduktet: Frekvensrespons: 10Hz-50kHz Strømforsyning: 5V LCD-LCD-skjerm: 128x64 (ST7920) Målevisningsområde: 96x64 Informasjonsvisning: 32x64, viser frekvensen til testsignalet, Vpp og mer Synkronisering: stigende kant utløser Scanhastighet: 0,02ms / div ~ 10ms / div, bærer ni 1-2-5 Hold-funksjon: frys den viste bølgeformen og parametere. Andre grunnleggende test Bruk Arduino-prosjektets største fordel er dets rike ressurser og trenger ikke mye kunnskap om SCM. Jeg har laget et repository u8glib LCD, noe som gjør det enklere å programmere, eller at LCD-skjermen vil koste deg mye tid. U8glib nedlasting: u8glib_arduino_v1.13.zip (989.55 KB, nedlastinger: 2577) Her er min første testkrets for Arduino UNO-bygning, av 12864 LCD-LCD med ST7920-kontroll. Så lenge inngangsmetoden i den følgende koden, kompilert etter nedlasting, kan du oppnå de grunnleggende funksjonene til det digitale oscilloskopet, ville det ikke være enklere? # Inkluder // setning U8GLIB_ST7920_128X64_4X u8g (13, 12, 11); Statement LCD SPI Com: SCK = 13, MOSI = 12, CS = 11 int x, y; Malte punktkoordinater int Buffer 128; Cache storage array void setup () {} Eksempel void sample () {for (x = 0; x <128; x ++) Buffer x = analogRead (A0); Signalprøvetaking for (x = 0; x <128; x ++) Buffer x = 63- (Buffer x >> 4); Beregn y-verdier} Vis tomtegn () {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 aksene u8g.drawLine (0,32,128,32); For (x = 0; x <128; x + = 8) // tegne akseskalaen 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 grensen} tomromsløyfe () {sample (); Eksempel u8g.firstPage (); Tøm skjermbildet (); Vis mens (u8g.nextPage ());

}

Trinn 2: Krets

Ved hjelp av testkretsen måles min Arduino direkte ved hjelp av analogRead () -funksjonen for å fullføre annonsen / konverteringen for om 111 μs konverteringshastighet er sakte, så mye av båndbredden er 1 KHz, den neste prioriteten er å forbedre hastigheten til digital-analog konvertering, mens du legger til andre funksjoner.

Tredje, de nyeste programmene Her er den nyeste kildekoden ved hjelp av, vennligst hold meg boot LOGO, HA HA. Arduino_oscilloscope.zip (2.72 KB, nedlastinger: 2710)

Program chip 1.1V ADC bruk spenning referanse nevnt ovenfor, hvis du vil bruke ekstern 5V referansespenning bør være program ADMUX = 0xe0; Til: ADMUX = 0x60; Vpp = (V_max-V_min) * 1,1 / 255; les: Vpp = (V_max-V_min) * 5/255;

Bruk Fusion PCB kan gjøre et mye bedre kretskort.

Fire maskinproduserte eksperimenter som bruker Arduino UNO over, actualcard når du bruker Arduino PRO mini, for å få et mindre volum.

Kretskort:

Hovedkomponentliste: Nummernavn Arduino PRO mini 1 LCD12864 LCD (ST7920) 1 elektrolytkondensatorer (100 μ 25V) 1 potensiometer (50k) 1 hulls plate 3 strømbryter 1 batteripatron 2 knappbryter (med oppladbart batteri, 7) 1 Etui 1

1, sveising Arduino PRO mini PIN.

2, sveise kretskort komponenter

3, som gjør LCD-hullplaten

4, montering kretskort

5, gjør saken jeg brukte en lading restrukturering av skattekasse med plasthus, på riktig sted på hullet.

6, Montering

Legg kretskortet inn i saken, med tykt, hvitt panel, festet på innsiden av frontpanelet.

Trinn 3: Last opp og test

På grunn av Arduino PRO mini blir ikke USB seriell port krets, så å overføre via en USB seriell port nedlasting før du laster ned programmet.

Oscilloskop feilsøking er veldig enkel, bare nødt til å justere potensiometer 50k senteret de horisontale scanlinjene. Jeg bruker en signalgeneratorsignalkilde.

Boot LOGO

testing:

noen forklaringer

1, dette er en av de enkleste digitale oscilloskoper, du kan videre forbedre på grunnlag av dette;

2, har du kanskje lagt merke til at jeg ikke bruker I / O-port 0-7, som skjer med en 8-bits AVR single-chip mikrocomputer og munn. Dette er det jeg forberedte på påfølgende oppgraderinger, ved hjelp av spesielle ADC-brikker kan brukes som dataoppføring, hvis du er interessert i oscilloskopet, så vil jeg vurdere å oppgradere;

3, arbeidet var rushed og har noen feil og mangler, vennligst gi råd, du har noen spørsmål du kan også her.