neděle 20. února 2022

GPIB komunikace s HP3585A...

    Mám na stole spektrální analyzátor HP3585A. Je z roku ... má serial number: 1750A01142, to je starý formát sériových čísel HP, před rokem 1993 ve tvaru YYWWCNNNNN
    YY = označení roku, kdy byl produkt představen nebo  byla na produktu provedena zásadní změna
    YY = počet let  od roku 1960.
    YY =17 tedy označuje rok 1977. Můj spektrální analyzátor je starý jako já sám
    WW = týden v roce, kdy byl produkt představen nebo  byla na produktu provedena zásadní změna
    WW = 50, tedy konec roku 1977
    C = Země, ve které byl produkt vyroben. Písmeno  "A" označuje USA jako zemi výroby.
    NNNNN = Jedinečné číslo pro každý jednotlivý produkt v rámci  modelu produktu. Obvykle se   jednalo o pořadové číslo začínající  00101. Ten můj je tedy z USA v pořadí vyroben jako 1041.

Zmínka o HP3585A v buletinu [HP 1978-06] na straně 6. A to už byl ověřený a používaný.
Co všechno umí je popsáno v historickém [datasheet]. Specifikace pro 46+ roků staré zařízení viz [1]:
    – Rozlišení 0,1 Hz
    – RBW 3 Hz – rozlišení šířka pásma
    – Rozsah měření -137 dBm až +30 dBm
    – Volitelná vstupní impedance 50 Ohm, 75 Ohm (maximální špička 13V AC+DC)
        nebo 1 MOhm (maximální špička 42V AC+DC)
    – Vestavěný tracking generator
    – Automatické nastavení vstupního útlumu
    – Displej a rozlišení digitální paměti 1001×1024
    – Rozhraní HP-IB (GPIB)
    – Dynamický rozsah 80 dB
    – ± 0,4 dB Přesnost amplitud
    – Odečet nastavení panelu a markerů na CRT obrazovce

    Zajímavostí je, že občas v nějaké, i docela novém datasheetu[2] narazím na měření pocházející z toho spektrálního analyzátoru. Je něčím výjimečný? Není. Je starý a pomalý. Má rozsah jenom 20Hz – 40MHz. Takže do moderního světa to není žádná výhra. Ale poskytne zajímavou přesnost v pásmu, které dneska nikoho nezajímá.

Příkaz D3T4 – přenese všech 1001 hodnot, které by ukázal ručně ovládaný marker na obrazovce. Myslím, že je to lepší způsob, jak získat digiální data vhodná pro další zpracování, než jen fotit obrazovku.
Stahování dat trvá asi dvacet vteřin.


    Komunikace probíhá pomocí adaptéru [AR488]. 
    Řešení v jazyce Python, funguje v Linuxu i ve Windows. Vizualizace dat pomocí knihovny matplotlib, kde zobrazená přenesená data nesou informaci tak, že lze použít ukazatel myši jako odečet markeru. Zobrazuje reálné hodnoty amplitudy i frekvence na pozici ukazatele, odečtení měření zpřesňují červené linky. Kliknutím lze označit libovolný bod – snažil jsem se kliknout myší na stejné místo, na jakém je marker na fotce obrazovky, tedy na 10 590 000,0Hz. Vždy automaticky vytvoří nový textový soubor .csv pojmenovaný časovou značkou obsahující seznam přenesných hodnot. 
    Prográmek dipozici [zde]. Aby byla data správně umístěna na ose X je třeba znát rozsah měření – vyřešil jsem to příkazem GPIB pro přečtení textových dat z CRT obrazovky, které jsou zvlášť zpracovány. Pro HP3585A je vyžadován na obrazovce rozsah START:STOP nebo CENTER:SPAN.
    Správný komunikační port je nalezen automaticky, přepokládá AR488 postavené na Arduino Pro Micro, které se v systému identifikuje řetězcem "Arduino Leonardo".

sobota 19. února 2022

Funkční rozhraní GPIB-USB s rozpočtem 300 korun...

    Měřící přístroje používají komunikační rozhraní GPIB. A je potřeba si s nimi povídat. Nemyslím, že by to správné získávání dat bylo focení obrazovky přístroje, taktéž potřebuji získat data pro další zpracování.
