Hlavní stránka Multimédia Elektronika Bastlíme s Arduinem – píšeme první program
Bastlíme s Arduinem – píšeme první program
autor: Filip Eckstein , publikováno 16.2.2017
Bastlíme s Arduinem – píšeme první 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!


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é?

Bastlíme s Arduinem – píšeme první program

Regulace jasu LED pomocí potenciometru.

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

Bastlíme s Arduinem – píšeme první program



Tagy: Arduino  bastlení  mikroelektronika  embedded  


 
Komentáře k článku
RSS
Pouze registrovaní uživatelé mohou přidat komentář!
16.2.2017 11:17:58   176.222.229.xxx 10
upravte si odkazy od 2. stránky
chybí vám tam "elektronika/"
http://pctuning.tyden.cz/multimedia/elek tronika/45329-bastlime-s-arduinem-piseme-prvni-program?start=7
17.2.2017 09:28:15   62.77.85.xxx 00
can i haz a led?
17.2.2017 09:35:36   62.77.85.xxx 67
chtělo by to nějakej projekt kterej je k nečemu..
každej kdo si arduino vybalí na něm rovnou rozbliká vestavěnou led na 13 estli to funguje, takže tydle už 1000x opakovaný kinedrprojekty který sou na forech arduina, na youtube, všude, bude ledka blikat i v novinách snad..sou zbytečný
zkuste něco co je k něčemu
třeba teď už si nějakou dobu píšu osciloskop pro oled displej..
udělal sem kod pro řízení naší firemní 12V ups.. atd.. něco co má účel.. todle je pro school kids..
dík i tak, snad v díle 50, s 600 kapitolama bude něco co má účel
17.2.2017 10:03:02   213.220.233.xxx 31
K ničemu jsou především komentáře o tom, jak se s Arduidem pokouší o osciloskop To už je lepší obyčejná zvukovka a software v PC, i když ani ta nebude osciloskopem.
17.2.2017 10:16:12   62.77.85.xxx 13
já se nepokoušim, mám ho funkční, jen pokračuju ve vývoji, dodělávám menu a další mody, pc sebou po firmě netahám, osciloskop se 77k samply do kapsy(víc než některý zvukovky) a 0.96" oled 128*64 mi stačí..
určitě není potřeba něčí požehnání, aby neco bylo osciloskopem.. bahaha
17.2.2017 10:27:39   62.77.85.xxx 03
jinak sem se do toho pustil protože sme nedávno táhli 20kg těžkej osciloskop "křižík" k cnc abych se podíval jestli něco leze z výstupu pro display z kontroleru a moc se mu nechtělo, už je starej a firma novej nekoupí..
17.2.2017 10:35:57   213.220.233.xxx 31
Nasamplovat vzorky a dát je na OLED není osciloskop K osciloskopu je třeba externí asynchronní triger s nastavitelnou úrovní, ten v Arduinu nikdy nebude. K digitálnímu osciloskopu je navíc potřeba minimálně desetinásobný oversampling.
17.2.2017 10:58:14   62.77.85.xxx 24
tóóóóóvížejó
se prober.. co analogový osciloskopy? ty maj oversampling? znova říkám: DĚCKA NEROZHODUJOU O TOM CO JE OSCILOSKOP, ALE VÝROBCE!
mimochodem nasamplovat vzorky a dát je na displej *je* osciloskop..
něco jako oversampling sem dopsal minulej tejden, nepotřebuju 32bit přesnost, stačí 8 + převzorkování..má to 0.96" oled boha jeho..chacha
17.2.2017 12:27:13   31.30.5.xxx 21
Uzavířeme to s tím, že vůbec netušíš o čem je řeč. Základní studijní materiál zde: http://measure.feld.cvut.cz/en/system/ files/files/en/education/courses/AE1B38EMA/lectures/Lecture_13.pdf
18.2.2017 07:54:33   213.192.2.xxx 21
Tohle je asi nejhorší možná kombinace, když se vysokoškolák - velký teoretik dohaduje s někým s bohatými reálnými zkušenostmi. Každý má kus pravdy, ale každý z nich mluví úplně jiným jazykem.

Je úplně jedno jak se to nazve, promězamě klidně třeba "žlutá krabička" (nebo jiná dle aktuální barvy), ale důležité je, jestli to plní účel (!).

Legrace na tom je, že praxe je vždycky cennější - teorie osvětluje cestu praxi (ne vždy), ale praxe je tu sama pro sebe, není kdovíjak závislá na teoriích, jsou to spíš posbírané zkušenosti. Je to dané způsobem fungování lidského mozku - mozek vytváří k problémům teorie a následně je v praxi několikrát ověřuje. Když teorie neplatí, "zahodí ji" a vytvoří jinou. Když platí, tehdy se z teorie stane praxe a reálná zkušenost.

Nebo ještě jinak - teoretici pracují jen mozkem, často chybně.
Praktici musí používat mozek i ruce a navíc mít spoustu reálných dovedností a znát spoustu fíglů, a mýlit se nesmí (protože by např. chybně opravený stroj mohl stát někoho zdraví nebo i život).
18.2.2017 11:08:18   88.102.28.xxx 01
jo máš recht.. ale už ně nas.. tak podle toho píšu..
18.2.2017 12:43:56   213.192.2.xxx 00
Však to taky bylo určeno hlavně jemu, protože když už chce někdo "machrovat", tak ať to aspoň dělá s vychováním a úctou k člověku jako takovému a k jeho práci. Že někdo něco neví neznamená, že je ten někdo automaticky horší člověk, nikdo totiž neví všechno a ani nemůže vědět. Vychování a vzájemná úcta je ve společnosti nutný základ a učí se daleko dřív, než nějaké VŠ elektrospecialitky. Jeho přemoudřelost spojená s arogancí by tak zvedla ze židle většinu normálních slušně vychovaných lidí, mě se to taky nelíbilo.
19.2.2017 23:14:53   78.102.211.xxx 00
Jenže ono to účel neplní Ani kdybys nad Arduinem vykonal oběť bohům, tak to stále bude nanejvýš bus sniffer, byť dobře prakticky využitelný, ale osciloskop nikdy
18.2.2017 11:06:28   88.102.28.xxx 11
tvl uzavři si co chceš, co to meleš za trotloviny.. vo co se snažíš..
u osciloskopů sem proseděl roky v práci, analogový i digitální, nepotřebuju všechno hiend jako zauhrovaný adolescenti ve snech..

