ATtiny85

Page

Stránky / Mikrokontroléry /

Toto je stránka, která slouží jako rozcestník na experimenty s menší verzí Arduina. ATtiny85 má 8 kB flash paměti, 512 SRAM a 512 EEPROM. Může se to zdát málo, ale i do takové malé paměti dokážete dostat dost velký program. ATtiny85 je můj oblíbený mikrokontrolér a pouze ve výjimečných situacích jej nahrazují s mikrokontrolérem ATtiny84, který má k dispozici více pinů a trošku lepší periferie.

Proč používat ATtiny85 namísto plnohodnotného Arduina?

Hlavním důvodem je cena. Tento mikrokontrolér koupíte za Euro a když se něco stane, nic se neděje. Kromě toho je elementární poskládat pomocí něj jednoduchý obvod, který bude blbuvzdorný, lze jej připojit i na vyšší napětí (pomocí regulátoru napětí) a můžete s ním pomocí digitálních pinů snadno ovládat jiné obvody.

Programování

Jak programovat ATtiny85 pomocí Arduina naleznete v samostatném článku Arduino jako ISP programátor. Existuje i druhá možnost, že si poskládáte vývojovou desku a na ní ho naprogramujete pomocí USBasp.

Aby bylo možné mikrokontrolér programovat, je třeba do Arduino IDE doinstalovat podporu. Postup platí pro IDE 1.6.4 a vyšší:

  • Použijte funkci menu File/Preferences.
  • V zobrazeném dialogu do pole Additional Board Manager doplňte https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json a stiskněte OK. Toto jádro je sice uváděny jako první, ale nedoporučuji ho používat. Bylo první z historických důvodů, ale jeho autor nemá na jeho vývoj tolik času, jako je jádro, zmíněné v odstavci o alternativních jádrech.
  • Použijte funkci Tools/Board/Boards Manager.
  • V seznamu desek najděte attiny a nainstalujte ji.

Alternativní jádra

Předchozí jádro je dobré na základní programování ATtiny85. Pokud ale chcete mikrokontrolér využít více, je vhodné se poohlédnout po více propracovaných jádrech. Ty podporují změnu mnoha parametrů. Například změny nastavení fuses, různých zdrojů hodin a optimalizace kódu při překladu.

Digitální výstup

V základním nastavení je k dispozici 5 digitálních pinů. Je možné mikrokontrolér přepnout i do stavu, kdy použije namísto resetu i poslední pin, to je ale jednorázová záležitost a více ho nelze programovat pomocí Arduina. Proto tuto možnost ani nebudeme brát v úvahu. Jednotlivé piny se ovládají následovně:

  • PB0(5) - digitalWrite(0, HIGH);
  • PB1(6) - digitalWrite(1, HIGH);
  • PB2(7) - digitalWrite(2, HIGH);
  • PB3(2) - digitalWrite(3, HIGH);
  • PB4(3) - digitalWrite(4, HIGH);

PWM výstup

K dispozici jsou tři piny:

  • PB0(5) - analogWrite(0, 128);
  • PB1(6) - analogWrite(1, 128);
  • PB4(3) - analogWrite(4, 128);

Analogový vstup

K dispozici jsou tři vstupy:

  • PB2(7) - ADC1 - analogRead(1);
  • PB4(3) - ADC2 - analogRead(2);
  • PB3(2) - ADC3 - analogRead(3);

Existuje ještě čtvrtý pin, ale ten je na stejném pinu jako RESET a jeho využití není jednoduché.

ADC převody ale poskytují více možností a ty zkoumám v samostatném článku o ADC.

Interní EEPROM

Práce s EEPROM funguje stejně jako v běžném Arduinu. Pokud si chcete programování usnadnit, inspirujte se v článku o praktickém používání EEPROM.

Nastavování rychlosti mikrokontroléru

Pokud k tomu nejsou nějaké závažné důvody, třeba nechat mikrokontrolér na továrním nastavení 1 MHz. Pokud je důležitá rychlost, lze jej přepnout na 8 MHz a v případě extra požadavky na rychlost se dá jít až do 20 MHz, ale už jen za cenu pinů 3 a 4. Nastavování rychlosti je popsáno v článku Arduino jako ISP programátor.

Informace o obsazení pinů 3 a 4 není zcela správná. Existuje možnost přepnout ATtiny85 i do režimu, že i při vyšší rychlosti používá vnitřní oscilátor. Jmenuje se PLL a pomocí něho se dají dosahovat i vyšší rychlosti. Nejjednodušeji to uděláte tak, že použijete jádro ATTinyCore a nastavíte si to v menu. Nezapomeňte pak použít funkci menu Vypálit zavaděč (Burn bootloader).