Takto vypadá GPIB konektor v měřáku [1]

Abych se k tomuto rozhraní mohl připojit potřebuji kabel, který bude mít správný protikus, ideálně pro připojení do USB.

propojovací kabel 

Existuje i originální redukce pro připojení GBIP-USB, třeba tato [2]
GPIB-USB, žel stojí naprosto nesmyslné peníze

    Čínská kopie je dostupnější, vypadá stejně, opravdu funguje, cenově za desetinu výše uvedeného originálu, ale pořád – ač jen desetina ceny – vyjde přes dva tisíce korun.

Lze takový komunikační kabel postavit doma?

    Konektor je to Centronix 24 pin. Dá se koupit, ale víme, že staré tiskárny používaly konektor Centronix, který má 36pinů. Dá se najít na sběrném dvoře nebo se vám válí někde v kanceláři. Ano, dá se i koupit [3], ale překročil bych výše zmíněný rozpočet.
zkrácený konektor ze staré tiskárny

    A pak chybí už jen Arduino Nano, nejlevnjější klon... Arduino Pro Micro[3]. Funguje i originální Arduino UNO. Žel se mně to nepodařilo rozběhnout s klony, které mají převodník CH340. Netvrdím, že to nejde, ale mně se to nepodařilo rozběhnout. Arduino Pro Micro je jistota a je tak malé, že může být součástí konektoru.

Jak to zapojit? A kde vzít program pro Arduino?

    Projekt AR488 na [github] nabízí řešení v jednom balíčku a to nejen pro USB, ale třeba i pro Bluetooth komunikaci. Projekt je výborně zdokumentovaný a funguje. 

Nebyl jsem si jist orientací konektoru

Použil jsem toto zapojení podle [návodu] str. 47 pro Pro Micro.  
   Arduino GPIB
   pin     pin   function
   --------------------
   A2      7     NRFD
   A1      6     DAV
   A0      5     EOI
   D5      17    REN
   D7      10    SRQ
   D2      11    ATN
   A3      8     NDAC
   D4      9     IFC
   D3      1     DIO1
   D15     2     DIO2
   D16     3     DIO3
   D14     4     DIO4
   D8      13    DIO5
   D9      14    DIO6
   D10     15    DIO7
   D6      16    DIO8
   GND     12    Shield
   GND     18,19,20,21,22,23 GND
    Protože mám o svůj měřák obavy a drže se přísloví dvakrát měř a jednou řež, raději pořádně zkontroluju zapojení konektoru GPIB k Arduinu. Napsal jsem malinký program[4], který umožní ruční otestování správného zapojení pin po pinu.
test zadrátování byl úspěšný

    Teď už jen nahrát správný program pro komunikaci. Dá stáhnou buď už zkompilovaný jako [hex] nebo ve formě zdrojového kódu [tady]. Volím zdrojový kód a během chvilky mám nahráno v Arduino Pro Micro. Není potřeba nic nastavovat, podle nastavení cílové platformy zvolí sám veškeré nastavení.

Komunikace s počítačem a stažení dat

    Velmi záleží na tom, k jakému zařízení se chceme připojit. V každém GPIB manuálu najdeme příkaz *IDN? – na který nám má zařízení vrátit svoje jméno a používá se k testu spojení. Jenže, ne každé starší zařízení tohle umí. Pokud má pro ukládání dat třeba moderní 3.5" disketu, tak to umět bude. Starší spíš ne.
Na úplný test rozhraní AR488 postačí, když se připojím sériovým terminálem, třeba z Arduino IDE,
přes které jsem nahrával do Pro Micro komunikační software. Příkaz s prefixem ++ je určený pro kontroler, bez prefixu pro adresované zařízení
    ++ver vrátí např. AR488 GPIB controller, ver. 0.51.04, 27/01/2022
    ++addr XX kde XX je GPIB adresa mého zařízení, pro mě je to ++addr 11
pak už všechny příkazy bez ++ budou posílány zařízení na dané adrese, pro další příkazy už záleží na zařízeníl, např. posílání příkazu, které mají něco vykonat
    DS
    L1HELLO
    DG
