ROBOTIKA ZÁKLADY. verze 0.4 ze dne Rudolf Hlaváček a kolektiv

Rozměr: px
Začít zobrazení ze stránky:

Download "ROBOTIKA ZÁKLADY. verze 0.4 ze dne 5.9.2012. Rudolf Hlaváček a kolektiv"

Transkript

1 ROBOTIKA ZÁKLADY verze 0.4 ze dne Rudolf Hlaváček a kolektiv

2 Obsah 1 Úvod Týmy pro stavbu robotů Co budeme stavět přehled kapitol Orientace v textu Soutěže Eurobot starter a Bear Rescue Beginner Pravidla kategorie Stopár v soutěži Istrobot Robotchallenge Doporučení k mechanické konstrukci robota Ovládání robotů Velikost robotů Konstrukce velkých robotů Nezbytné součástky Datasheet Mikroprocesor, mikrokontrolér Rezistor Kondenzátor Dioda LED Tranzistor Cívka Driver Stabilizátor Krystal Postup při programování čipu Úvod Postup programování robota Potřebné programy Nastavení a práce v AVR Studiu WinAVR Nastavení programu Up Práce s programátorem Základy syntaxe v jazyce C Základní pojmy Výrazy a operátory Aritmetické operátory Operátory inkrementace a dekrementace Logické výrazy a operátory Příkazy Přiřazovací příkaz

3 6.3.2 Blok příkazů Podmiňovací příkaz (if) Příkaz několikanásobného větvení (switch) Cyklus for (cyklus řízený proměnou ) Cyklus while (cyklus s podmínkou na začátku ) Funkce a procedury Knihovny Vlastní knihovny Použité knihovny Bity a bajty Desítková soustava a dvojková soustava Desítková soustava Dvojková soustava Převod z desítkové soustavy do dvojkové Bity a bajty Převod z dvojkové soustavy do desítkové Bitové výrazy a práce s nimi Bitové operátory Bitový součet Bitový součin Bitová negace Bitový exklusivní součet Bitový posun doleva Bitový posun doprava Periferie Co jsou to periferie Jaké periferie Atmega16 má? Obecné použití periferií Práce s ATMega16 v C Piny Přehled pinů Připojení na programátor Práce s registry Registry pro řízení pinů Základní vstup a výstup Nastavování bitu zapsání jedničky Sesazení bitu zapsání nuly Příklad pro vstup a výstup Registry časovačů/čítačů PWM řízení motorů Řízení serva Přerušení Základy elektroniky

4 10.1 Proud Napětí Odpor Výkon Výpočet tepelného výkonu (ztrátového) Dioda Výpočet rezistoru pro LED-diodu Tranzistory Stabilizátor Literatura Rejstřík

5 1 Úvod Tento text chce čtenáři naprostému začátečníkovi pomoct stavět a programovat amatérské roboty, pro zábavu a nebo pro účast v různých robotických soutěžích. 1.1 Týmy pro stavbu robotů Stavba robotů zahrnuje tři propojené, ale relativně nezávislé okruhy: návrh a výrobu mechanické konstrukce, návrh a zapojení elektroniky a programování. Proto je dobré roboty stavět v týmech, kde se jednotliví členové zaměřují na tyto oblasti a navzájem se doplňují. Navíc každý tým potřebuje řadu pomocných činností (nákup součástek, vyhledávání údajů na internetu a pod.). Je dobré mít proto v každém týmu ještě pomocníka, který podporuje ostatní a umožňuje jim soustředit se na jejich hlavní úkoly. Úplně ideální potom je, když každou funkci v týmu zastávají dva lidé, takže se mohou vzájemně zastupovat. Tým by potom měl celkem osm členů dva mechaniky, dva elektroniky, dva programátory a dva pomocníky. To se ale v praxi téměř nikdy nepodaří. Často nastane právě opačný případ, kdy tým má pouze dva nebo tři členy, kteří se o všechny činnosti musí nějak podělit. V každém případě ale platí, že je výhoda, pokud lidé v týmu znají i věci mimo jejich hlavní obor, tj. když například programátor zná základy elekroniky. 1.2 Co budeme stavět přehled kapitol Většina studentů si na začátku vybere robotickou soutěž (viz kapitola 2 ) a pro ni staví robota. Základní zásady mechanické stavby robotů jsou popsány v kapitole 3. Nezbytné elektronické součástky pro výrobu robotů, které by měli znát všichni, jsou v kapitole 4. Další informace k elektronice jsou v kapitole 10. Ostatní kapitoly postupně popisují programování robotů. 1.3 Orientace v textu Čísla ve hranatých závorkách odkazují na seznam literatury na straně 37. Pro stavbu robotů, především elektroniku a programování, je potřebná řada pojmů. Měli jsme snahu uvádět nové informace postupně, ale vždycky to nebylo možné. Pokud narazíte na neznámý pojem, použijte rejstřík (strana 38). Pokud něco v rejsříku nenajdete, přijďte to reklamovat :-). Pokud už budete některé pasáže znát, můžete je přeskočit. Toto je první verze textu, proto mohou být některé pasáže nesrozumitelné. Pokud Vám nebude něco jasné, přijďte se zeptat nebo použijte Google. 4

6 2 Soutěže 2.1 Eurobot starter a Bear Rescue Beginner Toto je soutěž, na kterou se přednostě zaměřujeme. Koná se každoročně v Praze. Cílem je sestrojit robota, který plní soutěžní úkoly. Hřiště a úkoly se každoročně mění. Nicméně je jedna věc, kterou musí umět každopádně: jezdit. Takže se stavbou funkčního podvozku se dá začít ještě než výjdou oficiální pravidla. Většinou musí umět něco tlačit před sebou, zvedat, stavět na sebe, to záleží na zadání. Roboti jsou ovládání před kabel řidičem, takže odpadá složité programování. Nicméně naprogramování řízení například přes joystick usnadňuje řidiči manipulaci s robotem, což je základ úspěchu. Dále je nezbytný trénink. I pár dní ježdění způsobí umístění v první osmičce robotů, které postupují do vyřazování. V roce 2012 byla soutěž Eurobot starter nahrazena soutěží Bear Rescue Beginner. Základní charakter soutěže zůstal zachován. 2.2 Pravidla kategorie Stopár v soutěži Istrobot Stopár je kategorie soutěže Istrobot, která se koná v Bratislavě. Cílem je sestrojit zcela samostatného robota, který bude sledovat černou čáru na bílém podkladu a projede soutěžní trať co nejrychleji. Na trati se přitom mohou vyskytovat tyto překážky: tunel, přerušení čáry, cihla, reflektor (změna osvětlení trati), most, rozdvojení čáry, dveře [13]. Konstrukce a materiály nejsou omezeny, je povoleno i používat zakoupené stavebnice robotů, podmínkou je pouze, aby autor napsal aspoň program. To je také důvod, proč se na soutěži vyskytují v hojné míře roboti, kteří jsou postaveni ze stavebnice Lego. Roboti musí být autonomní a nesmí být ovládáni dálkově. Omezeno je nejvyšší napětí, se kterým mohou roboti pracovat, a to na 24 V. Proudový odběr je povolen maximálně do 20 A. Počet nebo druh senzorů není omezen. Na soutěži byl robot s jedním senzorem (kamera), ale objevil se i robot s dvaceti čtyřmi senzory. Šířka a výška robota nesmí přesáhnout 20 cm. Délka není omezená. 2.3 Robotchallenge Ve Vídni pořádají soutěž s názvem Robot Challenge [12], jen asi větší. Je zde více kategorií, nás bude nejvíce zajímat kategorie Line Follower a Line Follower Enhanced. Ta poslední zmíněná je podobná té na soutěži Istrobot. Zatímco kategorie Line Follower je jednodušší v tom, že neobsahuje překážky jako přerušení čáry, cihlu, tunel. Šířka robota nesmí přesáhnout 30 cm. Co se týče vlastních poznatků musím zmínit, že v soutěži Robotchallenge je důležité mít senzory na detekci čáry zakrytovaané. Samozřejmě je vhodné je mít zaktytovány i v soutěži Istrobot, tam to ale není tak nutné, protože světelné podmínky mi připadaly během soutěže neměnné. Nicméně na Robotchallenge se světelné podmínky dost měnily. Zde je velice nutné myslet na zakrytování všech IR senzorů. 5

7 3 Doporučení k mechanické konstrukci robota Roboty rozlišujeme podle způsobu ovládání a podle velikosti. 3.1 Ovládání robotů Každý robot může být buď řízený nebo autonomní. Autonomní znamená, že je naprogramovaný a během soutěže nebo prezentace se pohybuje samostatně. Roboty můžeme řídit po kabelu nebo bezdrátově, například přes bluetooth. 3.2 Velikost robotů Na škole a v DDM Junior stavíme a programujeme hlavně roboty dvojího typu : střední a velké. Jako střední používáme roboty yunimin a 3pi - jsou v zásadě hotové a pouze se programují, jsou určené pro soutěže typu sledování čáry (Robotchallege, Istrobot, nově i Robotický den v Praze), minisumo a další. Pro střední roboty neexistuje soutěž, kde by se ovládali po kabelu, musí proto být autonomní. Velké roboty (typicky pro soutěž Eurobot a Robotický den) si stavíme sami. Mohou být dálkově řízené i autonomní. Začátečníkům se silně doporučuje začít s dálkově řízeným robotem a nebo se přidat k týmu zkušenějších konstruktérů. 3.3 Konstrukce velkých robotů Při stavbě velkých robotů se držíme osvědčeného schématu: Podvozek tvoří základní deska z překližky nebo rám z hliníkových profilů typu L tvaru obdélníku, osmiúhelníku nebo kruhu. Na podvozku jsou připevněné dva motory z akušroubováků nebo z akuvrtaček včetně převodovek, které se koupí hotové. Jiné typy motorů jsou buď pomalé nebo slabé. V žádném případě se nepokoušejte koupit pouze motor (např. protože je levnější) a vyrábět si převody sami. Dále jsou zde dvě kola, každé připojené ke svému motoru a jedna nebo více podpěr podvozku, obvykle z kartáčku na zuby. Motory s koly lze umístit doprostřed nebo dozadu, podle toho, co má robot na hřišti dělat. Na podvozek se umisťuje konstrukce z hliníkových tyčí, profilů nebo z merkuru, s pomocí které robot plní svoje úkoly. Méně tuhé materiály se neosvědčily. 4 Nezbytné součástky 4.1 Datasheet Datasheet je dokument, ve kterém jsou detailně popsány vlastnosti a možnosti dané elektronické součástky. Každá součástka má svůj datasheet. Datasheet je možné najít na internetu, například na stránce 6

8 nebo na stránkách výrobce nebo prodejce součástky. Bohužel jsou všechny datasheety anglicky. 4.2 Mikroprocesor, mikrokontrolér Mikroprocesor, mikrokontrolér, čip znamenají totéž integrovaný obvod, který se snažíme naprogramovat, aby řídil robota nebo jeho část. Pin je vývod (nožička) čipu (podrobněji viz 9.1). Jednoduché čipy (např. ATtiny) mají osm pinů, složitější čipy mají 32, 40, nebo také 100 pinů. 4.3 Rezistor Rezistor nebo také odpor 1 je součástka, která klade elektrickému proudu určitý odpor neboli ho omezuje. A to podle vzorce: U = R I, kde U je napětí, R je odpor a I elektrický proud (viz str. 32). Tento vztah je znám pod názvem Ohmův zákon a můžeme z něj vyjádřit proud I: I = U/R. Ze vzorce je vidět, že pokud použijeme rezistor s větším odporem při stejném napětí, tak se protékající proud zmenší (použití viz 10.7). Odpor rezistoru měříme v ohmech, značka Ω. 4.4 Kondenzátor Kondenzátor je součástka, která uchovává elektrický náboj. Jeho hlavní vlastností je kapacita. Jednotkou kapacity je Farad, značka F. V praxi se používají násobky jako mikrofarad (µf), nanofarad (nf) a pikofarad 2 (pf). Kondenzátory se nabíjí a vybíjí různě rychle a mají různou kapacitu. Keramické kondenzátory mají nejmenší kapacitu(pf, nf) a jsou nejrychlejší, tantalové mívají kapacitu okolo pár µf a jsou pomalejší a nejpomalejší jsou elektrolytické s kapacitou stovek až tisíců µf. U tantalových a elektrolytických kondenzátorů musíme dát pozor na polaritu, tj. kam připojujeme + a kam -. Další důležitý údaj je maximální hodnota napětí, kterou kondenzátor snese. 4.5 Dioda Dioda je součástka, která usměrňuje elektrický proud. To znamená, že pokud ji zapojíme do elektrického obvodu, tak zajistí, že proud bude téct pouze jedním směrem. Proto budeme diodu používat jako ochranu proti tzv. přepólování chybnému zapojení baterie nebo součástky do obvodu, které obvykle vede ke zničení součástky (podrobněji viz 10.6). 1 Správně se součástce říká rezistor, odpor je její vlastnost. Ale mnoho lidí používá pro označení součástky slovo odpor. 2 Mikrofarad je miliontina faradu, nanofarad je tisíckrát menší a pikofarad milionkrát menší než mikrofarad. 7

