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

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