ale příkaz, který má vrátit nějaká data
    D3T3 – musí být následován příkazem ++read případně ++read eot – aby se přečetla všechna vrácená data

Nějaké programové rozhraní ke komunikaci

    Mám rád jazyk Python, protože je přehledný a schůdný i pro začátečníky. Takový Pascal dvacátého prvního století. Naprosto jednoduché rozhraní pro AR488 v Pythonu a i když z Pythonem nejste kamarádi, stačí nainstalovat prostředí Thonny[5], které je pro Mac, Linux i Windows a pokud sedíte u Raspberry Pi, tak je pravděpodobně již součástí prvotní instalace.
    Je ke stažení kód viz [6], který stačí vložit do editoru a spustit. Jediné místo, které musíme změnit je port="XXX" na adresu portu, kde mám svoje AR488 připojené. Je to vidět v Arduino IDE, kde jsem vybíral port, pro nahrání software.
Řádek 51 def __init__(self, port="COM9", baudrate=115200, timeout=1):
a or řádku 122 jsou vkládány první příkazy, opět výše zmíněný a oblíbený *IDN?
    Jiný způsob komunikace pomocí rozhraní VISA je zmíněná v tomto [youtube] videu včetně odkazů a funčního kódu v C#.
    Jsou i zajímavější řešení pro kombinaci starých měřících zařízení s rozhraním GPIB s moderními s LAN/LXI [7]; strýc Anubis to používá pro komunikaci se smečkou multimetrů a jednou to své řešení zabloguje.

A co krabička? 

    Možná ani není potřeba, ale pro Arduino Nano je ke stažení [model] k tisku. Tudíž Pro Micro se tam vejde, protože je asi poloviční velikosti. Dobře zajištěné tavným lepidlem funguje.

Víc profi řešení 

   Velmi elegantní řešení by bylo použít konverzní plošný spoj, kde z jedné strany je konektor a z druhé strany Arduino Pro Micro. Tuhle krásnou destičku[8] mně věnoval strýc Anubis, žel jsem ji zničil při pokusu o připájení na svůj zbastlený zkrácený konektor. A teď se stydím.
takové pěkné jsem to mohl mít

S čím vlastně chci GPIB komunikovat?

  HP3585A – viz [jiný článek] na blogu.

Zdroje:

[9] bakalářská práce podrobně rozebírající problematiku GPIB 
[10] první verze základní komunikace pomocí Arduina z roku 2014
[11] aktuální a živý projekt AR488 s podrobnou dokumentací na github, který jsem použil
[12] manuál s příkazy Prologix, který AR488 emuluje
[13] dobré youtube video na téma „GPIB - jak stahuji data ze starších měřících přístrojů.“
[14] GPIB pomocí Raspberry Pi

neděle 6. února 2022

Knihy, které mě...

Krátce
    Knihy zaměřené na počítače/programování/elektroniku viz [knihy.nic.cz]. Zajímavé na nich je, že jsou v elektronické podobě ke stažení zdarma, ač vyšly a dají se koupit i v tištěné podobě. 


Motivace   
    Na začátku byla otázku pana Chipa, který se mě zeptal: Jak to děláš? Když se něco nového chceš naučit? Odpověděl před více jak dvaceti lety můj kamarád, hudebník, virtuóz, skladatel, loutnista, absolvent AMU, svářeč na SUB viz [profil]. On řekl – na kytaru se naučí hrát každý. Stačí trochu chtít. Osm hodin denně, tři roky a je z tebe dobrý začátečník. A toho se držím. Ať název aktuálního projektu byla jízda na motocyklu nebo naučit se španělsky. Dělat něco jednou týdně dvě hodiny možná stačí jako udržovací trénink...


    Jsem přesvědčen o tom, že jestli nějaká znalost existuje a má být předána, tak byla podrobně zdokumentována a zapsána a dá se tedy najít stravitelný zdroj – pro mě kniha – pro mladší generaci třeba video – ze kterého se dá v rozumném čase naučit vše požadované. Znalost je možné zrekonstruovat a vstřebat. Škoda, že to zatím neumíme ve formě implantátu či prostým upgrade firmware. [sci–fi]
    
Nezajímavý úvod
    Jsem profesí IT a coby student jsem chodil čítávat do studovny na své alma mater knihy, které byly ve škole pouze v jednom exempláři – bylo to Umění programování (The Art of Computer Programming) od profesora Donalda Ervina Knutha z americké Stanfordovy univerzity, autora typografického systému [TeX], který byl v roce 1978 donucen naprogramovat jenom proto, že tehdejší kvalita sazby matematických textů nebyla dostatečně kvalitní. Umění programování má několik dílů, je to velmi výživné čtení a myslím, že některé díly vyšly i českém překladu. O tom se nám v devadesátých letech mohlo jen zdát.
    Jako školák před gymnaziálního věku jsem vstřebal knihu Algoritmy a štruktúry údajov od Niclause Wirtha; takový pěkný úvod do algoritmizace v jazyce Pascal. Žít s jazykem BASIC tehdy moc nešlo. Co počítač to vlastní dialekt jazyka. Co jsem si napsal doma pro ATARI, nefungovalo na základce na PMD 85 nebo v kroužku, kde byly stroje IQ 151 nebo na jiné ZŠ, kde měli síť počítačů Consul a obří osmipalcové diskety. Taky se mně nejednou stalo, že jsem začal psát program v BASICU a nedopsal jsem ho proto, že došla paměť. Přirozeně to vedlo k optimalizaci. Na dlouho jsem pak byl pohlcen assemblerem 65C02A a později jsem se snažil napsat občas něco v assembleru pro procesory Intel; dnes to vidím jako přínosné intelektuální cvičení, žel nebylo nadčasové a žádný ze svých tehdejších programů dnes nelze použít, protože byly z principu svázány s procesorem pro který byly napsány.
    Pascal pro mě přinesl krásnou standardizaci; program napsaný v Pascalu byl přenositelný na základě zdrojového kódu. Odladěný pro ATARI bez OS fungoval prakticky bez změn na počítači TNS se systémem CPM nebo na PC XT s DOSem. Pascal byl pro nás tehdy tím, čím je dneska jazyk Python.
    Z modernějších knih bych zmínil Dekompozice a rekurzivní algoritmy od Stanislava Dvořáka, kniha vyšla, když jsem byli ve druháku na gymnáziu a zatímco spolužáci řešili, jak získat přístup k dívčím zdrojům, já se snažil přemýšlet rekurzivně. Tato kniha mě později dovedla k jazyku PROLOG, neprocedurálnímu programování a teorii formálních jazyků, kterou bych dodnes prohlásil za velmi zábavný koníček. Později jsem objevil Smalltalk, ale to už se psal rok 1997 a já se chodíval do studovny prát o přístup ke knize Umění programování.
    Vtipnou stať z roku 1983 s názvem Opravdoví programátoři nepoužívají Pascal [1] znám a musím říci, že z toho pohledu jsem vždycky byl a budu zařazen v kategorii „pojídačů koláčů“. Je ještě jeden zajímavý příběh opravdového programátora [Mel].