9 4.6 LED LED 3 je součástka, která není primárně určená k usměrnění proudu, ale k signalizaci, zda obvodem protéká proud. K LED se vždy musí připojit rezistor (viz 10.7). 4.7 Tranzistor Tranzistor je součástka, která umožňuje pomocí malých proudů z čipu řídit větší proudy, například do reproduktoru nebo motorku (viz 10.8). 4.8 Cívka Cívka neboli tlumivka je součástka, jejíž hlavní vlastností je indukčnost, jednotka henry, značka H. V praxi se používají milihenry (mh) a mikrohenry (µh). 4.9 Driver Čip nemůže řídit například motor přímo, protože jedním pinem může protékat obvykle maximálně 40 ma většina motorů potřebuje mnohem větší proud. Proto se používají součástky zvané drivery, které podle pokynů z čipu řídí proud z baterií do motorů a servomotorů Stabilizátor Většinu čipů je potřeba napájet přesně 5 V. Jak toho docílit z baterií, na kterých je například 9 V nebo 12 V, zkrátka více než 5 V. Navíc napětí na bateriích kolísá podle toho, jak moc proudu zrovna odebírají motory. Pro napájení čipů je proto nutné použít stabilizátor. Stabilizátor je součástka, která z kolísavého vyššího napětí vyrobí přesné napětí nižší. Nejčastěji se používají stabilizátory řady 78XX, kde XX značí, na kolik voltů součástka stabilizuje, například 7805 stabilizuje na 5 V. Stabilizátor má tři piny (vstup, zem, výstup). Zapojí se takto: Kladný pól baterie (+) se napojí na vstup, záporný pól na zem (-). Mikrokontrolér se zapojí pinem VCC na výstup stabilizátoru a GND (pin 11 - digitální zem) se zapojí na zem stabilizátoru. Tímto máme připojený mikrokontrolér na napájení Krystal Pokud budeme potřebovat vyšší frekvenci procesoru, použijeme krystal. Původní frekvence mikrokontroléru ATMega16 je nastavena na 1 MHz. S pomocí krystalu ji můžeme zvýšit až na 16 MHz. Krystal zapojíme takto: Jeden pin krystalu (je jedno, který) připojíme na pin XTAL1 a druhý na XTAL2. Dále na pin XTAL1 připojíme jednu nožičku kondenzátoru a druhou na digitální zem (11- GND). To samé u pinu XTAL2. Hodnotu kondenzátoru můžeme volit od 12pF do 22pF. 3 Light emitting diode světlo vysílající dioda 8

10 5 Postup při programování čipu 5.1 Úvod Roboty programujeme v jazyce C++, a to z několika důvodů. Zaprvé je to mnohem jednodušší než programovat v Assembleru. Zadruhé je to jazyk běžně používaný pro programování čipů. Většina informací o programování je pro řadu čipů společná, pro konkrétní ukázky je použitý čip ATMega16 [1] Postup programování robota 1. Napsání a přeložení programu v AVR Studiu 2. Nahrání přeloženého souboru *.hex do mikrokontroléru Potřebné programy 1. AVR Studio 4 v něm budeme psát zdrojový kód 2. WinAVR použijeme pro překlad 3. Up tímto programem nahrajeme *.hex soubor do mikrokontroléru 5.2 Nastavení a práce v AVR Studiu 1. Spustíme AVR Studio 2. Klikneme na New project 3. V kolonce Project type zvolíme AVR GCC 4. Do kolonky Project name napíšeme jméno projektu bez diakritiky 5. Zaškrtneme Create initial file a Create folder 6. Do kolonky Location napíšeme adresu, kam se má projekt uložit 7. Vlevo vybereme AVR Simulator a vpravo námi použitý mikrokontrolér (např. ATmega16) 8. Klikneme na Finish 9. Klikneme na záložku Project a dáme položku Configuration Options 10. Zvolíme Custom Options a nyní přepíšeme text -std=gnu99 v levém okně na -x c++ a dáme Add a potom OK 11. Nyní můžeme psát program, poté ho přeložíme klávesou F7 nebo tlačítkem Build Active Configuration 12. Zkontrolujeme, zda se v programu vyskytují chyby či nikoli 9

11 13. Pokud tu chyby jsou, musíme najít první v pořadí, dvakrát na ní klikneme a objeví se nám modrá šipka ukazující na místo, kde se chyba vyskytuje 5.3 WinAVR Abychom mohli zdrojový kód přeložit, zavolá AVR Studio překladač, který kód přeloží do souboru typu *.hex, který potom můžeme nahrát do mikrokontroléru. Na to ale musíme mít nainstalovaný překladač WinAVR [8]. Po vytvoření souboru *.hex ze zdrojového kódu můžeme tento soubor nahrát do mikrokontroléru. 5.4 Nastavení programu Up Do mikrokontroléru nahrajeme *.hex soubor programem Up pomocí programátoru 4 PRESTO. Nejprve upravíme nastavení programu Up (stačí jednou). 1. klikneme na záložku Nastavení, dále vybereme Klávesové zkratky..., potom vyberu pro tlačítko GO Programování paměti programu klikneme na záložku Nastavení a zvolíme Nastavení programu 3. zaškrtneme Načíst hex soubor vždy znovu před programováním 4. dále necháme zaškrtlé pouze Zobrazovat varovné hlášky k pojistkám, Pro čtení: Automaticky zavřít stavové okno, Delší čas pro zapojení napětí při ICSP 5. nastavíme čas na µs, a odklikneme OK 5.5 Práce s programátorem 1. Spustíme programu Up 2. Klikneme na Otevřít a najdeme si cestu k projektu, který jsme si vytvořili v AVR Studiu 3. Až to najdeme, tak klikneme na adresář default a najdeme hex soubor a dáme otevřít 4. Teď zbývá nahrát ho do mikrokontroléru 5. Nastavíme a nebo zkontrolujeme Konfiguraci 6. Propojku BODLEVEL nastavíme na co nejvyšší hodnotu menší, než hodnotu napájení mikroprocesoru a propojku BODEN na Enable 4 Zařízení pro naprogramování součástek. 5 Tím zajistíme, že se při zmáčknutí tlačítka GO na programátoru přeprogramuje pouze paměť pro program a ne například paměť EEPROM. Dále tím dosáhnu toho, že se nepřenastaví propojky pro mikrokontrolér. 10

12 7. Propojku SUT, CKSEL nastavíme na námi požadovanou frekvenci danou vnějším oscilátorem. V našem případě máme krystal 16MHz, a proto nastavíme SUT, CKSEL na XT MHz, 16Kck+65ms tím říkáme, že krystal je od 3 do 8 MHz, 16Kck+65ms říká, že než začne procesor pracovat, uplyne 16 tisíc tiků kryslalu naprázdno plus ještě 65 ms počká, je to kvůli stabilitě hodin v čipu, zkrátka, aby procesor pracoval správně. 8. Propojku CKOPT nastavíme na XT up to 16MHz, rail to rail tím řekneme, že krystal připojený k čipu je 16 MHz a ne 8 MHz, které jsme si zvolili v propojkách SUT, CKSEL 9. Při prvním programovaní musíme upravit frekvenci programátoru, protože mikrokontrolér je z výroby nastaven na 1 MHz. V kolonce Frekvence krystalu zvolíme menší než 1 MHz například >100 khz 10. Důležité jsou i kolonky Napájení v klidu a Napájení během programování. Pokud máme na procesoru napětí 5 V, tak dáme Žádné/externí a Externí 2,7 V až 5,5 V. Pokud chceme procesor napájet z programátoru, tak nastavíme políčko Napájení během programování na interní 5 V. Políčkem Napájení v klidu pak zapínáme a vypínáme procesor. 11. Klikneme na Konfigurační tabulku pravým tlačítkem a dáme Zapamatovat pojistky, pak znovu pravé tlačítko a dáme Naprogramovat konfigurační paměť. 12. Nyní můžeme stisknout tlačítko GO na programátoru. 6 Základy syntaxe v jazyce C 6.1 Základní pojmy příkaz povel pro procesor, říká procesoru, co má dělat. Příkazy probíhají postupně, nejprve se udělá jeden a pak další, který je na řadě Za příkazy dáváme středník (;). syntaxe pravopis programovacího jazyka, říká, jak psát příkazy programovacího jazyka tak, aby nám počítač rozuměl preprocesor před samotným překladem programu do *.hex souboru proběhnou tzv. direktivy preprocesoru (něco jako příkazy, podrobně viz [3], str. 18). Příklady: #include <> pro vkládání hlavičkových souborů #include "" pro vkládání vlastních hlavičkových souborů #define KONSTANTA HODNOTA_KONSTANTY pro definici konstanty, všude kde se v kódu vyskytne text KONSTANTA bude tento text nahrazen HODNOTA_KONSTANTY proměnná je místo v paměti, kde jsou uložena nějaké data 11

13 datový typ říká nám, v jaké podobě jsou data v proměnné uložena. V proměnné jsou pouze jedničky a nuly, Pomocí datového typu mikrokontrolér pozná, jestli ta data jsou čísla, nebo znak, v jakém rozsahu jsou čísla, atd... používané datové typy: uint8_t celá čísla od 0 do 255 int8_t celá čísla od -127 do 127 uint16_t celá čísla od 0 do int16_t celá čísla od do uint32_t celá čísla od 0 do int32_t celá čísla od do operandy jsou čísla nebo výrazy, které vstupují do operace operátory nám říká, jaké operace provedeme s operandy (co s nimi uděláme) Příklad: 5 + 2, přitom 5 a 2 jsou operandy a znaménko plus je operátor, který nám říká, že čísla chceme sečíst (provést operaci sečítání) poznámka cokoliv se objeví v kódu mezi znaky /* a */, tak je poznámka a bude před překladem odstraněno z kódu. Pokud chceme zapoznámkovat pouze jeden řádek, použijeme // Příklady: /* Vše co napsáno zde je poznámka a nebude překládáno */ // Toto je poznámka, která může popsat funkci nějakého úseku kódu 6.2 Výrazy a operátory Výraz je něco co nabývá nějaké hodnoty, např.: je výraz, který nabývá hodnoty 8. 5 > 3 je výraz nabývající hodnoty true neboli pravda, x <= 10 je výraz který je pravdivý, pokud proměnná x(kterou musíme mít deklarovanou) menší nebo rovna číslu Aritmetické operátory + sčítání - odčítaní * násobení / dělení 12

