Součástí Starter kitu byla i tato klávesnice pro zadávání hexadecimálních čísel.

 

Samozřejmě jsem si její ovládání chtěl také osahat. Na netu a v literatuře jsem našel v podstatě dvě různá řešení. Jedno, které Arduinu „zabere“ osm digitálních vstupů a druhé, které zabere pouze jeden analogový. Oba příklady zde uvedu, samozřejmě se přikláním k druhému velmi elegantnímu řešení.

První řešení je zde, zdrojový kód je zde a seznam součástek zde.

 

Prostě žádná věda, je použita „hrubá“ síla. Není to nic hezkého zabrat 8 vstupů a pouze odečítat jejich stavy.

Druhé řešení se mi líbí podstatně více, neboť je již potřeba trochu zapojit vědu a mozek (obvod zde funguje jako tzv. dělič napětí s různými odpory).

 

Celý fór spočívá v tom, že na „řádcích“ používám odpory řádu kiloohmů, kdežto ve „sloupcích“ odpory o jeden řád slabšími. Ideální stav by byl, kdyby sousední řádky a sloupce obsahovaly odpory s právě dvojnásobkem hodnoty vedlejšího odporu (pak by se zjištění stisknuté klávesy smrsklo na jeden elegantní matematický výraz – viz zapoznámkovaná řádka číslo 35, ale konstanty nemám ověřeny). Ideální hodnoty odporů by byly tyto: v řádcích 1kΩ, 2kΩ,3kΩ a ve sloupcích 250Ω, 500Ω a 750Ω.Takové odpory jsem neměl, proto jsem zvolil řešení s polem přednastavených hodnot (viz řádka 46 ve zdrojáku) se sekvenčním prohledáváním tohoto pole vůči zjištěné hodnotě na vstupním pinu.

 

Schéma obvodu  je zde, zdrojový kód je zde, seznam součástek zde, část elektrického obvodu zde.