„Krystalka“ digitálního věku 
    Jako kluk jsem vyrostl s knihou Od krystalky k modelům s tranzistory od Pavla Šraita. Její moderní verze vyšla před pár lety a jmenuje se Hradla, volty, jednočipy od Martina Malého. Zájemcům o úvod do elektroniky doporučuju. Má i vlastní web [elektrokniha.cz] a pak ještě další dva díly. Otcům ve svém okolí, bych doporučil, aby tu knihu četli se svými dcerami, či syny, kteří už umí na počítači hrát Minecraft a není jim cizí Merkur nebo Lego.  Věřte, spoustu nového se naučí obě strany. Pokud žijete v Brně a vidíte, že vaši drobotinu by mohlo zajímat něco technického, tak krom společného čtení zmíněné knihy, připomínám, že máte k dispozici pro děti i technický kroužek – [Robotárnu].
    V mé křivce učení mě moc baví zjišťovat, jak šel postupně vývoj a snažím se různá zapojení nejen odsimulovat, ale také reálně postavit. Ze začátku jsem se vyhýbal integrovaným věcem. Něž jsem použil poprvé integrovaný H-můstek, tak jsem ho odsimuloval, odladil a pak postavil z diskrétních součástek. Když všechno fungovalo, tak jsem se nebránil vzít příště integrovaný obvod. Stejně tak první Schmittův klopný obvod běžel v nepájivém kontaktním poli postavený z tranzistorů, pak s operačním zesilovačem a zenerou a teprve pak jsem ho začal běžně používat jako integrovaný obvod.
    Dobrá rada strýca Anubisa zní – jestli to lze postavit s mikroprocesorem nebo bez, použij mikroprocesor. Líp se to ladí.
    Ale stejně snažit se postavit nějaká zapojení čistě analogově má své kouzlo. A pokud to umím postavit analogově, můžu později použít digitální řízení analogové části a to je věc, která z mého pohledu řádově rozšiřuje možnosti použití. Ve výsledku jsem to zkusil postavit oběma způsoby a pak srovnat. Říkejme tomu třeba laboratorní úlohy. Je to časově náročná věc, mým cílem je integrál křivky učení a ten roste jen když je čas dobře investovaný.

Čtení o elektronice
    V březnu 2022 to budou už dva roky, co se „učím mluvit elektronicky“ – to slovní spojení jsem si vypůjčil od pana Martina Malého, jehož práci a nasazení fandím.  Nějakými knihami jsem se za tu dobu prokousal a rád bych tady zmínil ty, které považuji za hodnotné a zajímavé. Knihy možná nestačí přečíst jednou, protože jak postupně přibývají znalosti, tak si z nich odnesu pokaždé víc.
 
Přehledné základy
– Hradla, volty, jednočipy; Martin Malý [web] [pdf]
Napsáno čtivě, teorie je pouze nezbytné množství. Opravdu je to knížka, kterou můžete koupit nebo stáhnout svým mládežníkům, ale měli byste být připraveni, že bude lepší ji číst spolu. Obsahuje i nákupní seznam základního vybavení, se kterým se dá už spoustu zajímavých věcí zbastlit.

– Poznáváme elektroniku I - VIII; Václav Malina
Obsáhlé čtení, které zároveň umí udržet ideální hloubku výkladu. Už v prvním dílu si můžete postavit astabilní klopný obvod a je rámcově popsáno, jak funguje. Stačí to, protože sedmý díl věnuje třetinu knihy pouze konstrukci a ladění podobných obvodů. Poctivě přečíst, vstřebat a pak „přečíst“ znova.
 
– Moderní učebnice elektroniky I-VI; Jaroslav Doleček
Pamatujete staré učebnice fyziky nebo chemie, které byly napsány tak, že vše potřebné k pochopení látky nebo realizaci výpočtu či experimentu jste nalezli v samotné knize. Stačilo ji vstřebávat sekvenčně. Moderní učebnice elektroniky nabízí něco podobného. Není to úplně snadné čtení, ale je tam vše potřebné podrobně vyloženo.

Video zdroje
    Pokud máte raději výklad ve formě videa, tak doporučím tyto youtube zdroje
– česky [X] [X] ... [X] [X] [X] [X] ...ano, je toho pěkných pár desítek hodin
– anglicky [X]

Potud věci snadné ke čtení a videa snadná ke shlédnutí. Další knihy vyžadují angažovaného čtenáře, který se agilně doučí nebo alespoň dohledá informace, které budou nezbytné k pochopení výkladu.

Knihy rozsáhlejší, kvalitou srovnatelné s výše zmíněným The Art of Computer Programming 
– The Art of Electronics; Paul Horowitz, Winfield Hill [pdf]

Více digitální elektroniky
– Porty, bajty, osmibity; Martin Malý [web] [pdf]
– Data, čipy, procesory; Martin Malý [web] [pdf]

Více analogové elektroniky
    Celá problematika operačních zesilovačů a následně analogového zpracování signálů na mě stále působí jako magie. Následující knihy byly pro mě návštěvou Olivandersova obchodu na Příčné ulici a získání vlastní kouzelnické hůlky.

– Jednoúčelové analogové počítače; Karel Kabeš
    Vyrostl jsem v době číslicových počítačů, a to ještě nebyly rychlé. Složitější středoškolský matematický výpočet trval desítky minut. Číst o tom, že od padesátých let používáme analogové počítače, které zvládají velmi složité matematické výpočty v reálném čase je fascinující a taktéž zároveň osvobozující, protože teď umím postavit analogový počítač, který v reálném čase prakticky generuje řešení diferenciální rovnice, kterou sice umím sestavit a definovat vstupní proměnné, ale už jsem zapoměl, jak ji spočítat.

– Operační zesilovače v elektronice; Josef Punčochář
Skripta VŠB. 

Elektronky, doutnavky, knihy o věcech historických a ke zkoumání zajímavých
– Lampárna, aneb co to zkusit s elektronkami; Jaroslav Vlach, Viktorie Vlachová
Před otevřením této knihy doporučuju shlédnout přednášku o elektronkách obecně [2] a  krátké povídání o tom, jak funguje zesilovač s triodou [3].

– Doutnavky v technické praxi; Julius Strnad

– Tvarové kmitání; Chance, Hughes, Mac Nichol, Sayre, Williams
Překlad knihy MIT, shrnující vývoj modelování kmitání v radiotechnice zhruba od začátku druhé světové války do raných padesátých let.

Simulace, aneb ne všechno je potřeba sestavit v reálu
– naprostý základ, který používá ideální součástky a běží v prohlížeči. Stránky [elektrokniha.cz] odkazuje na [emulátor] a v menu „Zapojení“ jsou již připravené příklady ke knize.

– LTSpice – spousta mých dotazů k různým elektronických věcem na kolegu Anubise dostala stejnou odpověď: Odsimuluj si to v [LTSpice]. Program je dostupný zdarma, existuje k němu obří knihovna modelů, je dobře zdokumentovaný a mohu ho doporučit k samostudiu. Simulace je jen tak dobrá, jak dobré fyzikální modely součástek mám; jak si napsat vlastní se teprve učím.

Chcete půjčit knihu?
Všechny zde zmíněné knihy mám v knihovničce a pokud potřebujete, použijte kontaktní formulář; rád knihy zapůjčím. Tedy, pouze pokud je někdy zas vrátíte.

Lze odhadnout časové náklady?
Je to stejné jako s programováním, pokud to nebude hobby, těžko tomu dávat čas. Začal bych s časovým rozpočtem dva tisíce hodin a uvidím, jestli mě to pak ještě bude bavit.

středa 2. února 2022

Přesnost AREF napětí Arduina...

Krátce:
    Vliv kondenzátoru pro filtraci napájení je pro přesnost referenčního napětí naprosto zásadní. Samotné referenční je dostatečně stabilní. Pokud je napájecí napětí dostatečně vyšší než napětí referenční, není problém. Pozor! Při napájení 5V mikrokontroleru z USB bude referenční napětí výrazně nižší než předpokládaných 5V a to je závažný problém, protože třeba teplotu analogovým čidlem změřím s chybou 10°C.

Řešení je několik:
    – napájet vždy mikrokontroler z jiného zdroje, což je nejjednodušší
    – zavést vlastní přesnou napěťovou referenci nastavenou třeba jen na 4V

    Změřit aktuální hodnotu AREF napětí při napájení z USB lze a dá s ní v programu počítat, ale když připojím mikrokontroler k jinému zdroji, tak hodnota AREF vzroste budu měřit s chybou nebo musím přepsat program.

Podrobněji:

Vliv čistoty napájení na referenčního napětí Arduina

    Měřeno na italském originálu Arduino UNO a nikoli na čínském klonu. A realita? Nezáleží na tom, klony jsou v tomhle stejné. Mezi 5V a GND je připojen filtrovací kondenzátor 820μF. Bez něj by to bylo horší!
Na osciloskopu je hodně rušení. 
– žlutá stopa je čistota napájení 5V
– modrá stopa je AREF – referenční napětí
Po zapnutí funkce Highres vidím, co potřebuju. 
Přepínám rozlišení 500μV na dílek.
Napájení z USB.
Napájení z přesného zdroje 7V.