14 6.2.2 Operátory inkrementace a dekrementace pokud chceme zvýšit hodnotu proměnné o jedničku, napíšeme ++název_proměnné; pokud chceme snížit hodnotu proměnné o jedničku, napíšeme --název_proměnné; Příklad: uint8_t i = 5; // Vytvoření proměnné i a dosazení hodnoty 5 do ní. uint8_t j = 42; // Vytvoření proměnné j a dosazení hodnoty 42 do ní. ++i; // Hodnota i se zvýší o jedničku na číslo 6. --j; // Hodnota j se sníží o jedničku na číslo Logické výrazy a operátory Přehled logických operátorů: == porovnání - rovnost!= porovnání - nerovnost && logický součin logický součet! negace < menší než <= menší nebo rovno > větší než >= větší nebo rovno Logický výraz může nabývat pouze dvou hodnot pravda (true) a nepravda (false). Obvykle je nepravda reprezentovaná nulou a pravda každým nenulovým číslem. Logické výrazy se používají v podmínkách (viz např ). Logické operace se používají při vyhodnocování logických výrazů. Příklady: a == b výraz je pravdivý, pokud se a rovná b a!= b výraz je pravdivý, pokud se a nerovná b lze to napsat i konkrétněji, např.: a!= 5, výraz je pravda pokud se a nerovná 5, pokud se rovná výsledkem výrazu je nepravda(false) b > c výraz je pravdivý, pokud je b větší než c b >= d výraz je pravdivý, pokud je b větší nebo rovný d!(a > b) výraz v závorce je pravdivý, pokud je a větší než b, ale pak je negováno(z pravdy se stává nepravda a naopak ), tj. celý výraz je nepravdivý, pokud je a větší než b, pokud je a menší nebo rovno, tak je výraz pravdivý.!(a == b) výraz (a == b) je negován znaménkem!, to znamená, že výraz je pravdivý, pokud se výraz a nerovná výrazu b, v podstatě se to dá napsat i takto: a!= b Pozor: negace výrazu (a > b), tj.!(a > b) není to samé jako výraz (a < b), 13

15 ale správně je to (a <= b) 6 Logický součin && se používá, pokud budeme potřebovat spojit dva nebo více výrazů dohromady, např.: (a > b)&&(c == d), výsledkem tohoto výrazu bude logický součin výrazů v závorkách, pro logický součin platí, že je pravda pokud oba výrazy jsou pravdivé, jinak je výsledek nepravda, tj. zde bude pravda pouze pokud bude a větší než b a zároveň bude platit, že c se rovná d. Logický součin použijeme, pokud musí všechny výryzy být pravda. Logický součet je pravdivý, pokud alespoň jeden výraz je pravdivý. Např.: (e <= f) (g!= 3) výraz bude pravda, pokud bude platit, že e je menší nebo roven f, nebo bude platit, že g se nerovná 3, anebo klidně budou platit oba výrazy. 6.3 Příkazy Přiřazovací příkaz Použijeme, pokud chceme, aby se do proměnné uložila nějaká data. Syntaxe: datový_typ název_proměnné; syntaxe vkládání: název_proměnné = hodnota_která_se_má_uložit; Data do proměnné můžeme vložit rovnou při vytváření proměnných: datový_typ název_proměnné = hodnota; Příklad: uint8_t b = 5; Vytvoří se proměnná pojmenovaná b (která je v rozsahu od 0 do 255) a uloží se do ní číslo 5. int16_t B; Vytvoří se proměnná B. B není to samé jako b, protože jazyk C rozlišuje VELKÁ a malá písmena. B = 1024; Do proměnné B se uloží hodnota 1024; Blok příkazů Pokud chceme někam dát více příkazů, ale můžeme tam dát pouze jeden příkaz, tak je dáme do složených závorek Příklad: PŘÍKAZ1; PŘÍKAZ2; PŘÍKAZ3; Podmiňovací příkaz (if) Použijeme, pokud chceme, aby se program mohl rozhodnout na základě nějaké podmínky. 6 Platí zde určité zákonitosti viz De Morganovy zákony 14

16 syntaxe: if(podmínka) PŘÍKAZ1; else PŘÍKAZ2; Pokud platí PODMÍNKA v kulaté závorce, vykoná se PŘÍKAZ1, pokud neplatí, vykoná se PŘÍKAZ2. Za if nebo else může být pouze jeden příkaz, pokud jich tam chceme dát více, použijeme blok. Větev else je nepovinná. Příklad: if(a > 5) // Pokud platí, že //proměnná a je větší něž 5, tak se b = a; // do proměnné b uloží hodnota, která je v proměnné a c = 2; // do proměnné c se uloží číslo 2. // Pokud podmínka neplatí, tak se nevykoná nic. podmínka může být výraz např.: a > 5 // podmínka bude platit, // pokud proměnná a je větší než 5 podmíněné příkazy lze vnořovat - v bloku příkazů může být další if Příklad: if(podmínka1) PŘÍKAZ1; if(podmínka2) PŘÍKAZ2; PŘÍKAZ3; else PŘÍKAZ4; Pokud platí PODMÍNKA1 tak se vykoná PŘÍKAZ1, pak se zkontroluje PODMÍNKA2, pokud platí, tak se vykoná PŘÍKAZ2, pokud ne, program pokračuje dál a vykoná PŘÍKAZ3. V případě, že neplatí ani PODMÍNKA1, tak se blok příkazů přeskočí a vykoná se blok příkazů za else, tj. PŘÍKAZ4. Je tu možnost také do větve else napsat daší if else, vypadá to takto: if(podmínka1) PRÍKAZ1; 15

17 else if(podmínka2) PRÍKAZ2; else PRÍKAZ3; Pokud platí PODMÍNKA1, tak se vykoná PŘÍKAZ1, pokud ne, tak se zkontroluje PODMÍNKA2, pokud platí tak se vykoná PŘÍKAZ2, pokud neplatí, tak se vykoná PŘÍKAZ3. Výše zapsaný kód sice bude fungovat, ale není přehledný, a proto z důvodu lepší orientace v kódu zvolíme tento zápis: if(podmínka1) PRÍKAZ1; else if(podmínka2) PRÍKAZ2; else PRÍKAZ3; Příkaz několikanásobného větvení (switch) Pokud by takto zapsaných podmínek bylo moc a vztahovali by se k jedné řídící proměnné lze použít příkaz několikanásobného větvění neboli switch. Tak například místo zápisu: if(a == 1) PŘÍKAZ1; else if(a == 2) PŘÍKAZ2; else if(a == 3) PŘÍKAZ3; 16

18 else if(a == 4) PŘÍKAZ4; else PŘÍKAZ5; Lze napsat: switch(a) case 1: PŘÍKAZ1; break; case 2: PŘÍKAZ2; break; case 3: PŘÍKAZ3; break; case 4: PŘÍKAZ4; break; default: PŘÍKAZ5; break; Čím se to celé zjednodušuje Cyklus for (cyklus řízený proměnou ) Tento cyklu použijeme, pokud předem známe kolikrát se má opakovat určitá operace Syntaxe: for(řidící_proměnná; podmínka; zvýšení_nebo_snížení_hodnoty_proměnné ) PŘÍKAZ1; PŘÍKAZ2; Příklad: for(uint8_t i=0; i<4; i++) rozsvit_ledku(); 17

19 pockej_sekundu(); zhasni ledku(); Co tento kód udělá? Dejme tomu, že máme už předem vytvořené funkce rozsvit_ledku(), atd... Potom cyklus udělá následující: vytvoří proměnnou i datového typu uint8_t (celá čísla od 0 do 255), uloží do ní číslo 0. Potom zkontroluje podmínku, zda je proměnná i menší než 4, pak se provedou příkazy či funkce v těle cyklu, tj. rozsvítí se LED-dioda, bude svítit jednu sekundu, a pak zhasne. Pak se provede příkaz i++, ten zvýší hodnotu proměnné o jednu, tj. na číslo 1. Potom se kontroluje znovu podmínka, zdali je proměnná i (která má teď hodnotu 1) menší než 4, atd... Celkem se tělo cyklu vykoná čtyřikrát. Cyklus for lze použít i bez proměnné, podmínky a zvýšení hodnoty, potom bude probíhat donekonečna. Příklad: for(;;) rozsvit_ledku(); pockej_sekundu(); zhasni ledku(); Tento cyklus bude dělat to samé, co předchozí, s tím rozdílem, že to bude dělat donekonečna a nebude se ptát na podmínku. Použití v programu pro robota: Nekonečný cyklus, ve kterém se kontrolují podmínky, zda je na čáře, zda je před ním soupeř, zda má udělat to či ono Cyklus while (cyklus s podmínkou na začátku ) Použijeme, pokud nebudeme vědět kolikrát mají proběhnout příkazy a funkce v těle cyklu. Syntaxe: while(podmínka) PŘÍKAZ1;... Příklad: while(!je_tlacitko_stiskle()) ujed_1_cm(); Tento cyklus bude stát, dokud nezmáčkneme tlačítko. Vyžaduje mít předem naprogramovanou funkci ujed_1_cm() a je_tlacitko_stiskle(). 18

20 6.4 Funkce a procedury Pokud se nám v zdrojovém kódu opakují dokola stejné příkazy, můžeme vytvořit funkce nebo procedury, které potom voláme a které nám usnadní kód. syntaxe: datový_typ_který_funkce_vrací název_funkce(datový_typ_parametru1 parametr1, datový_typ_parametru2 parametr2) // Parametry jsou nepovinné PŘÍKAZ1; // Nepovinné příkazy PŘÍKAZ2; return HODNOTA_KTEROU_FUNKCE_VRACI; // Za return se napíše výraz, který funkce vrací. Příklad: // Funkce na sčítání dvou čísel, každé od 0 do 255. uint16_t umocni(uint8_t zakl, uint8_t exp) uint16_t vys = 1; if(exp > 0) for(uint8_t i = 0; i < exp; i++) vys = vys * zakl; return vys; pokud někde v programu použiji funkci secti(10, 2), tak výsledkem bude, jako bych napsal 10*10, tj Příklad: c = umocni(a, b); // Do proměnné c se uloží b-tá mocnina čísla a. procedura je vlastně funkce, jen s tím rozdílem, že procedura má datový typ void a nemá return (tj. nevrací žádnou hodnotu). Příklad: void rozsvitledku() DDRB = (1<<PB0); /* Co dělá tento příkaz nemusíte zatím řešit, pak se k tomu dostaneme. */ Pokud někde v programu napíšu rozsvitledku(), tak se rozsvítí LEDka na robotovi. tělo funkce main všechny příkazy, které jsou mezi složenými závorkami, se po zahajení programu postupně vykonají 19

21 6.5 Knihovny Vlastní knihovny Z funkcí a procedur se mohou vytvářet soubory pro usnadnění práce. těmto souborům se říká knihovny. Soubory mají koncovku.h Příklad: avr/io.h moje_knihovna.h Vlastní knihovnu poté mohu vložit direktivou #include Příklad: #include "moje_knihovna.h" Použité knihovny Pro práci s mikrokontroléry budeme potřebovat některé už vytvořené knihovny Příklad: avr/io.h pro základní vstup a výstup avr/interrupt.h pro práci s přerušením stdint.h zde je definovány datové typy (viz 6.1) 7 Bity a bajty 7.1 Desítková soustava a dvojková soustava V počítači jsou všechna data uložena pouze v podobě jedniček a nul. A proto se nám bude hodit, když se budeme aspoň trochu orientovat v převodech mezi dvojkovou a desítkovou soustavou Desítková soustava V desítkové soustavě je základem číslo deset. Příklad: číslo 156 si můžeme rozložit jako 1*10^2 + 5*10^1 + 6*10^0, přitom 10^0=1, 10^1=10, 10^2=10*10=100, 10^3=10*10*10=1000 atd..., takže naše číslo potom vypadá takto: 1* *10 + 6*1 = Dvojková soustava Ve dvojkové soustavě je základem číslo dva. Příklad: číslo rozložíme na 1*2^7 + 1*2^6 + 0*2^5 + 0*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0, přitom 2^0=1, 2^1=2, 2^2=2*2=4, 2^3=2*2*2=8, 2^4=2*2*2*2=16, 2^5=32, atd..., proto naše číslo má hodnotu: 1* *64 + 0*32 + 0*16 + 1*8 + 0*4 + 1*2 + 0*1 = Převod z desítkové soustavy do dvojkové Jak na to, když chceme převádět číslo z desítkové soustavy do dvojkové? Například převedeme číslo 97. Nejprve je potřeba, abychom znali násobky čísla dva: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, atd... 20

