Tahový lineární potenciometr je vstupní modul pro Arduino. Tento potenciometr obsahuje duální analogový výstup, přičemž nejlepšího měření dosáhneme při průměrování naměřených hodnot z obou výstupů. Co se týká napájení, tak je možné připojit vstupní napětí 3,3 nebo 5 Voltů. Odpor celého rozsahu potenciometru je 10 kiloohmů. Rozměry celého modulu jsou 90x20 mm, přičemž výhodou je přítomnost montážních otvorů pro jednoduché umístění do cílového zařízení.
Pro úspěšné propojení lineárního potenciometru s Arduino deskou propojíme celkem 4 vodiče. Připojíme OTA na pin A0, OTB na pin A1, VCC na 5V Arduina a GND na zem Arduina. Pro oba analogové vstupy můžeme zvolit i jiné volné analogové piny, ale tuto volbu je nutné provést také v programu. Co se týká zapojení napájení na pinech VCC a GND, tak stačí využít pouze po jednom pinu z dvou dostupných, protože oba páry pinů VCC a GND jsou vždy mezi sebou propojeny přímo na desce.
Ukázkový kód obsahuje na svém začátku nastavení čísel propojovacích pinů a v podprogramu setup provedeme inicializaci komunikace po sériové lince. Nekonečná smyčka loop obsahuje jako první načtení vstupních údajů z obou pinů do vytvořených proměnných. Dále provedeme převedení průměru z obou měření ze vstupního rozsahu na procentuální vyjádření, abychom dostali nový rozsah 0-100. Pro informaci jsem pak ještě do programu přidal vypočtení napájecího napětí na vstupních pinech, kdy je v ukázce uveden případ při VCC=5V. Pokud bychom tedy používali VCC=3,3V, je nutné změnit číslo 5.0 na 3.3 ve výpočtu. V dalším kroku tedy už jen vytiskneme všechny dostupné údaje po sériové lince a po pauze opakujeme celý program.
// Tahový lineární potenciometr pro Arduino #define pinOTA A0 #define pinOTB A1 void setup() { // komunikace po sériové lince rychlostí 9600 baud Serial.begin(9600); } void loop() { // načtení vstupních údajů z obou pinů int cteniOTA = analogRead(pinOTA); int cteniOTB = analogRead(pinOTB); // převedení průměru z obou měření ze vstupního rozsahu // na procentuální vyjádření int procenta = map((cteniOTA + cteniOTB) / 2, 0, 1023, 0, 100); // výpočet napájecího napětí na obou vstupních pinech float napetiOTA = cteniOTA * (5.0 / 1023.0); float napetiOTB = cteniOTB * (5.0 / 1023.0); // vytištění dostupných údajů po sériové lince Serial.print("Napeti na pinu OTA: "); Serial.print(napetiOTA); Serial.print(" V | Napeti na pinu OTB: "); Serial.print(napetiOTB); Serial.print(" V "); Serial.print(procenta); Serial.println("% "); // pauza před dalším měřením delay(500); }
Po nahrání ukázkového kódu do Arduino desky s připojeným lineárním potenciometrem dostaneme například tento výsledek:
Napeti na pinu OTA: 0.00 V | Napeti na pinu OTB: 0.00 V 0% Napeti na pinu OTA: 0.02 V | Napeti na pinu OTB: 0.02 V 0% Napeti na pinu OTA: 0.16 V | Napeti na pinu OTB: 0.16 V 3% Napeti na pinu OTA: 0.59 V | Napeti na pinu OTB: 0.61 V 11% Napeti na pinu OTA: 2.00 V | Napeti na pinu OTB: 2.00 V 39% Napeti na pinu OTA: 3.50 V | Napeti na pinu OTB: 3.51 V 70% Napeti na pinu OTA: 4.97 V | Napeti na pinu OTB: 4.97 V 99% Napeti na pinu OTA: 5.00 V | Napeti na pinu OTB: 5.00 V 100%
Tahový lineární potenciometr je praktický modul, s kterým můžeme přidat zajímavý ovládací prvek k Arduinu. A díky lineárnímu rozložení odporu po celé délce může tento potenciometr najít využití v projektech jako je například ovladač intenzity světla, hlasitosti či jako jeden z ovládacích prvků na vlastním mixážním pultu. Další dobrou vlastností je také příznivá cena nebo zjednodušení integrace do vlastní krabičky díky montážním otvorům přímo na modulu.
Seznam použitých komponent:
https://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html
https://dratek.cz/arduino/1291-10k-tahovy-linearni-potenciometr-pro-arduino-1462217967.html