ČVUT v Praze - Fakulta elektrotechnická
Katedra měření

Ard-eLabViewer - osciloskop s modulem Arduino

Ard-eLabViewer  je řešení jednoduchého přístroje typu - osciloskop.
Mimo to obsahuje též funkce přístrojů typu - voltmetr, záznamník dějů, logický analyzátor a čítač- vše realizované pouze modulem Arduino.  Přístroj je vhodný pro počáteční experimenty v elektronice. Nepotřebuje žádné doplňky, postačuje jen nahrát firmware a spustit PC aplikaci.  Je určen jako levný doplňkový přístroj pro experimenty na středních i základních školách; své užití nalezne také mezi amatéry  a uživateli Arduino.
Při jeho tvorbě  na přelomu r. 2021/22 jsme vycházeli z několikaletých zkušeností a poznatků z použití přístroje LEO a dalších SDI nejen v kontaktní, ale i v distanční praktické výuce- např. předmětu B3B38LPE na katedře měření, ČVUT - FEL V Praze.
Na tyto stránky budou též postupně doplňovány příklady úloh z fyziky a elektroniky, které budou koncipovány tak, aby je bylo možno řešit bez potřeby dalších měřicích přístrojů, pouze  pomocí Ard-eLabViewer, nepájivého kontaktního pole a několika součástek.

 

                   

Obr. 1 Hlavní okno zobrazovače Zero eLab Viewer s připojeným modulem Arduino

Obr.  2 Voltmetr v režimu data loger


Na obr. 2 je záznam z voltmetru se vzorkováním 100 S/s v režimu data logger (jako pomaloběžný osciloskop), kde se signál při zobrazování stále posouvá doleva- běžící časová základna. Tento režim je využitelný pro zobrazení průběhu signálu z různých bio- senzorů  (senzor tepu,..). Na obrazovce je normálně viditelný záznam o délce 5 sekund, větší délku záznamu lze pozorovat při "odzoomování". Je zachycen  obdélníkový signál  f = 1 Hz, na vstupu a výstupu integračního článku RC (2k, 22 uF).

                        Obr.  3 Osciloskop při vzorkování 20 kS/s

Na obr.3 je záznam obdélníkového signálu o f = 500 Hz na vstupu a výstupu integračního článku RC ( 2 k, 100 nF) při vzorkování rychlostí 20 kS/s v každém kanálu.

Parametry přístroje

Voltmetr 
Až 3 - kanály na vstupech A0, A1, A2, rozsah 0 až + 5 V, rozlišení dat na 10 bitů, tedy 5 mV, vzorkování 100 S/s, možnost průměrování z 1 až 256 vzorků, zobrazení  hodnoty.
PWM výstup na pinu 9

Záznamník (data Logger)
Až 3 -  kanály na vstupech A0, A1, A2, rozsah 0 až + 5 V, rozlišení dat na 10 bitů, tedy 5 mV, rychlost vzorkování  100 S/s, možnost průměrování (pro jeden zobrazovaný bod)  z 1 až 256 vzorků.
PWM výstup na pinu 9

Osciloskop
Až 2- kanály  na vstupech A0, A1, rozsah 0 až + 5 V, rozlišení dat na 8 bitů, tedy 20 mV, vzorkování 1 kanálový režim od  1 S/s až 40 kS/s,  délka záznamu 768  vzorků
dvoukanálový režim od 1 S/s do 25 kS/s (na kanál), délka záznamu 384 vzorků.
Spouštění - trigger- pouze podle signálu v kanálu 1 (A0). Je možný pouze režim post- trigger- tedy okamžik spuštění záznamu. Není možný záznam signálu před  okamžikem spuštění.
Nastavení spouštěcí úrovně je pouze v rozmezí od 0 V do 3,3 V. Volba spouštěcí hrany - náběžná, spádová. Při  volbě obou hran spouští na  náběžnou i  spádovu hranu ( to se obvykle nevyužívá).
PWM výstup na pinu č. 9. Frekvence f = od 0,5 Hz do 4 MHz (pro střídu 1:1).

Zvýšení vzorkovací frekvence osciloskopu metodou ETS
Při některých experimentech, kde se vyhodnocuje reakce obvodu na budicí impulsní signál (- typicky přechodný děj, odezva článku RC, odezva tesilovače, rychlost přeběhu operačního zesilovače,..), se v případě, že se používá PWM signál z Arduino, může použít metoda equvalentního vzorkování (ETS - Equivalent Time Sampling). Tak se  i s Ard-elabViewer může dosáhnout vyšších ekvivalentních vzorkovacích frekvencí ( bylo ověřeno - 250 kS/s, 1 MS/s, 4 MS/s), což např. umožňuje další experimenty, např. měřit  časovou konstantu článku RC v hodnotě 10 mikrosekund. 
Popis této metody zde bude uveden později.

Impulsní generátor PWM  (pro funkce voltmetr, záznamník, osciloskop, logický analyzátor) s výstupem na pinu  9.
Nastavení frekvence od 0,5 Hz do 4 MHz (pro střídu 1:1).Pro střídu 1:1 pro frekvence do 1 kHz, nastavení s krokem 1 Hz, pro frekvence do 10 kHz s krokem až 10 až 20 Hz, pro frekvence vyšší než 10 kHz nastavení s krokem 1 kHz a větším. Nastavení střídy 0%  až 100 % až po 0,1 %. Maximální možná hodnota nastavitelné frekvence signálu  závisí na zvolené střídě. Při střídě 1:1 ( 50 %) je největší rozsah nastitelných frekvenci. Pro jiné hodnoty střídy je max. nastavitelná frekvence menší.

