Bastlíme s Arduinem – píšeme první program
i Zdroj: PCTuning.cz
Zábava Článek Bastlíme s Arduinem – píšeme první program

Bastlíme s Arduinem – píšeme první program | Kapitola 7

Filip Eckstein

Filip Eckstein

16. 2. 2017 08:00 27

Seznam kapitol

1. Nechme stroje pracovat 2. Instalace vývojového prostředí 3. Zapojujeme 4. První program aneb blikej za nás
5. Hlavní cyklus prvního programu 6. Regulujeme intenzitu svitu – zapojení 7. Regulujeme intenzitu svitu – program

Po nějakém čase se vracíme k bastlení s Arduinem. Dnes se však od hardwaru trošku odkloníme a podíváme se na software. Arduino totiž není jen o elektrobastlení, ale také o algoritmizaci, která nám prostřednictvím mikroprocesoru umožní celý náš výtvor rozhýbat. Dejme se tedy do práce, programátoři!

Reklama

A protože máme z minulé kapitolky již vše zapojené, nezbývá než napsat obslužnou rutinu.

Inicializace – setup()

V případě inicializace není nutné výstupní pin inicializovat, protože ho budeme provozovat v PWM módu (vyplývá to z dokumentace k funkci analogWrite() o niž si povíme za chvilku). Funkce setup() bude tedy v tomto příkladě prázdná.

Pro analogový vstup rovněž není žádná inicializace nutná.

void setup() {
  // zde neni nic potreba
}

Hlavní cyklus – loop()

Zbytek programu už se ale od prvního projektu poměrně významně liší (asi tak ve všem). Setkáváme se zde se dvěma úplně novými funkcemi – analogRead() a analogWrite(). A protože už jsme zkušení Arduino bastlíři, otevřeme si dokumentaci, abychom věděli, s čím máme tu čest.

Funkce analogRead() nám umožňuje číst hodnotu vstupního napětí v rozsahu 0–5 V naměřenou na analogových vstupech procesoru převedenou do číselného rozsahu 0–1023. My ji musíme v argumentu předat pouze číslo analogového vstupu. Na oplátku nám funkce vrátí číselnou hodnotu na vstupu. Tu si můžeme vyčíst například do nějaké proměnné. Já si tu svoji pojmenoval „pot“ a deklaroval ji mimo funkce setup() a loop().

Další neodmyslitelnou funkcí, kterou v tomto projektu použijeme, je analogWrite(). Díky té je totiž možné ovládat PWM výstup, o němž jsme se zmínili v minulé kapitole. V prvním argumentu ji opět předáme číslo pinu. V argumentu druhém předáváme hodnotu střídy v rozsahu od 0 do 255. Já v argumentu předávám hodnotu, již jsem vyčetl z analogového vstupu. Hodnotu navíc musím podělit 4, protože z analogového vstupu čtu hodnoty v rozsahu 0 až 1023, zatímco funkce pro zápis na PWM výstup akceptuje čísla pouze v rozsahu 0 až 255.

int pot = 0;

void setup() {
  // neni co inicializovat
}

void loop() {
  // hlavni cyklus
  pot = analogRead(0);      // precti udaj z potenciometru na A0
  analogWrite(11, pot / 4); // uprav jas LED
}

Pakliže kompilace a upload kódu do Arduina prošel bez chyb, můžeme si nyní potenciometrem nakroutit požadovaný jas. No není to jednoduché?

Regulace jasu LED pomocí potenciometru.
i Zdroj: PCTuning.cz
Regulace jasu LED pomocí potenciometru.

Za poskytnutí součástek a podporu děkujeme Arduino-Shop.cz!

Předchozí
Další
Reklama
Reklama

Komentáře

Nejsi přihlášený(á)

Pro psaní a hodnocení komentářů se prosím přihlas ke svému účtu nebo si jej vytvoř.

Rychlé přihlášení přes:

Google Seznam
Reklama
Reklama