copypaste z netu pro mentála: Osciloskop je elektronický měřící přístroj zobrazující průběhu napětí v čase.
18.2.2017 11:59:09   88.102.28.xxx 10
ostatním kdo to čtou: sorry
18.2.2017 12:06:03   88.102.28.xxx 11
abych nezapomněl, základní studijní materiál pro tebe: http://wiki.kidzsearch.com/wiki/Oscilloscope
19.2.2017 23:40:35   78.102.211.xxx 00
KIDZSEARCH
17.2.2017 10:59:45   62.77.85.xxx 10
jo zapomněl sem, trigger(několik režimů auto + ext) tam mám taky, bez toho je osciloskop tak nějak nevim na co..
17.2.2017 10:34:34   90.176.40.xxx 20
Tak my tam nejen blikáme LEDkou. Taky tam máme něco s PWM regulací. A něco tím sledujeme...
17.2.2017 10:49:29   62.77.85.xxx 00
18.2.2017 09:06:04   81.30.247.xxx 00
reklamu
18.2.2017 16:56:16   213.192.2.xxx 00
„Plha… se hlásí”
17.2.2017 09:45:09   62.77.85.xxx 22
info kde ty krámy *normálně* sehnat..
ten shop co "suppnul" článek snad je troche mimo s cenama, klony mají 2x-3x dražší než se daj sehnat na jednom nejmenovaným aukčním webu.. kupuju uno za 95, pro mini 64, mega 2560 na 209.. ne az ty prachy co to maj tam! to neni pro kriticky ulohy, je to prakticky hračka, podivejte se co s tim vymejšlíte za projekty vs ta cena.. dal by někdo za blikání ledky jen za origo arduino 678,- ? to je cena z toho děkovanýho shopu.. tranzistorama to udělám za pětikorunu.. nebuďte lamy
17.2.2017 23:41:05   94.112.129.xxx 30
Super seriál Osobně sleduji novinky ohledně arduina a další elektroniky hlavně na http://www.rajbastliru.cz/, ale už se tady těším na další díl
18.2.2017 19:53:39   78.45.124.xxx 10
Článek je stejně dobrý, jako ten první. Bohužel měl přijít tak před třemi měsíci, hned po prvním článku.
Ti, které původní článek nadchnul (jako mě), si už arduino dávno pořídíli, buď Starter kit (protože asi nevědí co s penězma ), nebo se vydali složitější, zato výrazně levnější cestou a sháněli si vše sami.
No a když už jsem měl tohle doma, tak přece nebudu čekat několik měsíců na to, abych si zablikal s LEDkou , těchto primitivních návodů se všude válí doslova tuny.
Problém, alespoň pro mne, je, že když jsem se do tohodle pustil, tak jsem o elektrotechnice nevěděl ani ..nic . Programování, mi nijak zvlášť problémy nedělá, alo o elektřině jsem věděl akorát tak to, že mi díky ní jede lednička a PC a když strčím prsty do zásuvky, tak z toho nebudu moc happy .
Bohužel, pokud chcete opravdu něco postavit a nevíte ani jaký je rozdíl mezi proudem a napětím, tak jste odkázání pouze na něco, co postavil někdo před vámi a není to nijak složité. Takže to postavíte pole fotky, zkopírujete/stáhnete program a doufáte, že to nějak bude fungovat. Jenomže ve skutečnosti vůbec netušíte, proč to tak je a vlastně jste vůbec nic nevymysleli.
Takže jsem začal hledat návody a studovat a tady je asi ten největší problém. Buďto jsou ty návody příliš primitivní, nebo naopak až moc odborné, při pročítání vůbec netuším o čem to čtu .
No a tady bych se docela rád obrátil na vás ostatní. Netušíte náhodou kde sehnat dobrý studijní materiál, ideálně tak nějaký praktický návod sestavení s podrobným vysvětlením proč to tak je?
Bastlení zdar a Arduinu zvlášť
18.2.2017 23:49:14   94.112.129.xxx 10
Dobré návody na AVR ( i když ne přímo na Arduino) jsou na http://www.tajned.cz. Jsou tam popsané úplné začátky, ale taky pokročilé témata. Hlavně ten web přidává celkem často něco nového, tak je tam pořád co sledovat.
23.2.2017 07:17:29   10.215.21.xxx 04
Pod pojmem "bastlení" si představuji něco jiného. Bastlení je návrh, pájení a testování v oblasti elektrotechniky a ne tupé propojování kablíků na nepájivém poli. Osobně ho nesnáším, dobrý bastlíř si vyvíjí své zapojení a nepoužívá připravené zařízení které umí ovládat i cvičená opice. Navíc nepatří na tento web, který by se měl nejspíš přejmenovat...

Redakce si vyhrazuje právo odstranit neslušné a nevhodné příspěvky. Případné vyhrady na diskuze(zavináč)pctuning.cz

58 čtenářů navrhlo autorovi prémii: 27.4Kč Prémie tohoto článku jsou již uzavřené, děkujeme za váš zájem.
Tento web používá k poskytování služeb soubory cookie.