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