Logický analyzátor
Sledování logických signálů na digitálních vstupech ~2 až ~8. Spouštění - trigger - podle  signálu na vstupu ~2, Volba hrany pro spuštění záznamu (jen posttrigger) - náběžná, spádová,  obě- tedy spádová nebo náběžná, která přijde dříve. Autotrigger - okamžité spuštění. Single - jednorázový záznam. Vzorkovací rychlost až 76,9 kS/s. Délka záznamu - až 768 vzorků.
PWM -výstup na pinu  č. 9. Frekvence f = od 0,5 Hz do 4 MHz (pro střídu 1:1).

Čítač
Reciproční čítač, který měří dobu periody signálu a frekvenci recipročním způsobem. Měří se periodu signálu a z toho se  jako převrácená hodnota určuje frekvence. Čítač je řešen ve více variantách.

Varianta čítače v. 1
Čítač ve variantě 1 měří frekvenci a střídu logického signálu. Má vstup - digitální pin ~5, + testovací impulsní genrátor výstup PWM  - výstup - dig. pin. 3
Délku impulsu a jejich periody měří programově (s krokem 4 mikrosekundy) a z toho se  jako převrácení hodnota určuje frekvence. Rozlišení určení periody je s krokem 4 mikrosekundy.  Navíc se určuje střída. Nejmenší hodnota zjistitelné střídy je určena  délkou pulsu, která musí být větší než 4 mikrosekundy. Nejmenší měřená frekvence  cca 1,01 Hz.

Varianta čítače v. 2
Čítač ve variantě 2 měří pouze frekvenci logického signálu. Má vstup - digitální pin ~8, + testovací impulsní generátor výstup PWM  - výstup - dig. pin. 3. Pracuje s využitím HW prostředků - čítače jeho jednotky input capture, která určuje časové okamžiky příchodu náběžné hrany signálu.  Maximální měřená frekvence je cca 120 kHz. Při měření větší frekevence se program " zasekne" ( nestačí se přenést hodnota z registru inputcapture) a je nutno program restartovat. (Tento rys by bylo možno odstranit, avšak za cenu dalších instrukcí, které by ještě zpomalily program a následně i snížily maximální hodnotu měřené frekvence.)  Rozlišení určení délky periody je s krokem 62,5 nanosekundy, což je dáno interním oscilátorem 16 MHz.  Proto čítač ve variantě 2 může měřit frekvenci s větším rozlišením, než čítač ve variantě 1, který má rozlišení při určení délky periody pouze krokem 4 mikrosekundy. Díky obvodovému řešení čítač umožnuje vyhodnocovat i signály s krátkými (kladnými nebo zápornými) impulsy, pokud jejich délka je alespoň cca 0,3 mikrosekundy a jejich frekvence je menší než 120 kHz.

Firmware  pro Arduino zde  verze 2022_2_7    - s čítačem varianta 1.
                                              verze 2022_2_21 -  s čítačem varianta 2.


PC aplikace Zeroelab Viewer zde,  (pozn. je nutná instalace ovládače USB pro Arduino)

Tento firmware - pro Arduino byl realizován jako poslední z řady přístrojů typu SDI až v r. 2022 v takové formě, aby bylo možno využít PC -aplikace Zero eLab Viewer, která je primárně určena pro realizaci osciloskopů s 32- bitovými mikropřadiči STM32F042, STM32L072 a STM32F103 s jádrem ARM Cortex M0, resp Cortex M3.  Pro zájemce je k dispozici  firmware na příslušných stránkách, který funguje se stejnou PC - aplikací.
Modul Arduino není příliš vhodný pro realizaci přístrojů SDI, protože použitý mikrořadič  ATMega 328 obsahuje pouze omezený rozsah periferií, paměti RAM a čítačů. Neobsahuje řadič DMA, který je velmi důležitý pro záznam dat z DAC. Interní převodník ADC má rozlišení pouze 10 bitů a vzorkovací rychlost je omezena na několik desítek  tisíc vzorků za sekundu. Osmibitové procesorové jádro ATMega ta má také menší výkon, než  32- bitové procesory s jádrem ARM. Nicméně i tato méně výkonná verze osciloskopu s omezenými parametry s modulem Arduino může být užitečná při seznamování s elektronikou.  Máme již připraveny různé (i relativně pokročilé) úlohy z elektroniky a fyziky, kde Ard-elabViever svým výkonem postačí.
Pokud uživatele funkce přístroje zaujmou a seznámí se s ovládáním PC aplikace, není problém přejít na vezi pro vyšší procesor s jádrem ARM Cortex Mx, např. STM32F042 - zde , nebo STM32F103- v modulu Blue Pill nebo BlackPill- zde.

Firmware pro Arduino vznikl v rámci bakalářské páce (1/2022)  pana Bc. Stanislava Nováka  řešené v laboratoři videometrie na katedře měření ČVUT - FEL v Praze.
PC aplikace vznikla jako součást diplomová práce pana Ing. Adama Berlingera, řešené též v laboratoři videometrie, kat. měření ČVUT - FEL v Praze  v r.  2016 .
Tato PC aplikace, která se zde používá zcela beze změny s modulem Arduino, byla určena pouze pro procesory STM32 s napájením a rozsahem měřených napětí  +3,3 V, tedy při jejím použití s Arduino se někdy projevují omezení (grafická velikosti pole zobrazeného napětí,....).
Zpět na hlavní stránku