22 Napíšeme jedničku. 1 Najdeme nejbližší nižší násobek dvou k našemu číslu, v našem případě je nejblíže 64. Odečteme si od 97 číslo 64, 97-64=33. Odečítali jsme číslo 64, další v pořadí je číslo 32, je 32 obsaženo v 33? Ano, proto napíšeme další jedničku. 11 Dále 33-32=1, další číslo je 16, je 16 obsaženo v 1? Ne, proto napíšeme nulu. 110 Další číslo je 8, také není obsaženo v 1, takže napíšeme nulu Čísla 4 a 2 také nejsou obsažena v čísle 1, proto napíšeme nuly A nakonec, je číslo jedna obsaženo v čísle jedna? Ano, napíšeme jedničku. Náš binární zápis čísla 97 vypadá takto: Čísla v binární soustavě by měla mít počet cifer rovno 8, 16, 32, podle toho s kolika bitovými čísly počítáme. V našem případě musíme doplnit jednu nulu. Pokud bychom počítali s 16 bitovými čísly doplníme o 8 nul více. Nuly doplňujeme zleva. Zapamatujeme si to snadno v desítkové soustavě se číslo 128 také nezmění pokud před něj dáme nuly, Nuly navíc nebudeme psát v desítkové soustavě, ale v dvojkové nám to pomůže se lépe orientovat. Takže to bude vypadat: No a to ještě není všechno. Aby mělo číslo správný tvar musí mít před číslem uvedeno 0b(nula a malé B), tím říkáme v jazyce C, že číslo je v (binární) dvojkové soustavě. Pozor: Čísla 101 a 0b101 nejsou to samé!je to jednoduché, pokud 0b neuvedeme bude překladač číslo brát jakože je v desítkové soustavě. Tj. 101 => číslo sto jedna, 0b101 => číslo pět. Další příklad: Převedeme číslo 237. Nejbližší nižší číslo je =109 je číslo 64 obsaženo v čísle 109? ANO, další jednička =45 je číslo 32 obsaženo v 45? ANO, jednička =13 je 16 obsaženo v čísle 13? NE, nula je číslo 8 obsaženo v 13? ANO, jednička =5 je 4 obsaženo v 5? ANO, jednička =1 je obsažena v 1? NE, nula je 1 obsažena v 1? ANO, jednička Binární zápis čísla 237 vypadá takto:

23 7.1.4 Bity a bajty Každá číslice ve dvojkové soustavě reprezentuje jeden bit (nabývá hodnot 0 nebo 1). Osm bitů dohromady tvoří bajt. Nejnižší bit v bajtu leží vpravo (tzv nultý bit), další je nalevo od něj (první bit), až do sedmého bitu, který je nejvíce vlevo Převod z dvojkové soustavy do desítkové Vezmeme si například binární číslo Očíslujeme si pozice zprava doleva od nuly, tj.: Pohybujeme se v dvojkové soustavě, tj. základ bude 2. Vezmeme nultou číslici a vynásobíme s ní číslo 2^0. Dostáváme 1*2^0 = 1. Dále první číslici vynásobíme číslem 2^1, tj. 1*2^1 = 2. Dále druhou číslici vynásobíme číslem 2^2, tj. 0*2^2 = 0. A to samé provedeme s číslicí na třetí pozici: 1*2^3 = 8. A nyní čísla sečteme = 11, takže binární číslo 1011 převedené do desítkové soustavy je 11. Příklad 2: Převeďte binární číslo do desítkové soustavy. 1*2^0 + 0*2^1 + 0*2^2 + 1*2^3 + 0*2^4 + 1*2^5 + 1*2^6 + 1*2^7 To je: = 233 Binární číslo převedeno do desítkové soustavy je 233. Příklad 3: Převeďte binární číslo *2^0 + 0*2^1 + 1*2^2 + 0*2^3 + 1*2^4 + 0*2^5 + 0*2^6 + 0*2^7, samozřejmě členy 2^x, které násobíme nulou budou nulové a tudíž je můžeme beztrestně vynechat, tj. 1*2^0 + 1*2^2 + 1*2^4 = = 21 Binární číslo má v desítkové soustavě hodnotu Bitové výrazy a práce s nimi Bitové operace se od logických operací (viz 6.2.3) liší tím, že se neaplikují na číslo jako celek, ale bit po bitu, viz níže. My budeme potřebovat následující bitové operace: bitový součet, bitový součin, bitovou negaci, bitový posun doleva Bitové operátory bitový součet & bitový součin ~ bitová negace ^ bitový exluzivní součet << bitový posuv doleva >> bitový posuv doprava 22

24 7.2.2 Bitový součet Platí, že 0 0=0, 0 1=1, 1 0=1, 1 1=1, sčítají se vždy pouze bity, které leží pod sebou. Zkrátka pokud je aspoň jeden bit jedna, výsledek je také jedna. Příklad: máme dvě binární čísla a a chceme je bitově sečíst. Když sečteme nulté bity zadaných čísel, dostamene 0 1=1. Pak provedeme bitový součet i pro první, druhé a další bity. Zapíšeme: (0b b ); Nebo pokud budeme mít čísla v proměnných: uint8_t a = 0b ; uint8_t b = 0b ; uint8_t c; c = (a b); Do proměnné c se zapíše výsledná hodnota první číslo druhé číslo výsledek po bitovém logickém součtu Výsledek: Bitový součin Platí, že 0&0=0, 0&1=0, 1&0=0, 1&1=1, tady platí, že výsledek je jedna, pokud oba bity jsou jedna. Příklad: bitový součin čísel a Zapíšeme: (0b & 0b ); Nebo pokud budeme mít čísla v proměnných: uint8_t c = 0b ; uint8_t d = 0b ; uint8_t e; e = (c&d); Výsledná hodnota se zapíše do proměnné e první číslo druhé číslo výsledek bitového logického součinu Bitová negace Tam, kde byla jednička, bude nula, a kde byla nula, bude jednička. Příklad: znegujte číslo Zapíšeme: ~(0b ); Nebo pokud budeme mít číslo v proměnné: uint8_t a = 0b ; uint8_t b; b = ~a; 23

25 Do proměnné b se zapíše výsledná hodnota číslo, které bude logicky znegováno výsledek Bitový exklusivní součet Výsledkem exklusivního součinu je pravda, pokud se hodnoty liší, tj. nejsou stejné. Takže platí 0^0=0, 0^1=1, 1^0=1, 1^1=0 Zapíšeme: (0b ^ 0b ); Nebo pokud budeme mít čísla v proměnných: uint8_t c = 0b ; uint8_t d = 0b ; uint8_t e; e = (c^d); Výsledná hodnota se zapíše do proměnné e první číslo druhé číslo výsledek bitového exklusivního součtu Bitový posun doleva Vezmeme celé osmibitové číslo a posuneme ho o určitý počet míst doleva. Přitom čísla vlevo zmizí a na na uprázdněné místo vpravo přijdou vždy nuly. Zapíšeme: (0b << 3); Nebo pokud budeme mít číslo v proměnné: uint8_t c = 0b ; uint8_t d; d = (c << 3); Do proměnné d se přiřadí výsledek operace. Pokud například už nebudeme potřebovat původní hodnotu proměnné c, lze to napsat i takto: uint8_t c = 0b ; c = (c << 3); Hodnota v proměnné c se nejprve posune o tři pozice a pak se výsledná pozice zapíše na stejnou pozici v paměti mikrokontroléru. Příklad: proveďte bitový posun doleva o tři s číslem posun o jedno doleva znovu o jedno doleva (celkem o dvě místa) celkový posun o tři bity doleva 24

26 7.2.7 Bitový posun doprava Bitový posun doprava je podobný jako operace bitový posun doleva, liší se jen ve směru posunu, tj. posouvá se na opačnou stranu. Příklad 1: Proveďte bitový posun doprava o tři pozice s binárním číslem Zapíšeme: (0b >> 3); Výsledkem bude toto: posun o jednu pozici doprava posun o druhou pozici posun o třetí pozici Příklad 2: Proveďte bitový posun o dvě pozice doprava a potom o tři doleva s binárním číslem Zapíšeme: ((0b >> 2) << 3); Výsledkem bude toto: posun o dvě pozice doprava posun o tři pozice doleva, toto je výsledek. Příklad 3: Ale co když zadám číslo do proměnné v desítkové soustavě, například 189 a provedu bitový posun o dvě pozice doprava? Co dostanu? Dostanu snad 1? Ne, i když jsme číslo zadali v desítkové soustavě, v mikrokontroléru je stejně uloženo jako jedničky a nuly, takže číslo musíme nejprve převést do dvojkové soustavy. 189 = 0b A teď posun o dvě pozice doprava: a to je číslo 47. Takže 47 je výsledek bitového posunu čísla 189 o dvě pozice doprava. Zapíšeme takto: uint8_t a = 189; uint8_t b; b = (a >> 2); No a výsledek(tj. číslo 47 ) se uloží do proměnné b. 8 Periferie 8.1 Co jsou to periferie Periferie je nějaké rozšíření funkce jednotlivých pinů procesoru. Periferie rozšiřují použití mikrokontrolérů téměř na jakékoliv použití od blikání LED, přes různé časovače, digitální hodiny, teploměry až k menší autonomním robotům. 8.2 Jaké periferie Atmega16 má? Atmega16 má dva 8-bitové časovače/čítače, jeden 16-bitový časovač/čítač, osm kanálů 10-bitového A/D (analogově/digitálního) převodníku, analogový komparátor, tři druhy komunikací (TWI, SPI, USART), které lze použít ke komunikaci mikrokontroléru s okolím. 25

27 8.3 Obecné použití periferií Vstupně/výstupní pin lze použít k rozsvěcení LED (v sérii s LED musí být rezistor, viz ). Lze zjišťovat, zda je nebo není tlačítko zmáčknuté. Časovače/čítače mohou být zdrojem času pro určité aplikace, ale nejužitečnější je použití č/č jako generátor obdélníkového signálu, která bude sloužit jako pwm k řízení motoru. Kdykoliv potřebujeme získat nějaký rozumný údaj z analogových senzorů, to jest ne pouze 5 V nebo 0 V, ale cokoliv co se nachází mezi např.: 2,14 V. Použití například údaj z potenciometru nebo senzoru(fototranzistor, elektronický kompas či akcelerometr). Komunikaci mikrokontroléru s jiným mikrokontrolérem budeme řešit přes USART, TWI nebo SPI. 9 Práce s ATMega16 v C 9.1 Piny Pin je nožička procesoru. Může být nastavený jako vstupní nebo jako výstupní. Pokud je pin nastavený jako vstupní, umí určit, zda na něm je napětí odpovídající logické jedničce (5 V) nebo logické nule (0 V). Pokud je pin nastavený jako výstupní, umí se nastavit na logickou jedničku nebo logickou nulu. Další funkce pinů jsou popsány níže. 9.2 Přehled pinů Na druhé straně nahoře v [1] najdete podobu mikrokontroléru a popis jeho pinů. Pro nás jsou nejdůležitější tyto piny (čísla v závorce jsou čísla pinů podle obrázku): VCC(10) napájení digitální části mikrokontroléru 5 V GND(11) zem digitální části AVCC(30) napájení analogové části(a/d převodník na portu A) GND(31) zem pro analogovou část AREF(32) referenční napětí pro A/D převodník RESET(9) přivedením logické nuly (0 V) po krátkou dobu se procesor resetuje a program začne běžet od začátku XTAL1(13) a XTAL2(12) piny pro připojení krystalu Pak jsou tu piny jako PB0 až PB7, je to označení základní vstupně výstupního pinu druhé písmeno nám říká z jakého je portu a číslo pořadí pinu (pozor:začíná od nuly). Každý takto označený pin lze nastavit na logickou jedničku (5V) nebo logickou nulu (0V), nebo lze například číst, zda je na pinu logická jednička či nula (testování stisklého tlačítka). V závorkách je uvedena alternativní funkce pinu. Nás zajímají tyto: ADC0(40) až ADC7(33) A/D(Analogově/digitální) převodník, pro získání hodnot z nějakého analogového senzoru (např.: teplotní čidlo, IR senzor, čtení napětí na bateriích přes odporový dělič). 26