Programovat ho jako Arduino?

Opět platí to co v předešlém odstavci. Pokud si chcete přidávat práci, můžete jej programovat nízkoúrovňové prostředky. V ATtiny85 ale máme k dispozici 8 kB paměti a to na programy běžné velikosti postačuje. Proto je mnohem pohodlnější psát digitalWrite, než se trápit s bitovými operacemi na portu.

Jedině pokud jde o rychlost nebo významnější úsporu paměti, tehdy třeba přistupovat k optimalizačním technikám. Platí staré programátorské pravidlo, že zákazníkovi je úplně jedno, kolik let života jste věnovali programu na blikání LEDkou, když to bude fungovat, do zdrojového kódu vám nikdy nepoleze.

Projekty

Seznam projektů s ATtiny85. Pokud se chcete věnovat programování mikrokontroléru víc, je vhodné si postavit vývojovou desku. V projektech najdete desky v DIP provedení a desky se SMD součástkami. Stmívač LED pásku byl můj pilotní projekt, na kterém jsem se učil. Ale překvapivě se vydařil a tento model stmívače používá přibližně 10 mých známých na mnou vyrobených deskách a neznámý počet tvůrců desek, kteří se tímto projektem inspirovali.

Blog

Seznam článků o ATtiny85. O tomto mikrokontroléru jsem napsal mnoho článků, proto jsem se je snažil rozdělit na logické skupiny.

Pro začátečníky

Na těchto stránkách jsem o Arduinu nikdy nepsal přímo pro začátečníky. Důvodem bylo, že o Arduinu naleznete na Internetu dostatek příkladů, které vás naučí elementární základy jeho programování. S mikrokontrolérem ATtiny85 je to jiné. Příkladů je málo a těžko najdete takové příklady, které by byly dostatečně jednoduché. To se snažím v této sérii udělat a popisované témata a příklady dělám tak, aby po přečtení série těchto článků mohl i méně zkušený uživatel programovat tyto malé mikrokontroléry.

ATtiny85 - Blik

Naše dítě mělo nedávno dva roky a jeho nejoblíbenější slova jsou auto a blik. Pojďme si takovýto blik vyrobit pomocí mikrokontroléru ATtiny85. Program Blik je nejzákladnějším programem pro Arduino, na kterém se naučíte základy ovládání vývodů z mikrokontroléru. V tomto článku si probereme tyto základy a přidáme k nim i cosi navíc.

ATtiny85 - Poistky

V předchozím článku jsem to zapomněl zmínit. Mikrokontrolér ATtiny85 je dodáván v továrním nastavení na frekvenci 1 MHz. V tomto článku si vysvětlíme, jak toto nastavení změnit a nastavit vyšší frekvenci pomocí pojistek.

ATtiny85 - Tlačítka

Tlačítka jsou jednoduché součástky, pomocí kterých můžete komunikovat s mikrokontrolérem. Obvykle se využívají mikrospínače, které najdete i v běžné spotřební elektronice. V dnešním článku si vysvětlíme základní použití tlačítek a naprogramujeme si i jednoduchý stavový automat, ve kterém budeme muset ošetřit zákmity tlačítek.

ATtiny85 - PWM

ATtiny85 má 3 PWM výstupy. Jsou umístěny na pinech 0, 1 a 4. V tomto článku si ukážeme, jak se PWM používá. PWM (pulse widht modulation) je zkratka pro pulzně šířkovou modulaci signálu pomocí změny střídy (šířka impulzu). Je to efektivní cesta k regulaci elektrického výkonu, dodávaného do zátěže. Uživatelé Arduina se s tímto pojmem setkávají když regulují jas LED diody, nebo otáčky ventilátoru.

ATtiny85 - A/D převodník

V tomto článku se budeme věnovat A/D převodníku v mikrokontroléru ATtiny85. Vycházet budeme z předchozích článků, ve kterých jsme popisovali A/D převodník v Arduinu Uno. V tomto článku si ukážeme základní použití převodníku a vyjmenujeme si odlišnosti. Odlišnostem se budeme podrobně věnovat v některém z dalších článků.

ATtiny85 - Blik (76 bajtů)

Před několika lety jsem napsal článek ATtiny85 - Blik. Tehdy jsem napsal několik příkladů a nejmenší z programů měl po kompilaci délku 468 bajtů. Nyní si ukážeme program, který se chová stejně a má jen 76 bajtů. Pojďme si tento blik vyrobit pomocí mikrokontroléru ATtiny85.

  • Připravuji - analogový komparátor.

