{"id":474,"date":"2017-07-19T23:46:40","date_gmt":"2017-07-19T21:46:40","guid":{"rendered":"https:\/\/arduinoforlammers.wordpress.com\/?p=474"},"modified":"2019-08-02T18:46:30","modified_gmt":"2019-08-02T16:46:30","slug":"attiny85-czyli-wkraczamy-w-swiat-malych-mocarzy","status":"publish","type":"post","link":"https:\/\/arduino.net.pl\/index.php\/attiny85-czyli-wkraczamy-w-swiat-malych-mocarzy\/","title":{"rendered":"ATtiny85 &#8211; czyli wkraczamy w \u015bwiat ma\u0142ych mocarzy"},"content":{"rendered":"\n<p>ATtiny85 to ma\u0142y, tani procesor, kt\u00f3ry podobno \u015bwietnie poradzi sobie w wielu sytuacjach. Na pocz\u0105tek zmusimy go do zamrugania diod\u0105. Oczywi\u015bcie.<br>\nPodobnie jak w przypadku programowania <a href=\"https:\/\/arduinoforlammers.wordpress.com\/2017\/06\/19\/programujemy-atmega328-przez-arduino-uno\/\" target=\"_blank\" rel=\"noopener noreferrer\">Atmegi328<\/a> nie b\u0119dzie to takie proste, ale zapewniam, \u017ce si\u0119 uda.<\/p>\n\n\n\n<p>Podczas pisania korzysta\u0142em mi\u0119dzy innymi z bardzo pomocnego artyku\u0142u Arkadiusza Merty:&nbsp;<a href=\"http:\/\/uczymy.edu.pl\/wp\/blog\/2016\/03\/19\/programowanie-attiny85-przez-arduino-uno\/\" target=\"_blank\" rel=\"noopener noreferrer\">PROGRAMOWANIE ATTINY85 PRZEZ ARDUINO UNO<\/a><\/p>\n\n\n\n<p>Kompletne informacje o uk\u0142adzie ATtiny85 znajdziemy na stronie firmy <a href=\"http:\/\/www.atmel.com\/images\/atmel-2586-avr-8-bit-microcontroller-attiny25-attiny45-attiny85_datasheet.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">Atmel.<\/a><\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Arduino IDE nie wspomaga ATtiny85 wi\u0119c musimy doda\u0107 mikrokontrolery ATtiny do Arduino. Wchodzimy w tym celu do zak\u0142adki&nbsp;<strong>Arduino -&gt; Preferences<\/strong> szukamy okienka <strong>Additional Boards Manager URLs<\/strong>&nbsp;i wpisujemy ten adres:&nbsp;<em>https:\/\/raw.githubusercontent.com\/damellis\/attiny\/ide-1.6.x-boards-manager\/package_damellis_attiny_index.json<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"499\" height=\"337\" src=\"http:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/35642868770_a801f3da3b.jpg\" alt=\"\" class=\"wp-image-2975\" srcset=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/35642868770_a801f3da3b.jpg 499w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/35642868770_a801f3da3b-300x203.jpg 300w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/35642868770_a801f3da3b-440x297.jpg 440w\" sizes=\"auto, (max-width: 499px) 100vw, 499px\" \/><\/figure>\n\n\n\n<p>Nast\u0119pnie wchodzimy w Board Manager&#8230;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"137\" src=\"http:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/35898913891_7b6f1d4d3d.jpg\" alt=\"\" class=\"wp-image-2976\" srcset=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/35898913891_7b6f1d4d3d.jpg 500w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/35898913891_7b6f1d4d3d-300x82.jpg 300w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/35898913891_7b6f1d4d3d-440x121.jpg 440w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/figure>\n\n\n\n<p>I wyszukujemy t\u0119 zak\u0142adk\u0119:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"323\" height=\"79\" src=\"http:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/35222467033_2845f5efb9.jpg\" alt=\"\" class=\"wp-image-2977\" srcset=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/35222467033_2845f5efb9.jpg 323w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/35222467033_2845f5efb9-300x73.jpg 300w\" sizes=\"auto, (max-width: 323px) 100vw, 323px\" \/><\/figure>\n\n\n\n<p>U mnie ATtiny s\u0105 ju\u017c zainstalowane, Wy musicie to zrobi\u0107. W\u00f3wczas w zak\u0142adce <strong>Tools -&gt; Board:<\/strong> pojawi\u0105 si\u0119 mikrokontrolery ATtiny.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"479\" src=\"http:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/35861638542_e636ca0bfa.jpg\" alt=\"\" class=\"wp-image-2974\" srcset=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/35861638542_e636ca0bfa.jpg 500w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/35861638542_e636ca0bfa-300x287.jpg 300w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/35861638542_e636ca0bfa-313x300.jpg 313w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/yarogniew.net\/arduino\/wp-content\/uploads\/2018\/02\/Zrzut-ekranu-2018-02-11-o-23.11.06.png\"><img decoding=\"async\" src=\"http:\/\/yarogniew.net\/arduino\/wp-content\/uploads\/2018\/02\/Zrzut-ekranu-2018-02-11-o-23.11.06.png\" alt=\"\" class=\"wp-image-1209\"\/><\/a><\/figure>\n\n\n\n<h2 class=\"embed-frame wp-block-heading\">Pod\u0142\u0105czenie ATtiny do Arduino UNO:<\/h2>\n\n\n\n<p>             <\/p>\n\n\n\n<table class=\"wp-block-table\"><tbody><tr><td>Arduino UNO<\/td><td>ATtiny85<\/td><td>Nr n\u00f3\u017cki ATtiny85<\/td><\/tr><tr><td>5V<\/td><td>VCC <\/td><td>[8]<\/td><\/tr><tr><td>GND<\/td><td>GND<\/td><td>[4]<\/td><\/tr><tr><td>Pin 13<\/td><td>Pin 2  [SCK]<\/td><td>[7]<\/td><\/tr><tr><td>Pin 12<\/td><td>Pin 1 [MISO]<\/td><td>[6] <\/td><\/tr><tr><td>Pin 11<\/td><td>Pin 0  [MOSI]<\/td><td>[5]<\/td><\/tr><tr><td>Pin 10<\/td><td>Reset  [RESET]<\/td><td>[1] <\/td><\/tr><\/tbody><\/table>\n\n\n\n<p>Dodatkowo zaleca si\u0119 po\u0142\u0105czy\u0107 <strong>RESET<\/strong> Arduino Uno <strong>z mas\u0105<\/strong> przez <strong>kondensator 10uF<\/strong>. Minus elektrolitu \u0142\u0105czymy z mas\u0105. Ma to zapobiega\u0107 zak\u0142\u00f3ceniom przy programowaniu zewn\u0119trznego procesora.<br>Pami\u0119tajmy, \u017ce do <strong>Arduino Uno<\/strong> nale\u017cy w zwyk\u0142y spos\u00f3b wgra\u0107 program <strong>ArduinoISP<\/strong>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"432\" src=\"http:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/36648673100_ba48009f51_z.jpg\" alt=\"\" class=\"wp-image-2980\" srcset=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/36648673100_ba48009f51_z.jpg 640w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/36648673100_ba48009f51_z-300x203.jpg 300w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/36648673100_ba48009f51_z-440x297.jpg 440w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n<p>Nast\u0119pnie mo\u017cemy wgra\u0107 dowolny program. Nale\u017cy wybra\u0107: <strong>Board:&#8221;ATtiny25\/45\/85&#8243; <\/strong>oraz Processor:<strong> &#8222;ATtiny85&#8221;<br> Clock<\/strong> dowolny, byle wewn\u0119trzny, \u017ceby nie trzeba by\u0142o pod\u0142\u0105cza\u0107 zewn\u0119trznego oscylatora.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"469\" height=\"310\" src=\"http:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/36200883303_66b42d3ee2.jpg\" alt=\"\" class=\"wp-image-2973\" srcset=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/36200883303_66b42d3ee2.jpg 469w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/36200883303_66b42d3ee2-300x198.jpg 300w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/36200883303_66b42d3ee2-440x291.jpg 440w\" sizes=\"auto, (max-width: 469px) 100vw, 469px\" \/><\/figure>\n\n\n\n<p>Nast\u0119pnie otwieramy dowolny skecz, na przyk\u0142ad taki:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/*\nBlink\n*\/\n\nvoid setup() {\n\/\/ definiujemy pin 3 [n\u00f3\u017cka 2] jako wyj\u015bcie\npinMode(3, OUTPUT);\n}\n\nvoid loop() {\ndigitalWrite(3, HIGH);\ndelay(10);\ndigitalWrite(3, LOW);\ndelay(10);\n}<\/code><\/pre>\n\n\n\n<p>I wgrywamy go do ATtiny85 korzystaj\u0105c z funkcji:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"429\" height=\"185\" src=\"http:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/35283150131_5ea9bfc97f_o-1.png\" alt=\"\" class=\"wp-image-2971\" srcset=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/35283150131_5ea9bfc97f_o-1.png 429w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2019\/08\/35283150131_5ea9bfc97f_o-1-300x129.png 300w\" sizes=\"auto, (max-width: 429px) 100vw, 429px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Dzi\u0119ki bibliotece mamy dost\u0119p do nast\u0119puj\u0105cych funkcji:<\/h4>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>pinMode()<br>\ndigitalWrite()<br>\ndigitalRead()<br>\nanalogRead()<br>\nanalogWrite()<br>\nshiftOut()<br>\npulseIn()<br>\nmillis()<br>\nmicros()<br>\ndelay()<br>\ndelayMicroseconds()<\/p><\/blockquote>\n\n\n\n<h4 class=\"wp-block-heading\">Fizyczne i programowe wyprowadzenia pin\u00f3w ATtiny85:<\/h4>\n\n\n\n<figure class=\"wp-block-embed-flickr wp-block-embed is-type-photo is-provider-flickr\"><div class=\"wp-block-embed__wrapper\">\n<a href=\"https:\/\/flic.kr\/p\/Xbo7sD\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/farm5.staticflickr.com\/4433\/36217101393_a75f853b3e_z.jpg\" alt=\"attiny85_pins_Arduino\" width=\"640\" height=\"265\" \/><\/a>\n<\/div><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Przyk\u0142adowe funkcje:<\/h4>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>digitalWrite(3, HIGH); Ustaw fizyczny pin 2 na warto\u015b\u0107 wysok\u0105<br>\ndigitalWrite(4, LOW); Ustaw fizyczny pin 3 na warto\u015b\u0107 nisk\u0105<br>\nanalogWrite(1, 127); Wygeneruj sygna\u0142 PWM na fizycznym pinie 6 o stopniu wype\u0142nienia 50%<br>\nanalogWrite(0, 255\/4); Wygeneruj sygna\u0142 PWM na fizycznym pinie 5 o stopniu wype\u0142nienia 25%<br>\nanalogRead(A1) Odczytaj warto\u015b\u0107 napi\u0119cia na fizycznym pinie 7<br>\nanalogRead(A3) Odczytaj warto\u015b\u0107 napi\u0119cia na fizycznym pinie 2<\/p><\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">DODATKOWE MATERIA\u0141Y:<\/h2>\n\n\n\n<p><a href=\"http:\/\/playground.arduino.cc\/Code\/USIi2c\">http:\/\/playground.arduino.cc\/Code\/USIi2c<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ATtiny85 to ma\u0142y, tani procesor, kt\u00f3ry podobno \u015bwietnie poradzi sobie w wielu sytuacjach. Na pocz\u0105tek zmusimy go do zamrugania diod\u0105. Oczywi\u015bcie. Podobnie jak w przypadku programowania Atmegi328 nie b\u0119dzie to&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2,4],"tags":[11,30],"class_list":["post-474","post","type-post","status-publish","format-standard","hentry","category-arduino","category-attiny","tag-attiny85","tag-tutorial"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/474","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/comments?post=474"}],"version-history":[{"count":8,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/474\/revisions"}],"predecessor-version":[{"id":2982,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/474\/revisions\/2982"}],"wp:attachment":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/media?parent=474"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/categories?post=474"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/tags?post=474"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}