TinyLab: Potenciometr
V minulém dílu jsme si ukázali, co všechno deska TinyLab umí a jaké součástky na ní nalezneme. V dalších dílech si postupně jednotlivé součástky představíme. Dnes se budeme zabývat potenciometrem.
Obsah článku:
Trocha teorie
Potenciometr je součástka, kterou je možné použít jako regulovatelný napěťový dělič. Co to znamená? Nepůjdeme moc do hloubky a budeme se zabývat hlavně důsledkem, který je pro nás nejdůležitější.
Na jednu krajní nožičku zapojíme zemi (GND), na druhou plus (v našem případě +5V) a čteme napětí na prostřední nožičce. To se může pohybovat mezi 0V a 5V v závislosti na otočení prostředního kolíku. Jako snad všechny elektrotechnické součástky, i potenciometr má vlastní schématickou značku. Nejčastěji se setkáme se dvěma typy značení, které se liší podle použité normy schématických značek.
Potenciometr na TinyLab
Na desce TinyLab naleznete potenciometr v pravém dolním rohu a je připojený na analogovém pinu A0.
Jednotlivé součástky se k hlavnímu čipu připojují řadou přepínačů kolem pinů na desce Leonardo. Přepneme si proto přepínač označený číslem 6 na levé straně desky Leonardo. Ten připojuje právě analogový pin A0.
Posílání naměřených hodnot z potenciometru
V tomto příkladu si necháme každých 10ms posílat hodnotu z potenciometru. Když si v nabídce Tools (Nástroje) otevřeme Serial Monitor (Sériový monitor), bude nám závratnou rychlostí vypisovat čísla. Pokud vypisuje nesmyslné hodnoty, zkontrolujte, že máte v pravém dolním rohu monitoru vybranou správnou rychlost – v našem případě 9600.
Vypisování hodnot je zajímavé, zajímavější je ale si otevřít ve stejné nabídce Serial Plotter (Sériový plotter), který přijaté hodnoty zobrazí do grafu.
void setup() { // zahájíme sériovou komunikaci s rychlostí 9600 Serial.begin(9600); } void loop() { // přečteme hodnotu z analogového pinu A0 a uložíme ji do proměnné s názvem hodnota int hodnota = analogRead(A0); // odešleme naměřenou hodnotu po sériové lince Serial.println(hodnota); // počkáme 10 milisekund před dalším opakováním delay(10); }
Změna rychlosti blikání LED
Ještě si dnes vyzkoušíme jiný příklad, ve kterém budeme pomocí potenciometru měnit rychlost blikání LED na pinu 13. Pokud si nepamatujete, jak se LEDkou bliká, podívejte se na závěr minulého článku.
byte ledPin = 13; void setup() { // nastavíme pin 13 jako výstup pinMode(ledPin, OUTPUT); } void loop() { int hodnota = analogRead(A0); digitalWrite(ledPin, HIGH); // zapneme LED delay(hodnota); // počkáme tolik ms, kolik je měřená hodnota digitalWrite(ledPin, LOW); // vypneme LED delay(hodnota); // opět čekáme }
Když nyní budeme otáčet potenciometrem, bude se měnit rychlost blikání LED.
To by bylo pro dnešek vše. Další v řadě komponent si představíme v příštím dílu.
- Sledovač slunce s Arduinem - 23.3.2022
- Programovatelný kytarový pedál s Arduinem - 26.2.2020
- Arduino infračervený teploměr vytištěný na 3D tiskárně - 11.2.2020
2 Comments on “TinyLab: Potenciometr”
Napsat komentář
Pro přidávání komentářů se musíte nejdříve přihlásit.
Oldřich Horáček
12.8.2017 at 12:34Zdravím Lukáši, pokud ten potenciometr zlobí, tak mě prosím kontaktujte a vyměníme ho za jiný nebo rovnou celou desku. Funkce všech periferií a taky potenciometru se dá dobře odzkoušet v základním testovacím programu pro TinyLab. Tam to musí fungovat, jinak je problém někde v HW. Hodně úspěchů s Arduinem! S pozdravem Oldřich 🙂 info@hwkitchen.cz
lukas.vacek
7.8.2017 at 20:55S potenciometrem na Tinylabu mám mírně problematické zkušenosti. Předtím, než je popíšu tak pro začátečníky doplním, že analogRead(.) vrací celočíselné hodnoty 0,..,1023 tj. jemnost dělení činí 1024 hodnot, které reprezentují dělené napětí od 0V do 5V. K problému: podobný příklad mi vracel hodnoty od 200 – 1023 a pod hodnoty 200 jsme se dostal jen v případě podržení potenciometru v krajní poloze. Zřejmě se jedná o defekt potenciometru, který má nějak špatný jeden konec. Jiné děliče napětí fungují. V případě, že se Vám dějě tento jev, tak doporučuji zkusit jiný poternciometr s odporem nejméně např 1k.