Programování

Různé způsoby programování mikrokontroléru.

USBasp - Windows 10 ovladač

Programátor USBasp slouží k pohodlné programování mikrokontrolérů. Pokud používáte Windows 10, budete muset použít podepsané ovladače, aby programátor fungoval. Připravil jsem pro vás video, kde je celý postup instalace podepsaných ovladačů vysvětlen.

Ostatní

Ostatní články, které nebylo možné zařadit do žádné kategorie.

ATtiny85 a superkondenzátor

Vyzkoušel jsem malý 1,5 F kondenzátor spolu s mikrokontrolérem ATtiny85. Vyrábí ho firma Panasonic a pracuje s napětím maximálně 5,5 V. Kondenzátor je určen pro zálohování nízkoenergetických zařízení. Použil jsem mikrokontrolér ATtiny85 na frekvenci 1 MHz, čím jsem podmínku nízkoenergetického zařízení splnil. Chcete vědět, jak dlouho mikrokontrolér pracoval?

ATtiny85 Piranha LED lampa

Narození druhého dítěte bylo inspirací pro tento projekt. Potřebovali jsme snadno přenositelný zdroj světla, na kterém lze plynule nastavit jas. Využil jsem zkušenosti z projektu​ Bambíno a ATtiny13A a vytvořil jsem projekt LED světla, které je napájeno 4,5 V baterií. Toto LED světlo je ovládáno mikrokontrolérem ATtiny85, ale program je kompatibilní i pro ATtiny13A.

10-bitové PWM na ATtiny85

Mikrokontrolér ATtiny85 má dva 8bitové timery. Pomocí nich lze ovládat stmívání LED diod. 8 bitů je ale málo v případě, že chcete mít změnu jasu přizpůsobenou lidskému oku. Gama korekce způsobuje viditelné skoky ve změně jasu, zejména při nízké hodnotě jasu. Mikrokontrolér ATtiny85 umožňuje pomocí timeru 1 vytvořit i lepší rozlišení. V tomto článku si ukážeme, jak se to dělá.

ATtiny85 vývojová deska na breadboardu

Před nedávnem jsem představil na těchto stránkách SMD vývojovou desku pro mikrokontrolér ATtiny85. V dnešním článku bych ji chtěl ukázat v akci. Tato vývojová deska se včlenil mezi mé další desky, které používám na breadboardu. Navrhuji je proto, abych nemusel neustále zastrkávat do breadboardu velké množství drátěných vodičů. Jejich množství se zredukuje na minimum. Je to vidět i na ilustrační fotografii.

ATtiny85 - Simulace ohně pomocí NeoPixel Ring

Před dvěma lety jsem naprogramoval simulaci ohně pro Arduino Uno. V tomto článku se pokusíme tuto simulaci udělat pomocí mikrokontroléru ATtiny85. Aby nebyl program úplně stejný, simulaci mírně upravíme tak, aby se dalo blikání ohně nastavovat.

Cica Mica proti ATtiny85

Petrík už není Bambino a cvakání vypínačem ho už nebaví. Na jeho místo nastoupila Cica Mica a ráda si cvaká vypínačem. Zopakuje se úspěch první krabičky, v níž bylo ATtiny13A? To nevíme. Ale teď jsem použil ATtiny85 a rafinovaný program, který náhodně vyměňuje 4 sekvence blikání LED diodou.

ATtiny85 a displej TM1637

Už několik měsíců píšu seriál pro začátečníky o mikrokontroléru ATtiny85. Tento mikrokontrolér můžete používat jako miniaturní náhradu Arduina. Ale miniaturizace sebou přináší i problémy. Mikrokontrolér má málo pinů a ne vždy je možné na něm používat i sériový port. Proto jsem si vybral tento malý 7-segmentový displej, abych pomocí něho v dalších pokračováních seriálu zobrazoval jednoduché informace. Displej si můžete bez problémů pořídit v čínských e-shopech. Na seznámení se s displejem je vhodné si přečíst článek Arduino a displej TM1637.

ATtiny85 - Teploměr s DS18B20

V tomto článku si vyrobíme miniaturní teploměr. Použijeme na to mikrokontrolér ATtiny85 a integrovaný obvod DS18B20. Výsledek budeme zobrazovat na displeji TM1637. Zapojení součástek je jednoduché a celý projekt si lze postavit na breadboardu.


23.05.2021


Menu