Na podstawie tutoriala Johna Boxall'a p.t.: "Using analog input for multiple buttons".
Idea podłączenia większej liczby przycisków z Arduino za pomocą pinu wejścia analogowego wynika z chęci oszczędzenia wejść cyfrowych, które mogą zostać wykorzystane w układach w bardziej produktywny sposób. W rozwiązaniu, które zostanie przedstawoione, wiele przycisków może być podłączonych do jednego pinu analogowego. Rozpoznanie, z jakim rodzajem akcji mamy w danej chwili do czynienia odbywa się w oparciu o interpretację wartości napięcia przekazywanego w momencie naciśnięcia przycisku z dzielników napięcia.
Istnieją dwa rozwiązania tematu sterowania przyciskami układów. Oba wykorzystują ideę pomiarów spadków napięć powstających w dzielnikach napięcia utworzonych na tzw. "drabinkach rezystorowych". W pierwszym rozwiązaniu, dla sterowania n przyciskami wykorzystuje się n rezystorów o różnych wartościach rezystancji (Fig. 2).
W drugim rozwiązaniu stosowanych jest n rezystorów o takiej samej wartości rezystancji (Fig. 3).
Działanie układów, w obu przypadkach opiera się o wykorzystanie funkcji analogRead() i interpretację wyników za pomocą jakiejś instrukcji warunkowej. W układzie z Fig. 1. zastosowano rozwiązanie oparte o jednakowej rezystory o rezystancji 100 Ω (Fig. 3).
Dodatkowo w układzie zaimplementowano funkcje: sygnalizacji naciśnięcia przycisku poprzez zaświecenie diody LED oraz wyłączania podświetlenia LCD po upływie czasu 2500ms od momentu naciśnięcia dowolnego przycisku.
Zastosowanie w drabince rezystorów oporników o rezystancji 100Ω powoduje, że na wejściu analogowym (w tym przypadku A5) rejestrowane są następujące wartości napięcia: