ATtiny85

Page

Stránky / Mikrokontroléry /

Toto je stránka, ktorá slúži ako rozcestník na experimenty s menšou verziou Arduina. ATtiny85 má 8 kB flash pamäte, 512 SRAM a 512 EEPROM. Môže sa to zdať málo, ale aj do takej malej pamäte dokážete dostať dosť veľký program. ATtiny85 je môj obľúbený mikrokontrolér a iba vo výnimočných situáciách ho nahrádzam s mikrokontrolérom ATtiny84, ktorý má k dispozícii viac pinov a trošku lepšie periférie.

Prečo používať ATtiny85 namiesto plnohodnotného Arduina?

Hlavným dôvodom je cena. Tento mikrokontrolér kúpite za Euro a keď sa niečo stane, nič sa nedeje. Okrem toho je elementárne poskladať pomocou neho jednoduchý obvod, ktorý bude blbuvzdorný, možno ho pripojiť aj na vyššie napätie (pomocou regulátora napätia) a môžete s ním pomocou digitálnych pinov ľahko ovládať iné obvody.

Programovanie

Ako programovať ATtiny85 pomocou Arduina nájdete v samostatnom článku Arduino ako ISP programátor. Existuje aj druhá možnosť, že si poskladáte vývojovú dosku a na nej ho naprogramujete pomocou USBasp.

Aby bolo možné mikrokontrolér programovať, je potrebné do Arduino IDE doinštalovať podporu. Postup platí pre IDE 1.6.4 a vyššie:

  • Použite funkciu menu File/Preferences.
  • V zobrazenom dialógu do poľa Additional Board Manager doplňte https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json a stlačte OK. Toto jadro je síce uvádzané ako prvé, ale nedoporučujem ho používať. Bolo prvé z historických dôvodov, ale jeho autor nemá na jeho vývoj toľko času, ako je jadro, spomínané v odstavci o alternatívnych jadrách.
  • Použite funkciu Tools/Board/Boards Manager.
  • V zozname dosiek nájdite attiny a nainštalujte ju.

Alternatívne jadrá

Predchádzajúce jadro je dobré na základné programovanie ATtiny85. Ak ale chcete mikrokontrolér využiť viac, je vhodné sa poobzerať po viac prepracovaných jadrách. Tie podporujú zmenu mnohých parametrov. Napríklad zmeny nastavenia fuses, rôznych zdrojov hodín a optimalizácie kódu pri preklade.

Digitálny výstup

V základnom nastavení je k dispozícii 5 digitálnych pinov. Je možné mikrokontrolér prepnúť aj do stavu, keď použije namiesto resetu aj posledný pin, to je ale jednorázová záležitosť a viac nie je možné programovať ho pomocou Arduina. Preto túto možnosť ani nebudeme brať do úvahy. Jednotlivé piny sa ovládajú nasledovne:

  • 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 dispozícii sú tri piny:

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

Analógový vstup

K dispozícii sú tri vstupy:

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

Existuje ešte štvrtý pin, ale ten je na tom istom pine ako RESET a jeho využitie nie je jednoduché.

ADC prevody ale poskytujú viac možností a tie skúmam v samostatnom článku o ADC.

Interná EEPROM

Práca s EEPROM funguje rovnako ako v bežnom Arduine. Ak si chcete programovanie uľahčiť, inšpirujte sa v článku o praktickom používaní EEPROM.

Nastavovanie rýchlosti mikrokontroléra

Pokiaľ k tomu nie sú nejaké závažné dôvody, treba nechať mikrokontrolér na továrenskom nastavení 1 MHz. Ak je dôležitá rýchlosť, možno ho prepnúť na 8 MHz a v prípade extra požiadavky na rýchlosť sa dá ísť až do 20 MHz, ale už len za cenu pinov 3 a 4. Nastavovanie rýchlosti je popísané v článku Arduino ako ISP programátor.

Informácia o obsadení pinov 3 a 4 nie je úplne správna. Existuje možnosť prepnúť ATtiny85 aj do režimu, že aj pri vyššej rýchlosti používa vnútorný oscilátor. Volá sa PLL a pomocou neho sa dajú dosahovať aj vyššie rýchlosti. Najjednoduchšie to urobíte tak, že použijete jadro ATTinyCore a nastavíte si to v menu. Nezabudnite potom použiť funkciu menu Vypáliť zavádzač (Burn bootloader).

Programovať ho ako Arduino?

Opäť platí to čo v predošlom odstavci. Ak si chcete pridávať prácu, môžete ho programovať nízkoúrovňovými prostriedkami. V ATtiny85 ale máme k dispozícii 8 kB pamäte a to na programy bežnej veľkosti postačuje. Preto je omnoho pohodlnejšie písať digitalWrite, než sa trápiť s bitovými operáciami na porte.