Pozor, vypadá to dobře a výstupem měření by mohlo být, že čistota napájení nemá vliv na stabilitu referenčního napětí. To je pravda. Jenže, co samotná velikost napětí AREF.

Velikost referenčního napětí v závislosti na druhu napájení 

 Napájení z USB bez připojeného filtrovacího kondenzátoru na napájení 
průměr 4,366V při napájení z USB, tedy jsme o 634mV mimo předpokládaných 5V

průměr 4,424V při napájení ze souosého konektoru 10V


Napájení ze souosého konektoru. Připojený kondenzátor 820μF mezi 5V a GND. 
průměr 4,9770V při napájení z USB
průměr 4,9820V při napájení ze souosého konektoru 10V
rozdíl je jen 5mV, všímám si střední odchylky Std dev – s kondenzátorem je to o řád lepší.

Vadí AREF o půl voltu nižší? Jakou to způsobí chybu měření?

    Problém není ve velikosti AREF, ale v tom, že referenční napětí je jiné než předpokládáme. 
    Analogové teplotní čidlo MCP9700 – 500mV při 0˚C citlivost 10mV/°C.  Příklad měření, reálná teplota je 50°C a čtení ADC ji spočteme pouze, pokud bude referenční napětí přesné. Zde předpokládám velikost 5V. Odchylka AREF jen desetinách voltu již způsobí obrovskou chybu měření.
         
    ADC = Analogově digitální převodník při čtení pomocí analogRead(Ax) vrací hodnotu v rozsahu 0–1023 má tedy 1024 kroků. Pokud bude nastaveno referenční napětí nižší, bude mít přesnější rozlišení. Zároveň platí, že nemůžeme měřit na vstupu vyšší napětí než je referenční napětí AREF.

   AREF    krok ADC
   5V      4,8828125mV    analogReference(DEFAULT);  
   1,1V    1,07421875‬mV   analogReference(INTERNAL);

Když vrací ADC hodnotu 512, měli bychom mít na vstupu polovinu referenčního napětí

    Vliv kondenzátoru pro filtraci napájení je pro přesnost referenčního napětí naprosto zásadní. Bez něj je chyba měření minimálně 6%. Vypočteno z průměrného měření. Aktuální hodnota AREF může být mimo předpoklad klidně i o 10%.

Vlastní zdroj přesného referenčního napětí

   AREF    krok ADC
  2,5V    ‭2,44140625‬mV   analogReference(EXTERNAL);    

    TL431 je levná[1] a stabilní napěťová reference. Chová se tak trochu jako programovatelná zenerova dioda. Bez nastavování a dalších přidaných součástek dává přesných 2,5V a nechá se nastavit od 2,5–36V. Pro Arduino můžu tedy použít 2,5–5V a napětí, které si nastavím a změřím reference opravdu drží.   
Přesné referenční napětí 2,5V pro Arduino.

Nastavitelná reference. Vždy je potřeba číst [datasheet]
 

Přepínatelná kombinace interní a externí napěťové reference

    Podle [2] může být externí AREF napětí může být pouze v rozsahu 0–5V. Před prvním voláním analogRead(); být nastaveno analogReference(EXTERNAL); jinak dojde k poškození MCU. 
    Externí a interní napěťovou referenci lze kombinovat a programově přepínat, stačí připojit externí referenční napětí na pin AREF přes odpor 5k. Jen je potřeba počítat s tím, že interní odpor na pinu AREF je 32k. Spolu pak fungují jako dělič napětí; tedy například pro naši referenci 2,5V přivedený přes rezistor 5k dá referenční napětí  2,5V × 32 / (32 + 5) = ~ 2,2 V AREF
    
    Související téma je teplotní stabilita napěťové reference[3].

Další čtení

[4] Podrobně o analogovém měření ardunem, referenčním napětí etc

blog se přestěhoval...

Začátkem srpna 2026 se blog přestěhoval na novou adresu. Mělo by automaticky dojít k přeměrování na novou adresu, pokud se to nestalo, musít...