Close

TinyLab: Potenciometr

Potenciometr na Arduino desce TinyLab

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.

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ší.

Autor: Iainf – Fotografie je vlastním dílem, CC BY 2.5, https://commons.wikimedia.org/w/index.php?curid=1407612

Autor: Iainf – Fotografie je vlastním dílem, CC BY 2.5, https://commons.wikimedia.org/w/index.php?curid=1407612

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.

Schématické značky potenciometru. Zdroj: https://startingelectronics.org/beginners/components/potentiometer/

Schématické značky potenciometru. Zdroj: https://startingelectronics.org/beginners/components/potentiometer/

Potenciometr na TinyLab

Na desce TinyLab naleznete potenciometr v pravém dolním rohu a je připojený na analogovém pinu A0.

Potenciometr na Arduino desce TinyLab

Potenciometr

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.

Zapnutí analogového pinu A0 na desce TinyLab

Zapnutí analogového pinu A0 na desce TinyLab

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.

Zbyšek Voda

2 Comments on “TinyLab: Potenciometr

Oldřich Horáček
12.8.2017 at 12:34

Zdraví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:55

S 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.

Napsat komentář