Jedine ak ide o rýchlosť alebo významnejšiu úsporu pamäte, vtedy treba pristupovať k optimalizačným technikám. Platí staré programátorské pravidlo, že zákazníkovi je úplne jedno, koľko rokov života ste venovali programu na blikanie ledkou, keď to bude fungovať, do zdrojového kódu vám nikdy nepolezie.

Projekty

Zoznam projektov s ATtiny85. Ak sa chcete venovať programovaniu mikrokontroléra viac, je vhodné si postaviť vývojovú dosku. V projektoch nájdete dosky v DIP prevedení a dosky so SMD súčiastkami. Stmievač LED pásika bol môj pilotný projekt, na ktorom som sa učíl. Ale prekvapujúco sa vydaril a tento model stmievača používa približne 10 mojich známych na mnou vyrobených doskách a neznámy počet tvorcov dosiek, ktorí sa týmto projektom inšpirovali.

Blog

Zoznam článkov o ATtiny85. O tomto mikrokontroléri som napísal veľa článkov, preto som sa ich snažil rozdeliť na logické skupiny.

Pre začiatočníkov

Na týchto stránkach som o Arduine nikdy nepísal priamo pre začiatočníkov. Dôvodom bolo, že o Arduine nájdete na Internete dostatok príkladov, ktoré vás naučia elementárne základy jeho programovania. S mikrokontrolérom ATtiny85 je to iné. Príkladov je málo a ťažko nájdete také príklady, ktoré by boli dostatočne jednoduché. To sa snažím v tejto sérii urobiť a popisované témy a príklady robím tak, aby po prečítaní série týchto článkov mohol aj menej skúsený užívateľ programovať tieto malé mikrokontroléry.

ATtiny85 - Blik

Naše dieťa malo nedávno dva roky a jeho najobľúbenejšie slová sú auto a blik. Poďme si takýto blik vyrobiť pomocou mikrokontroléra ATtiny85. Program Blik je najzákladnejším programom pre Arduino, na ktorom sa naučíte základy ovládania vývodov z mikrokontroléra. V tomto článku si preberieme tieto základy a pridáme k nim aj čosi navyše.

ATtiny85 - Poistky

V predchádzajúcom článku som to zabudol spomenúť. Mikrokontrolér ATtiny85 je dodávaný v továrenskom nastavení na frekvencii 1 MHz. V tomto článku si vysvetlíme, ako toto nastavenie zmeniť a nastaviť vyššiu frekvenciu pomocou poistiek.

ATtiny85 - Tlačidlá

Tlačidlá sú jednoduché súčiastky, pomocou ktorých môžete komunikovať s mikrokontrolérom. Obvykle sa využívajú mikrospínače, ktoré nájdete aj v bežnej spotrebnej elektronike. V dnešnom článku si vysvetlíme základné použitie tlačidiel a naprogramujeme si aj jednoduchý stavový automat, v ktorom budeme musieť ošetriť zákmity tlačidiel.

ATtiny85 - PWM

ATtiny85 má 3 PWM výstupy. Sú umiestnené na pinoch 0, 1 a 4. V tomto článku si ukážeme, ako sa PWM používa. PWM (pulse widht modulation) je skratka pre impulzovú šírkovú moduláciu signálu pomocou zmeny striedy (šírka impulzu). Je to efektívna cesta na regulovanie elektrického výkonu, dodávaného do záťaže. Užívatelia Arduina sa s týmto pojmom stretávajú vtedy, keď regulujú jas LED diódy, alebo otáčky ventilátora.

ATtiny85 - A/D prevodník

V tomto článku sa budeme venovať A/D prevodníku v mikrokontroléri ATtiny85. Vychádzať budeme z predchádzajúcich článkov, v ktorých sme popisovali A/D prevodník v Arduine Uno. V tomto článku si ukážeme základné použitie prevodníka a vymenujeme si odlišnosti. Odlišnostiam sa budeme podrobne venovať v niektorom z ďalších článkov.

ATtiny85 - Blik (76 bajtov)

Pred niekoľkými rokmi som napísal článok ATtiny85 - Blik. Vtedy som napísal niekoľko príkladov a najmenší z programov mal po skompilovaní dĺžku 468 bajtov. Teraz si ukážeme program, ktorý sa správa rovnako a má len 76 bajtov. Poďme si tento blik vyrobiť pomocou mikrokontroléra ATtiny85.

  • Pripravujem - analógový komparátor.