28 OC0(4), OC1A(19), OC1B(18), OC2(21) výstupy č/č(časovače/čítače), které lze použít ke generování PWM signálu pro řízení motorů, ale ne přímo z mikrokontroléru, ale pouze pomocí driveru. MOSI(6), MISO(7), SCK(8), RESET(9), GND(11) piny používané pro programování mikrokontroléru. INT0(16), INT1(17), INT2(3) vnější přerušení, například pro detekci stisknutí tlačítka Připojení na programátor Programátor má některé piny pojmenovány odlišně: VPP(13V), VDD, GND, DATA/MOSI, CLOCK, MISO VPP programátoru připojíme na RESET mikrokontroléru, VDD připojíme na VCC, GND na GND, DATA/MOSI na MOSI, CLOCK na SCK, MISO na MISO. 9.3 Práce s registry Při práci s mikrokontrolérem budeme pracovat s menšími úseky paměti, tzv. osmibitovými registry. Registr se chová jako proměnná můžeme z něj číst údaj nebo ho tam vkládat. Tím řídíme chod mikrokontroléru. Registry jsou pojmenovány velkými písmeny, například: DDRD, PORTD, PIND, OCR1, atd Registry pro řízení pinů Piny jsou označeny PA0 až PA7, PB0 až PB7, atd... Písmeno za P říká, z jakého portu je pin, číslo udává pořadí pinu (čísluje se od nuly). Např.: PD5 pátý pin portu D, PA4 čtvrtý pin portu A, PC0 - nultý pin portu C. 9.5 Základní vstup a výstup Díky registrům DDRA, DDRB, DDRC a DDRD mikrokontroléru řekneme, který pin má být vstupní či výstupní. Na začátku jsou všechny bity těchto registrů nastaveny na nulu, tj. všechny nožičky mikrokontroléru jsou vstupní. Piny jsou rozděleny do portů A, B, C a D, každý port má maximálně osm pinů. Každému pinu je přiřazen jeden bit v registru. Každý pin je značen PXn, kde X je port, kterému pin náleží(a,b,c,d), a n je číslo pinu(od 0 do 7). Například PB5 je pátý pin portu B, kterému odpovídá pátý bit v registru DDRB, tj. bit označený jako X v čísle 00X Totéž trochu jinak: Vstupně/výstupní piny ( [1] str.48) Pro práci s vstupně/výstupními piny jsou k dispozici tři registry DDRX, PORTX, PINX, kde X je označení portu (A,B,C,D). DDRX tímto registrem říkáme, zda je pin v portu X vstupní (0) či výstupní(1). PORTX pokud je pin vstupní, tak logickou nulou vypínáme pull-up (zdvihávací) rezistor a logickou jedničkou zapínáme pull-up 7. PORTX pokud je pin výstupní, 7 Pull-up rezistor je rezistor, který zajistí, že na pinu bude logická jednička(5 V ), je to rezistor, kde jedna nožička je na VCC a druhá na pinu. 27

29 tak logickou nulou nastavíme na pinu logickou nulu a logickou jedničkou jedničku. PINX tento registr slouží pouze a jen pro čtení, a udává aktuální hodnotu na portu X 9.6 Nastavování bitu zapsání jedničky Například: DDRB = DDRB (1<<PB5); // Tento příkaz nastaví pátý bit v~registru DDRB. Co jednotlivé znaky v příkaze znamenají? Výraz v závorce (1<<PB5) udělá bitový posuv čísla 1 o PB5 míst doleva. PB5 je symbolická konstanta, která má hodnotu 5, místo PB5 lze použít jen číslo 5. Takže (1<<5) je vlastně posunutí čísla o pět míst doleva, výsledek Znak svislé čáry je operátor pro bitový součet. DDRB je registr pro určení vstupu a výstupu pro port B. Takže příkaz DDRB = DDRB (1<<5); udělá to, že do registru DDRB uloží hodnotu vzniklou bitovým součtem z původní hodnoty registru DDRB a čísla Takto postupujeme, protože neznáme hodnoty v registru DDRB a chceme nastavit jen pátý bit a ostatní chceme nechat nezměněny. Pokud bychom chtěli nastavit jen pátý bit nehledě na ostatní, použijeme příkaz: DDRB = 0b ; // 0b - říká překladači, že se jedná o binární číslo Co by se stalo, kdyby v registru už nějaké hodnoty byly nastaveny a my bychom napsali pouze DDRB = 0b ;? // předchozí hodnota, kterou neznáme, ale chceme ji tam mít // výsledná hodnota, která se tam dosadí // výsledek - krom jednoho bitu se všechny další sesadily Při použití příkazu DDRB = DDRB (1<<5); to bude vypadat takto: // předchozí hodnota // hodnota, která se má nastavit // bitový součet // nastavili jsme pátý bit a ostatní jsme ponechali Příkaz DDRB = DDRB (1<<5); lze zkrátit na DDRB = (1<<5);. 28

30 9.7 Sesazení bitu zapsání nuly Ze stejného důvodu jako při nastavování bitu použijeme sice složitější zápis, ale bezchybný. Příklad: chceme sesadit pátý bit a ostatní chceme nechat takové, jaké jsou. DDRB = DDRB & ~(1<<5); Vlnka (~) před výrazem v závorce je bitová negace, ampérsand (&) je znak bitového součinu. Nejprve se vyhodnotí výraz v závorce: // výraz v~závorce // negace výrazu v závorce // s~výsledkem negace se provede logický součin //s~původní hodnotou v~registru // příklad původní hodnoty // výsledek negace // logický součin // výsledek se oproti původní hodnotě liší jen tím, // že je sesazen pátý bit Příkaz na sesazení bitu lze také zkrátit na DDRB &= ~(1<<5);. 9.8 Příklad pro vstup a výstup Příklad: Napište program, kde nastavíte piny PB0, PB1, PB3, sesadíte piny PC5, PC6, vytvoříte proměnou d a uložíte do ní stav portu D. Řešení: #include <avr/io.h> int main() DDRB = (1<<PB0) (1<<PB1) (1<<PB3); DDRC &= ~((1<<PC5) (1<<PC6)); uint8_t d = PIND; 9.9 Registry časovačů/čítačů Pro řízení motorů nám postačí osmibitový časovač/čítače (č/č0, č/č2). Signál pro servo získáme z kanálů šestnáctibitového č/č1. V registrech jsou bity pojmenovány např.: pátý bit v registru COM01. Můžeme napsat (1<<5), ale raději kvůli přehlednosti budeme psát (1<<COM01). č/č0(datasheet str.68): TCCR0 pro nastavení časovače na PWM TCNT0 aktuální hodnota č/č OCR0 hodnota v porovnávacím registru 29

31 TIMSK zde můžeme nastavit přerušení po dosažení shody registru OCR0 s registrem TCNT0 nastavením bitu OCIE0, nebo nastavit přerušení při přetečení č/č nastavením bitu TOIE0. TIFR pokud nastala shoda registru OCR0 s registrem TCNT0 nastaví se bit OCF0, pokud přeteče č/č nastaví se bit TOV0, bity se nulují samy po vstupu do obslužné rutiny přerušení, nebo pokud nastavíme na jedničku bit TOV PWM řízení motorů Pro nastavení PWM se podíváme do tabulky na straně 80: Zvolíme mód FastPWM pro tento mód musíme nastavit bity WGM01 a WGM00 v registru TCCR0, nyní se podíváme na tabulku 40 na straně 81 a budeme chtít použít mód, kdy se při shodě registrů ORC0 a TCNT0 nastaví na pinu OC0 logická nula a při přetečení se nastaví logická jednička musíme nastavit bit COM01 v registru TCCR0. Teď se podíváme na tabulku 42. V tabulce vidíme různé předděličky CO TO JE, které můžeme použít pro generování PWM. Po dosazení do vzorce na straně 75, kde N je předdělička. Nastavení předděličky bychom měli volit tak, aby frekvence podle vzorce vyšla taková, kterou lidské ucho neslyší (nad 16kHz), ale zase nesmí být větší, něž dokáže zvládnout náš driver CO TO JE(najdeme v datasheetu). Já volil předěličku 64 - výsledná frekvence je kolem 1kHz NEODPOVÍDÁ PŘEDCHOZÍ PODMÍNCE: TCCR0 = (1<<WGM01) (1<<WGM00) (COM01) (1<<CS01) (1<<CS00); č/č2(datasheet str.115): K ovládání č/č2 slouží registry TCCR2, TCNT2, OCR2, TIMSK, TIFR a navíc registr ASSR, ten by nás zajímal, pokud bychom č/č2 asynchronní(tj. nepoužíval by frekvenci krystalu na pinech XTAL1 a XTAL2, ale krystal na pinech TOSC1 a TOSC2). Pro stejné nastavení č/č2 se podíváme na odpovídající tabulky:50(str 126), 52(str 127), 54(str 128) Příkaz bude vypadat takto: TCCR2 = (1<<WGM21) (1<<WGM20) (1<<COM21) (1<<CS22); 9.11 Řízení serva č/č1(datasheet str.86): S č/č1 to bude trochu složitější. Č/č1 má více možných použití, také se dá použít na pwm pro motory, ale my ho použijeme pro řízení servomotoru (serva). Jak se řídí pohyb serva? Servo se řídí logickým signálem (jedničkou) po dobu od 1 ms do 2 ms (často i od 0,5 ms do 2,5 ms), a celková perioda je 20 ms. Podle toho, jak dlouho signál trvá, tak se servo natočí. Tj. pokud budeme chtít servo maximálně natočit na jednu stranu, nastavíme pin, který slouží jako řídící signál pro servo, na logickou jedničku po dobu 1 ms a pak 19 ms logickou nulu a pak zase logickou jedničku, logickou nulu, atd... Pokud budeme chtít servo posunout do druhé krajní polohy, necháme logickou jedničku po dobu 2 ms a logickou nulu po dobu 18 ms. Pokud budeme chtít střední polohu, tak jedničku nastavíme na 1,5 ms a nulu na 18,5 ms. Jestliže budeme potřebovat jiný úhel natočení, nastavíme logickou jedničku na odpovídající dobu. Nastavení č/č1 pro řízení až dvou serv: Registrů, které ovládájí č/č1 je více než u předchozích č/č: 30

LED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: 4.10.2011 8:01:48

LED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: 4.10.2011 8:01:48 LED_007.c Strana: 1/5 Nyní již umíme používat příkazy k větvení programu (podmínky) "if" a "switch". Umíme také rozložit program na jednoduché funkce a používat cyklus "for". Co se týče cyklů, zbývá nám

Více

ROBOTIKA - ZÁKLADY. Sestaveno dne: verze 0.2. Rudolf Hlaváček

ROBOTIKA - ZÁKLADY. Sestaveno dne: verze 0.2. Rudolf Hlaváček ROBOTIKA - ZÁKLADY Sestaveno dne: 24.10.2011 verze 0.2 Rudolf Hlaváček Obsah 1 Úvod.................................. 4 1.1 Orientace v textu........................... 4 1.2 Stručný obsah kapitol.........................

Více

Laboratorní zdroj - 6. část

Laboratorní zdroj - 6. část Laboratorní zdroj - 6. část Publikované: 20.05.2016, Kategória: Silové časti www.svetelektro.com V tomto článku popíšu způsob, jak dojít k rovnicím (regresní funkce), které budou přepočítávat milivolty

Více

Střední odborná škola a Střední odborné učiliště, Dubno Ing. Miroslav Krýdl Tematická oblast ELEKTRONIKA

Střední odborná škola a Střední odborné učiliště, Dubno Ing. Miroslav Krýdl Tematická oblast ELEKTRONIKA Číslo projektu Číslo materiálu CZ.1.07/1.5.00/34.0581 VY_32_INOVACE_ENI_2.MA_17_Číslicový obvod Název školy Střední odborná škola a Střední odborné učiliště, Dubno Autor Ing. Miroslav Krýdl Tematická oblast

Více

Registrační teploměr

Registrační teploměr Popis zapojení: Registrační teploměr ukládá aktuální teplotu do paměti EEPROM v intervalu jedné hodiny. Zařízení je vybaveno zdrojem reálného času (RTC), který zároveň probouzí mikroprocesor ze stavu spánku.

Více

PK Design. MB-ATmega16/32 v2.0. Uživatelský manuál. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 (21.12.

PK Design. MB-ATmega16/32 v2.0. Uživatelský manuál. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 (21.12. MB-ATmega16/32 v2.0 Základová deska modulárního vývojového systému MVS Uživatelský manuál Verze dokumentu 1.0 (21.12.2004) Obsah 1 Upozornění... 3 2 Úvod... 4 2.1 Vlastnosti základové desky...4 2.2 Vlastnosti

Více

1 Podrobná specifikace Yunifly Datasheet

1 Podrobná specifikace Yunifly Datasheet 1 Podrobná specifikace Yunifly Datasheet OBRAZEK fotky Yunifly obe desky zvlast + dohromady + top view - merge to one 1.1 Hmotnost a rozměry Elektronika Yunifly je složena ze dvou samostatných částí, které

Více

Úvod do mobilní robotiky AIL028

Úvod do mobilní robotiky AIL028 md at robotika.cz http://robotika.cz/guide/umor07/cs 11. října 2007 1 Definice Historie Charakteristiky 2 MCU (microcontroller unit) ATmega8 Programování Blikání LEDkou 3 Kdo s kým Seriový port (UART)

Více

Univerzální jednočipový modul pro řízení krokových motorů

Univerzální jednočipový modul pro řízení krokových motorů Středoškolská odborná činnost 2005/2006 Obor 10 elektrotechnika, elektronika, telekomunikace a technická informatika Univerzální jednočipový modul pro řízení krokových motorů Autor: Jan Fíla SPŠ Trutnov,

Více

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti. Intervalové stromy Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme průběžně provádět tyto dvě operace: 1. Změna jednoho čísla v posloupnosti. 2. Zjištění součtu čísel

Více

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu } 5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu

Více

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín Kolekce ArrayList napsal Pajclín Tento článek jsem se rozhodl věnovat kolekci ArrayList, protože je to jedna z nejpoužívanějších. Tento článek není kompletním popisem třídy ArrayList, ale budu se snažit

Více

Kroužek elektroniky 2010-2011

Kroužek elektroniky 2010-2011 Dům dětí a mládeže Bílina Havířská 529/10 418 01 Bílina tel. 417 821 527 http://www.ddmbilina.cz e-mail: ddmbilina@seznam.cz Kroužek elektroniky 2010-2011 Dům dětí a mládeže Bílina 2010-2011 1 (pouze pro

Více

Úvod do mobilní robotiky NAIL028

Úvod do mobilní robotiky NAIL028 md at robotika.cz http://robotika.cz/guide/umor08/cs 6. října 2008 1 2 Kdo s kým Seriový port (UART) I2C CAN BUS Podpora jednočipu Jednočip... prostě jenom dráty, čti byte/bit, piš byte/bit moduly : podpora

Více

STŘEDOŠKOLSKÁ TECHNIKA 2013

STŘEDOŠKOLSKÁ TECHNIKA 2013 STŘEDOŠKOLSKÁ TECHNIKA 2013 Setkání a prezentace prací středoškolských studentů na ČVUT Návrh systému inteligentního domu Pavel Mikšík Brno 2013 Setkání a prezentace prací středoškolských studentů na ČVUT

Více

Stopař pro začátečníky

Stopař pro začátečníky Stopař pro začátečníky Miroslav Sámel Před nějakou dobou se na http://letsmakerobots.com/node/8396 objevilo zajímavé a jednoduché zapojení elektroniky sledovače čáry. Zejména začínající robotáři mají problémy

Více

Robot Lego Mindstorms NXT doplněný o kamerku a software v jazyce C#

Robot Lego Mindstorms NXT doplněný o kamerku a software v jazyce C# Stdoškolská technika 2011 Setkání a prezentace prací stdoškolských studentů na ČVUT Robot Lego Mindstorms NXT doplněný o kamerku a software v jazyce C# Matěj Kaňuk Cíl práce Stdní průmyslová škola elektrotechnická

Více

Cílem této kapitoly je seznámit s parametry a moduly stavebnice NXT. Obr. 1: Brick s moduly [3]

Cílem této kapitoly je seznámit s parametry a moduly stavebnice NXT. Obr. 1: Brick s moduly [3] 2. Popis robota NXT Cílem této kapitoly je seznámit s parametry a moduly stavebnice NXT. Klíčové pojmy: Stavebnice, moduly, CPU, firmware, komunikace, brick. Nejdůležitější součástkou stavebnice je kostka

Více

Tranzistor polopatě. Tranzistor jako spínač

Tranzistor polopatě. Tranzistor jako spínač Tranzistor polopatě Ing. Jiří Bezstarosti Úlohou toho článku není vysvětlit fyzikální činnost tranzistoru, ale spíše naznačit způsoby jeho použití. Zároveň se tento článek bude snažit vysvětlit problematiku

Více

Číslicový otáčkoměr TD 5.1 AS

Číslicový otáčkoměr TD 5.1 AS Číslicový otáčkoměr TD 5.1 AS Zjednodušená verze otáčkoměru řady TD 5.1 bez seriové komunikace, která obsahuje hlídání protáčení a s možností nastavení 4 mezí pro sepnutí relé. Určení - číslicový otáčkoměr

Více

Krokové motory. Klady a zápory

Krokové motory. Klady a zápory Krokové motory Především je třeba si uvědomit, že pokud mluvíme o krokovém motoru, tak většinou myslíme krokový pohon. Znamená to, že se skládá s el. komutátoru, výkonového spínacího a napájecího prvku,

Více

Klíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů.

Klíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů. Příkazy cyklu v C# Kapitola vysvětluje použití tří typů cyklů for, while a -while a plňuje jejich použití řau příkladů programů v jazyku C#. V jazyku C by šlo pouze k záměně funkcí pro vstup a výstup.

Více

XXXIII Celostátní olympiáda znalostí elektriky a elektroniky Krosno 25. března 2010 TEST PRO ELEKTRONICKOU SKUPINU

XXXIII Celostátní olympiáda znalostí elektriky a elektroniky Krosno 25. března 2010 TEST PRO ELEKTRONICKOU SKUPINU XXXIII elostátní olympiáda znalostí elektriky a elektroniky Krosno. března TEST PO ELEKTONIKO SKPIN Vysvětlení: Než odpovíš na otázku, pečlivě přečti níže uvedený text. Test obsahuje otázek. Odpovědi musejí

Více

3. D/A a A/D převodníky

3. D/A a A/D převodníky 3. D/A a A/D převodníky 3.1 D/A převodníky Digitálně/analogové (D/A) převodníky slouží k převodu číslicově vyjádřené hodnoty (např. v úrovních TTL) ve dvojkové soustavě na hodnotu nějaké analogové veličiny.

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Maturitní témata - PRT 4M

Maturitní témata - PRT 4M Maturitní témata - PRT 4M ústní zkouška profilové části Maturita - školní rok 2015/2016 1. Architektura mikrořadičů a PC 2. Popis mikrořadičů řady 51 3. Zobrazovací jednotky 4. Řadiče Atmel 5. Hradlová

Více

V 70. letech výzkumy četnosti výskytu instrukcí ukázaly, že programátoři a

V 70. letech výzkumy četnosti výskytu instrukcí ukázaly, že programátoři a 1 Počítače CISC a RISC V dnešní době se ustálilo dělení počítačů do dvou základních kategorií podle typu použitého procesoru: CISC - počítač se složitým souborem instrukcí (Complex Instruction Set Computer)

Více

Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97. Vybrané části Excelu. Ing. Petr Adamec

Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97. Vybrané části Excelu. Ing. Petr Adamec INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97 Vybrané části Excelu Ing. Petr Adamec Brno 2010 Cílem předmětu je seznámení se s programem Excel

Více

9. Robot pro Robotický den 2012

9. Robot pro Robotický den 2012 Předmět Jméno Ročník BROB Základy robotiky Pavel Svoboda, Luboš Tlustoš Datum 2. 6.5.2012 Kontroloval Hodnocení Dne Úloha 9. Robot pro Robotický den 2012 Zadání: Sestavte tým, jehož úkolem bude zúčastnit

Více

Návod na vkládání videogalerií na stránky klubu SIG-N.A.L. Třebíč

Návod na vkládání videogalerií na stránky klubu SIG-N.A.L. Třebíč Návod na vkládání videogalerií na stránky klubu SIG-N.A.L. Třebíč Část první: Čeho vlastně chceme dosáhnout. Chtěli bychom vytvořit videogalerii, která bude mít příznačný název a v hlavičce se zobrazí

Více

Datum tvorby 15.6.2012

Datum tvorby 15.6.2012 Číslo projektu CZ.1.07/1.5.00/34.0581 Číslo materiálu VY_32_INOVACE_ENI_2.MA_01_Lineární prvky el_obvodů Název školy Střední odborná škola a Střední odborné učiliště, Dubno Autor Ing. Miroslav Krýdl Tematická

Více

Jednoduchý digitální osciloskop pro PC Dušan Doležal Osciloskop je pøístroj, který by urèitì ráda vlastnila vìtšina elektronikù, ale pro mnoho amatérù je kvùli pomìrnì vysoké cenì nedostupný. Právì pro

Více

11. Odporový snímač teploty, měřicí systém a bezkontaktní teploměr

11. Odporový snímač teploty, měřicí systém a bezkontaktní teploměr Úvod: 11. Odporový snímač teploty, měřicí systém a bezkontaktní teploměr Odporové senzory teploty (například Pt100, Pt1000) použijeme pokud chceme měřit velmi přesně teplotu v rozmezí přibližně 00 až +

Více

4. Zpracování signálu ze snímačů

4. Zpracování signálu ze snímačů 4. Zpracování signálu ze snímačů Snímače technologických veličin, pasivní i aktivní, zpravidla potřebují převodník, který transformuje jejich výstupní signál na vhodnější formu pro další zpracování. Tak

Více

Jízda po čáře pro reklamní robot

Jízda po čáře pro reklamní robot Jízda po čáře pro reklamní robot Předmět: BROB Vypracoval: Michal Bílek ID:125369 Datum: 25.4.2012 Zadání: Implementujte modul do podvozku robotu, který umožňuje jízdu robotu po předem definované trase.

Více

Arduino digitální multimetr

Arduino digitální multimetr Arduino digitální multimetr aneb jak to dopadne, když softwarový architekt navrhuje hardware... Petr Stehlík www.pstehlik.cz Osnova Idea a motivace Návrh a plán Teorie a implementace Problémy a chyby USB

Více

Obecný úvod do autoelektroniky

Obecný úvod do autoelektroniky Obecný úvod do autoelektroniky Analogové a digitální signály Průběhy fyzikálních veličin jsou od přírody analogové. Jako analogový průběh (analogový signál) označujeme přitom takový, který mezi dvěma krajními

Více

Microchip. PICmicro Microcontrollers

Microchip. PICmicro Microcontrollers Microchip PICmicro Microcontrollers 8-bit 16-bit dspic Digital Signal Controllers Analog & Interface Products Serial EEPROMS Battery Management Radio Frequency Device KEELOQ Authentication Products Návrh

Více

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

Název projektu: EU peníze školám. Základní škola, Hradec Králové, M. Horákové 258

Název projektu: EU peníze školám. Základní škola, Hradec Králové, M. Horákové 258 Název projektu: EU peníze školám Registrační číslo projektu: CZ.1.07/1.4.00/21.2575 Základní škola, Hradec Králové, M. Horákové 258 Téma: Elektronika Název: VY_32_INOVACE_08_02B_28. Nářadí a pomůcky pro

Více

SNÍMAČE PRO MĚŘENÍ VZDÁLENOSTI A POSUVU

SNÍMAČE PRO MĚŘENÍ VZDÁLENOSTI A POSUVU SNÍMAČE PRO MĚŘENÍ VZDÁLENOSTI A POSUVU 7.1. Odporové snímače 7.2. Indukční snímače 7.3. Magnetostrikční snímače 7.4. Kapacitní snímače 7.5. Optické snímače 7.6. Číslicové snímače 7.1. ODPOROVÉ SNÍMAČE

Více

SVAZ SKAUTŮ A SKAUTEK ČESKÉ REPUBLIKY Skautské oddíly Brno Tuřany. zájmové soboty

SVAZ SKAUTŮ A SKAUTEK ČESKÉ REPUBLIKY Skautské oddíly Brno Tuřany. zájmové soboty SVAZ SKAUTŮ A SKAUTEK ČESKÉ REPUBLIKY Skautské oddíly Brno Tuřany zájmové soboty E L E K T R O N I K A Aktivní polovodičové součástky Polovodičová dioda. Elektrické proudové pole Elektrické napětí U, elektrický

Více

int => unsigned int => long => unsigned long => float => double => long double - tj. bude-li:

int => unsigned int => long => unsigned long => float => double => long double - tj. bude-li: 13.4.2010 Typová konverze - změna jednoho datového typu na jiný - známe dva základní implicitní ("sama od sebe") a explicitní (výslovně vyžádána programátorem) - C je málo přísné na typové kontroly = dokáže

Více

Servisní návod [CZ] VMS 08. Øídící jednotka pro pøesné mìøení spotøeby nápojù. Verze: 1.4 Datum: 19.2.2015 Vypracoval: Vilímek

Servisní návod [CZ] VMS 08. Øídící jednotka pro pøesné mìøení spotøeby nápojù. Verze: 1.4 Datum: 19.2.2015 Vypracoval: Vilímek Servisní návod [CZ] VMS 08 Øídící jednotka pro pøesné mìøení spotøeby nápojù Verze: 1.4 Datum: 19.2.2015 Vypracoval: Vilímek Pokyny pro správné a bezpeèné používání Než zaènete jednotku používat, pøeètìte

Více

DUM 01 téma: Obecné vlastnosti tabulkového editoru, rozsah, zápis do buňky, klávesové zkratky

DUM 01 téma: Obecné vlastnosti tabulkového editoru, rozsah, zápis do buňky, klávesové zkratky DUM 01 téma: Obecné vlastnosti tabulkového editoru, rozsah, zápis do buňky, klávesové zkratky ze sady: 02 tematický okruh sady: Tabulkový editor ze šablony: 07 KANCELÁŘSKÝ SOFTWARE určeno pro: 1-4. ročník

Více

Sirénka. Jan Perný 06.10.2008

Sirénka. Jan Perný 06.10.2008 Sirénka Jan Perný 06.0.2008 www.pernik.borec.cz Krátký popis Kdobynemělrádhluk...aabytohohlukunebylomálo,postavímesinějakou sirénku. Původní návrh byl určen pro skautíky, kteří si ji na schůzce stavěli.

Více

LOGIC. Stavebnice PROMOS Line 2. Technický manuál

LOGIC. Stavebnice PROMOS Line 2. Technický manuál ELSO, Jaselská 177 28000 KOLÍN, Z tel/fax +420-321-727753 http://www.elsaco.cz mail: elsaco@elsaco.cz Stavebnice PROMOS Line 2 LOGI Technický manuál 17. 04. 2014 2005 sdružení ELSO Účelová publikace ELSO

Více

Atmega801A modul procesoru Atmega8. Milan Horkel

Atmega801A modul procesoru Atmega8. Milan Horkel Atmega801A modul procesoru Atmega8 Milan Horkel Procesorový modul pro práci s procesorem ATMEL Atmega8 v pouzdru TQFP32. Modul obsahuje procesor a může být osazen krystalem standardní velikosti nebo hodinkovým

Více

Rozhraní mikrořadiče, SPI, IIC bus,..

Rozhraní mikrořadiče, SPI, IIC bus,.. Rozhraní mikrořadiče, SPI, IIC bus,.. Přednáška A3B38MMP 2013 kat. měření, ČVUT - FEL, Praha J. Fischer A3B38MMP, 2013, J.Fischer, kat. měření, ČVUT - FEL, Praha 1 Rozhraní SPI Rozhraní SPI ( Serial Peripheral

Více

Robot manipulátor ROB 1-3 øízený z PC Celý robot je ovládán modeláøskými servomechanismy (servy) Hitec HS- 322 - tedy tìmi nejlacinìjšími na souèasném trhu, a øízen osobním poèítaèem PC. Pro øízení robotu

Více

10. Editor databází dotazy a relace

10. Editor databází dotazy a relace 10. Editor databází dotazy a relace Dotazy Dotazy tvoří velkou samostatnou kapitolu Accessu, která je svým významem téměř stejně důležitá jako oblast návrhu a úpravy tabulek. Svým rozsahem je to ale oblast

Více

PK Design. MB-S2-150-PQ208 v1.4. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 (11. 6. 03)

PK Design. MB-S2-150-PQ208 v1.4. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 (11. 6. 03) MB-S2-150-PQ208 v1.4 Základová deska modulárního vývojového systému MVS Uživatelský manuál Verze dokumentu 1.0 (11. 6. 03) Obsah 1 Upozornění...3 2 Úvod...4 2.1 Vlastnosti základové desky...4 2.2 Vlastnosti

Více

5 Rekurze a zásobník. Rekurzivní volání metody

5 Rekurze a zásobník. Rekurzivní volání metody 5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení

Více

Zkouškové otázky z A7B31ELI

Zkouškové otázky z A7B31ELI Zkouškové otázky z A7B31ELI 1 V jakých jednotkách se vyjadřuje napětí - uveďte název a značku jednotky 2 V jakých jednotkách se vyjadřuje proud - uveďte název a značku jednotky 3 V jakých jednotkách se

Více

DM4.3 odmagnetovací modul

DM4.3 odmagnetovací modul DM4.3 odmagnetovací modul Význam kontrolek (LED ) na desce LD1 zelená LED svítí při magnetování. LD2 červená LED bliká při odmagnetování. LD3 modrá LED po celou dobu magnetování od okamžiku plného zamagnetování.

Více

Univerzita Pardubice. Fakulta Elektrotechniky a Informatiky. Monitoring rozhraní I2C Autor práce: Radek Šplíchal. Vedoucí práce: Ing.

Univerzita Pardubice. Fakulta Elektrotechniky a Informatiky. Monitoring rozhraní I2C Autor práce: Radek Šplíchal. Vedoucí práce: Ing. Univerzita Pardubice Fakulta Elektrotechniky a Informatiky Monitoring rozhraní I2C Autor práce: Radek Šplíchal Vedoucí práce: Ing. Martin Hájek Bakalářská práce 2009 University of Pardubice Faculty of

Více

Digitalizace signálu (obraz, zvuk)

Digitalizace signálu (obraz, zvuk) Digitalizace signálu (obraz, zvuk) Základem pro digitalizaci obrazu je převod světla na elektrické veličiny. K převodu světla na elektrické veličiny slouží např. čip CCD. Zkratka CCD znamená Charged Coupled

Více

TCL. Měřící modul proudu 4-20mA s výstupem RS485

TCL. Měřící modul proudu 4-20mA s výstupem RS485 Měřící modul proudu 4-20mA s výstupem POPIS Modul je určen pro měření proudu 4 až 20 ma (unifikovaný proudový signál), který bývá výstupní veličinou mnoha snímačů, čidel a dalších zařízení. Vstupní proud

Více

Detektor plynu. Srdcem zapojení je senzor plynu od firmy Figaro, která má v této oblasti dlouhou tradici.

Detektor plynu. Srdcem zapojení je senzor plynu od firmy Figaro, která má v této oblasti dlouhou tradici. Detektor plynu Hlavní motivací pro vznik této konstrukce byl můj 3letý syn, který má kladný vztah k domácím spotřebičům. Knoflíky na plynovém sporáku jsou obzvláště zajímavým cílem jeho výprav - plyn tak

Více

Laboratorní zdroj - 1. část

Laboratorní zdroj - 1. část Laboratorní zdroj - 1. část Publikované: 12.02.2016, Kategória: Silové časti www.svetelektro.com V sérii článků, se spolu s kolegou Michalem OK2HAZ, budeme věnovat popisu naší práce při stavbě laboratorního

Více

Maticové operace projekt č. 3

Maticové operace projekt č. 3 Dokumentace k projektu pro předměty IZP a IUS Maticové operace projekt č. 3 9.12.2007 Autor: Václav Uhlíř, xuhlir04@stud.fit.vutbr.cz Fakulta Informačních Technologii Vysoké Učení Technické v Brně Obsah

Více

varikapy na vstupu a v oscilátoru (nebo s ladicím kondenzátorem) se dá citlivost nenároèných aplikacích zpravidla nevadí.

varikapy na vstupu a v oscilátoru (nebo s ladicím kondenzátorem) se dá citlivost nenároèných aplikacích zpravidla nevadí. FM tuner TES 25S Pavel Kotráš, Jaroslav Belza Návodù na stavbu FM pøijímaèù bylo otištìno na stránkách PE a AR již mnoho. Vìtšinou se však jednalo o jednoduché a nepøíliš kvalitní pøijímaèe s obvody TDA7000

Více

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++ C++ Akademie SH 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory Za áte níci C++ 20. b ezna 2011 Obsah 1 Prom nné - primitivní typy Celá ísla ƒísla s pohyblivou desetinnou árkou, typ bool 2 Podmínka

Více

Predispozice pro výuku IKT (2015/2016)

Predispozice pro výuku IKT (2015/2016) Konzervatoř P. J. Vejvanovského Kroměříž Predispozice pro výuku IKT (15/16) Základní algoritmy pro počítání s celými a racionálními čísly Adam Šiška 1 Sčítání dvou kladných celých čísel Problém: Jsou dána

Více

STŘEDOŠKOLSKÁ ODBORNÁ ČINNOST UNIVRZÁLNÍ VYSÍLAČKA Jaroslav Páral Brno 2011

STŘEDOŠKOLSKÁ ODBORNÁ ČINNOST UNIVRZÁLNÍ VYSÍLAČKA Jaroslav Páral Brno 2011 STŘEDOŠKOLSKÁ ODBORNÁ ČINNOST UNIVRZÁLNÍ VYSÍLAČKA Jaroslav Páral Brno 2011 STŘEDOŠKOLSKÁ ODBORNÁ ČINNOST Obor SOČ: UNIVRZÁLNÍ VYSÍLAČKA Autoři: Jaroslav Páral Škola: SPŠ a VOŠ technická, Sokolská 1 602

Více

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Digitální

Více

enos dat rnici inicializaci adresování adresu enosu zprávy start bit átek zprávy paritními bity Ukon ení zprávy stop bitu ijíma potvrzuje p

enos dat rnici inicializaci adresování adresu enosu zprávy start bit átek zprávy paritními bity Ukon ení zprávy stop bitu ijíma potvrzuje p Přenos dat Ing. Jiří Vlček Následující text je určen pro výuku předmětu Číslicová technika a doplňuje publikaci Moderní elektronika. Je vhodný i pro výuku předmětu Elektronická měření. Přenos digitálních

Více

Jak pracovat s absolutními hodnotami

Jak pracovat s absolutními hodnotami Jak pracovat s absolutními hodnotami Petr Matyáš 1 Co to je absolutní hodnota Absolutní hodnota čísla a, dále ji budeme označovat výrazem a, je jeho vzdálenost od nuly na ose x, tedy je to vždy číslo kladné.

Více

Popis zapojení: < 27 dbµv. < 33 dbµv LW. S/N ratio (60 dbµv): > 57 db FM mono > 52 db AM

Popis zapojení: < 27 dbµv. < 33 dbµv LW. S/N ratio (60 dbµv): > 57 db FM mono > 52 db AM Tuner FM pro Raspberry Pi Malina pro kterou nebude problém generovat řídicí signály pro I2C. Na internetu najdeme velké množství příkladů jak ovládat I2C. Popis zapojení: Základem je profesionální tuner,

Více

Melodický zvonek. Milan Horkel

Melodický zvonek. Milan Horkel MB0B Melodický zvonek Milan Horkel Melodický zvonek MB0 používá pro generování hudebních tónů procesor PI6F89 a umožňuje snadné přeprogramování melodií. Zvonek je možno napájet z baterie, protože v klidu

Více

Úloha 1 Multimetr. 9. Snižte napájecí napětí na 0V (otočením ovládacího knoflíku výstupního napětí zcela doleva).

Úloha 1 Multimetr. 9. Snižte napájecí napětí na 0V (otočením ovládacího knoflíku výstupního napětí zcela doleva). Úloha 1 Multimetr CÍLE: Po ukončení tohoto laboratorního cvičení byste měli být schopni: Použít multimetru jako voltmetru pro měření napětí v provozních obvodech. Použít multimetru jako ampérmetru pro

Více

Základy číslicové techniky. 2 + 1 z, zk

Základy číslicové techniky. 2 + 1 z, zk Základy číslicové techniky 2 + 1 z, zk Ing. Vít Fábera, K614 e-mail: fabera@fd.cvut.cz K508, 5. patro, laboratoř, 2 2435 9555 Ing. Tomáš Musil, Ph.D., K620 e-mail: musil@asix.cz K508, 5. patro, laboratoř,

Více

Vysoká škola chemicko-technologická v Praze Fakulta chemicko-inženýrská Ústav počítačové a řídicí techniky. Aplikace mikroprocesorů.

Vysoká škola chemicko-technologická v Praze Fakulta chemicko-inženýrská Ústav počítačové a řídicí techniky. Aplikace mikroprocesorů. Vysoká škola chemicko-technologická v Praze Fakulta chemicko-inženýrská Ústav počítačové a řídicí techniky Aplikace mikroprocesorů Deska Evb IO Návod k použití Lukáš Lahoda 2010 Obsah 1 DESKA EVB IO...

Více

Popis zapojení a návod k osazení desky plošných spojů STN-A varianta Tower

Popis zapojení a návod k osazení desky plošných spojů STN-A varianta Tower Popis zapojení a návod k osazení desky plošných spojů STN-A varianta Tower Desku plošných spojů (DPS) STN-A je možné osadit více způsoby. Na tomto místě se budeme zabývat variantou Tower, která je určena

Více

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics 2/36 Digitální

Více

Inovace výuky předmětu Robotika v lékařství

Inovace výuky předmětu Robotika v lékařství Přednáška 7 Inovace výuky předmětu Robotika v lékařství Senzory a aktuátory používané v robotických systémech. Regulace otáček stejnosměrných motorů (aktuátorů) Pro pohon jednotlivých os robota jsou často

Více

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a Aplikace Embedded systémů v Mechatronice Aplikace Embedded systémů v Mechatronice Obsah přednášky: Opakovaní Funkce v C Tvorba knihoven Konfigurační bity #pragma Makra v C #define Debugging v MPLAB Hardware

Více

stavební návod: SKUPINOVÝ ADAPTIBILNÍ IR SPÍNAČ SÍŤOVÉHO NAPÁJENÍ

stavební návod: SKUPINOVÝ ADAPTIBILNÍ IR SPÍNAČ SÍŤOVÉHO NAPÁJENÍ stavební návod: SKUPINOVÝ ADAPTIBILNÍ IR SPÍNAČ SÍŤOVÉHO NAPÁJENÍ Infraovladači, kterými ovládáme televizory, zesilovače, apod. můžeme prostřednictví adaptibilního IR spínače ovládat i síťové napájení

Více

Architektura počítače

Architektura počítače Architektura počítače Výpočetní systém HIERARCHICKÁ STRUKTURA Úroveň aplikačních programů Úroveň obecných funkčních programů Úroveň vyšších programovacích jazyků a prostředí Úroveň základních programovacích

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b Výrazy a operátory i = 2 i = 2; to je výraz to je příkaz 4. Operátory Unární - unární a unární + Např.: +5-5 -8.345 -a +b - unární ++ - inkrement - zvýší hodnotu proměnné o 1 - unární -- - dekrement -

Více

PocketHome R CENTRÁLNÍ OVLÁDÁNÍ VYTÁPĚNÍ VAŠEHO DOMU REFERENČNÍ MÍSTNOST

PocketHome R CENTRÁLNÍ OVLÁDÁNÍ VYTÁPĚNÍ VAŠEHO DOMU REFERENČNÍ MÍSTNOST ph_cj37_v1004:layout 1 10.12.2007 21:02 Page 1 PocketHome R CENTRÁLNÍ OVLÁDÁNÍ VYTÁPĚNÍ VAŠEHO DOMU PH-CJ37 CENTRÁLNÍ ŘÍDICÍ JEDNOTKA obousměrné předávání dat požadavek na zapnutí kotle + C - HLAVICE OFF

Více

Signálové a mezisystémové převodníky

Signálové a mezisystémové převodníky Signálové a mezisystémové převodníky Tyto převodníky slouží pro generování jednotného nebo unifikovaného signálu z přirozených signálů vznikajících v čidlech. Často jsou nazývány vysílači příslušné fyzikální

Více

maxon motor maxon motor řídicí jednotka ADS 50/10 Objednací číslo 201583 Návod k obsluze vydání duben 2006

maxon motor maxon motor řídicí jednotka ADS 50/10 Objednací číslo 201583 Návod k obsluze vydání duben 2006 maxon motor řídicí jednotka ADS 50/10 Objednací číslo 201583 Návod k obsluze vydání duben 2006 ADS 50/10 je výkonná řídicí jednotka pro řízení stejnosměrných DC motorů s permanentními magnety a výkony

Více

Název projektu: Život s počítačem. Číslo projektu: OPVK.CZ.1.07/1.2.32/01.0041

Název projektu: Život s počítačem. Číslo projektu: OPVK.CZ.1.07/1.2.32/01.0041 Název projektu: Život s počítačem Číslo projektu: OPVK.CZ.1.07/1.2.32/01.0041 Metodické pokyny k pracovnímu listu Projektový den Robotika I Žáci se seznámí s robotem Lego Mindstorms, s jeho stavěním a

Více

NÁVOD K OBSLUZE ELEKTRONICKÁ OBCHODNÍ VÁHA S POČÍTÁNÍM KUSŮ. řady. Strana 1. Dovozce do ČR:

NÁVOD K OBSLUZE ELEKTRONICKÁ OBCHODNÍ VÁHA S POČÍTÁNÍM KUSŮ. řady. Strana 1. Dovozce do ČR: NÁVOD K OBSLUZE Strana 1 ELEKTRONICKÁ OBCHODNÍ VÁHA S POČÍTÁNÍM KUSŮ řady Dovozce do ČR: Tento soubor je chráněn autorskými právy společnosti LESAK s.r.o. Jeho kopírování a komerční distribuce je možná

Více

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!

Více

Osnova: 1. Klopné obvody 2. Univerzálníobvod 555 3. Oscilátory

Osnova: 1. Klopné obvody 2. Univerzálníobvod 555 3. Oscilátory K620ZENT Základy elektroniky Přednáška ř č. 6 Osnova: 1. Klopné obvody 2. Univerzálníobvod 555 3. Oscilátory Bistabilní klopný obvod Po připojení ke zdroji napájecího napětí se obvod ustálí tak, že jeden

Více

2. Matice, soustavy lineárních rovnic

2. Matice, soustavy lineárních rovnic Matice, soustavy lineárních rovnic Tento učební text byl podpořen z Operačního programu Praha- Adaptabilita Irena Sýkorová Některé vlastnosti matic Uvažujmečtvercovoumatici A=(a ij ) n n Matice Asenazývásymetrická,jestližeplatí

Více

PŘÍRUČKA UŽIVATELE REGULÁTORU ZP2 RE5

PŘÍRUČKA UŽIVATELE REGULÁTORU ZP2 RE5 PŘÍRUČKA UŽIVATELE REGULÁTORU ZP2 RE5 1 Obsah 1. ÚVOD... 3 2. TECHNICKÉ PARAMETRY... 3 Napájecí napětí:... 3 230V + 10% -15%, 50-60Hz... 3 Řídicí signál:... 3 analogový 0/4-20mA... 3 Chybová hlášení:...

Více

Regulovatelný síťový adaptér NT 255

Regulovatelný síťový adaptér NT 255 Regulovatelný síťový adaptér NT 255 Objednací číslo: 19 58 47 Použití: Profesionální laboratorní síťový adaptér - pro: - dílny, školy - laboratoře, radioamatéry - počítače 100 % stabilita napětí Technická

Více

TEPLOMĚR S DIGITÁLNÍM ZOBRAZENÍM TD

TEPLOMĚR S DIGITÁLNÍM ZOBRAZENÍM TD TEPOMĚR S DIGITÁNÍM ZOBRAZENÍM TD Určení: TD jsou určeny na měření teploty a její zobrazení na CD displeji Technické parametry Napájecí napětí: (Vs): 9 až 30 V= pro 2 vodič (Tdi) 15 až 30 V= pro 3 vodič

Více

TENZOMETRICKÝ MĚŘIČ. typ Tenz2293. www.aterm.cz

TENZOMETRICKÝ MĚŘIČ. typ Tenz2293. www.aterm.cz TENZOMETRICKÝ MĚŘIČ typ Tenz2293 1. Úvod Tento výrobek byl zkonstruován podle současného stavu techniky a odpovídá platným evropským a národním normám a směrnicím. U výrobku byla doložena shoda s příslušnými

Více

Digitronové digitální hodiny

Digitronové digitální hodiny Středoškolská technika 2013 Setkání a prezentace prací středoškolských studentů na ČVUT Digitronové digitální hodiny Jakub Rezek Radek VOKOUN Obsah Úvod... 2 Popis výrobku... 3 Funkce digitronu... 3 Popis

Více

Obor: počítačové systémy

Obor: počítačové systémy VYSOKÁ ŠKOLA POLYTECHNICKÁ V JIHLAVĚ Katedra elektrotechniky a informatiky Obor: počítačové systémy Univerzální tester logických integrovaných obvodů bakalářská práce Autor: Tomáš Kučera Vedoucí práce:

Více

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Vzorový příklad pro práci v prostředí MPLAB Zadání: Vytvořte program, který v intervalu 200ms točí doleva obsah registru reg, a který při stisku tlačítka RB0 nastaví bit 0 v registru reg na hodnotu 1.

Více

ETC Embedded Technology Club setkání 3, 3B zahájení třetího ročníku

ETC Embedded Technology Club setkání 3, 3B zahájení třetího ročníku ETC Embedded Technology Club setkání 3, 3B 9.10. 2018 zahájení třetího ročníku Katedra měření, Katedra telekomunikací,, ČVUT- FEL, Praha doc. Ing. Jan Fischer, CSc. ETC club, 3, 3B 23.10.2018, ČVUT- FEL,

Více

8. Operaèní zesilovaèe

8. Operaèní zesilovaèe zl_e_new.qxd.4.005 0:34 StrÆnka 80 80 Elektronika souèástky a obvody, principy a pøíklady 8. Operaèní zesilovaèe Operaèní zesilovaèe jsou dnes nejvíce rozšíøenou skupinou analogových obvodù. Jedná se o

Více

Regulátor krokových motorů

Regulátor krokových motorů http://www.coptkm.cz/ Regulátor krokových motorů Roztočit stejnosměrný motor je velmi jednoduché, ale s krokovým motorem již je to složitější. V minulosti bylo publikováno mnoho nejrůznějších zapojení,

Více