Programovanie

Rôzne spôsoby programovania mikrokontroléra.

USBasp - Windows 10 ovládač

Programátor USBasp slúži na pohodlné programovanie mikrokontrolérov. Ak používate Windows 10, budete musieť použiť podpísané ovládače, aby programátor fungoval. Pripravil som pre vás video, kde je celý postup inštalácie podpísaných ovládačov vysvetlený.

Ostatné

Ostatné články, ktoré nebolo možné zaradiť do žiadnej kategórie.

ATtiny85 a superkondenzátor

Vyskúšal som malý 1,5 F kondenzátor spolu s mikrokontrolérom ATtiny85. Vyrába ho firma Panasonic a pracuje s napätím maximálne 5,5 V. Kondenzátor je určený na zálohovanie nízkoenergetických zariadení. Použil som mikrokontrolér ATtiny85 na frekvencii 1 MHz, čím som podmienku nízkoenergetického zariadenia splnil. Chcete vedieť, ako dlho mikrokontrolér pracoval?

ATtiny85 Piranha LED lampa

Narodenie druhého dieťaťa bolo inšpiráciou pre tento projekt. Potrebovali sme ľahko prenositeľný zdroj svetla, na ktorom je možné plynule nastaviť jas. Využil som skúsenosti z projektu Bambíno a ATtiny13A a vytvoril som projekt LED svetla, ktoré je napájané 4,5 V batériou. Toto LED svetlo je ovládané mikrokontrolérom ATtiny85, ale program je kompatibilný aj pre ATtiny13A.

10-bitové PWM na ATtiny85

Mikrokontrolér ATtiny85 má dva 8-bitové timery. Pomocou nich je možné ovládať stmievanie LED diód. 8 bitov je ale málo v prípade, že chcete mať zmenu jasu prispôsobenú ľudskému oku. Gama korekcia spôsobuje viditeľné skoky v zmene jasu, najmä pri nízkej hodnote jasu. Mikrokontrolér ATtiny85 umožňuje pomocou timera 1 vytvoriť aj lepšie rozlíšenie. V tomto článku si ukážeme, ako sa to robí.

ATtiny85 vývojová doska na breadboarde

Prednedávnom som predstavil na týchto stránkach SMD vývojovú dosku pre mikrokontrolér ATtiny85. V dnešnom článku by som ju chcel ukázať v akcii. Táto vývojová doska sa včlenila medzi moje ďalšie dosky, ktoré používam na breadboarde. Navrhujem ich preto, aby som nemusel neustále zastrkávať do breadboardu veľké množstvo drôtených vodičov. Ich množstvo sa zredukuje na minimum. Je to vidno aj na ilustračnej fotografii.

ATtiny85 - Simulácia ohňa pomocou NeoPixel Ring

Pred dvomi rokmi som naprogramoval simuláciu ohňa pre Arduino Uno. V tomto článku sa pokúsime túto simuláciu urobiť pomocou mikrokontroléra ATtiny85. Aby nebol program úplne rovnaký, simuláciu mierne upravíme tak, aby sa dalo blikanie ohňa nastavovať.

Cica Mica proti ATtiny85

Petrík už nie je Bambíno a cvakanie vypínačom ho už nebaví. Na jeho miesto nastúpila Cica Mica a rada si cvaká vypínačom. Zopakuje sa úspech prvej krabičky, v ktorej bolo ATtiny13A? To nevieme. Ale teraz som použil ATtiny85 a rafinovaný program, ktorý náhodne vymieňa 4 sekvencie blikania LED diódou.

ATtiny85 a displej TM1637

Už niekoľko mesiacov píšem seriál pre začiatočníkov o mikrokontroléri ATtiny85. Tento mikrokontrolér môžete používať ako miniatúrnu náhradu Arduina. Ale miniaturizácia so sebou prínáša aj problémy. Mikrokontrolér má málo pinov a nie vždy je možné na ňom používať aj sériový port. Preto som si vybral tento malý 7-segmentový displej, aby som pomocou neho v ďalších pokračovaniach seriálu zobrazoval jednoduché informácie. Displej si môžete bez problémov kúpiť v čínskych e-shopoch. Na oboznámenie sa s displejom je vhodné si prečítať článok Arduino a displej TM1637.

ATtiny85 - Teplomer s DS18B20

V tomto článku si vyrobíme miniatúrny teplomer. Použijeme na to mikrokontrolér ATtiny85 a integrovaný obvod DS18B20. Výsledok budeme zobrazovať na displeji TM1637. Zapojenie súčiastok je jednoduché a celý projekt si možno postaviť na breadboarde.


10.06.2016


Menu