{"id":201,"date":"2016-05-13T12:02:37","date_gmt":"2016-05-13T12:02:37","guid":{"rendered":"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/?p=201"},"modified":"2016-05-14T10:48:40","modified_gmt":"2016-05-14T10:48:40","slug":"zajecia-nr-4-cyferki-cyferki-komu-komu-bo-ide-do-domu","status":"publish","type":"post","link":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/?p=201","title":{"rendered":"Zaj\u0119cia nr 4 &#8211; cyferki, cyferki, komu komu, bo id\u0119 do domu"},"content":{"rendered":"<p>Kto nie by\u0142 niech \u017ca\u0142uje. <span style=\"text-decoration: underline;\">Prawie<\/span> zako\u0144czyli\u015bmy budow\u0119 naszego\u00a0pojazdu podr\u00f3\u017cuj\u0105cego w czasie \ud83d\ude09 Pracowali\u015bmy nad konsolet\u0105 do sterowania (programowania daty podr\u00f3\u017cy)<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/cooking-hacks.com\/wp\/wp-content\/uploads\/2012\/11\/back-to-the-future.png\" alt=\"\" \/><\/p>\n<p>A dok\u0142adniej pracowali\u015bmy nad jednym z element\u00f3w:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-215\" src=\"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2016\/05\/878-00-300x225.jpg\" alt=\"878-00\" width=\"300\" height=\"225\" srcset=\"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2016\/05\/878-00-300x225.jpg 300w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2016\/05\/878-00-768x576.jpg 768w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2016\/05\/878-00-1024x768.jpg 1024w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2016\/05\/878-00.jpg 1200w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>A jeszcze dok\u0142adniej: nad pojedyncz\u0105 cyferk\u0105!<\/p>\n<h2>7 segment display (SSD) &#8211; <a href=\"https:\/\/en.wikipedia.org\/wiki\/Seven-segment_display\" target=\"_blank\">przeczytaj Wikipedi\u0119<\/a> (ale nie ca\u0142\u0105).<\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/alyssaulangca.files.wordpress.com\/2015\/07\/7-segment.jpg\" alt=\"\" \/><br \/>\nWszyscy uczestnicy Talen\u00f3w pracowali wytrwale i ju\u017c po chwili ka\u017cdyemu uda\u0142o si\u0119 tak sterowa\u0107 LEDami <strong>7-mio segmentowego wy\u015bwietlacza<\/strong>, by pokazywa\u0142 jedynk\u0119, dw\u00f3jk\u0119 i tr\u00f3jk\u0119.<strong> Jeden z uczestnik\u00f3w kursu<\/strong> okaza\u0142 si\u0119 bardzo sprytny i bardzo szybko mia\u0142 zaprogramowane wszystkie 10 cyfr (gratuluj\u0119<strong> Jakubowi M. (VIII LO)<\/strong>\u00a0&#8211; nagroda na koniec kursu).<\/p>\n<p>W celu sterowania 7-mio segmentowym wy\u015bwietlaczem szlifowali\u015bmy techniki programowania strukturalnego:<\/p>\n<ul>\n<li>tworzyli\u015bmy w\u0142asne funkcje, w tym funkcje z argumentami<\/li>\n<li>wykorzystywali\u015bmy tablice (do przechowywania numer\u00f3w pin\u00f3w z Arduino)<\/li>\n<li>wykorzystali\u015bmy tablice dwuwymiarowe &#8211; tzw. tablice tablic, czyli elementami tablicy by\u0142a&#8230; tablica! Okaza\u0142o si\u0119 to bardzo u\u017cyteczne (z odpowiednim programowaniem funkcji)<\/li>\n<li>no i poznali\u015bmy hardware, czyli <em>7 segment display<\/em>\u00a0<strong>ze wsp\u00f3ln\u0105 anod\u0105<\/strong> (CA &#8211; <em>common anode<\/em> &#8211; w naszym przypadku). Musieli\u015bmy troszk\u0119 zmieni\u0107 nasze my\u015blenie &#8211; przywykli\u015bmy do schematu: 1=w\u0142\u0105czone, 0=wy\u0142\u0105czone. A tutaj odwrotnie. W\u0142\u0105czaj\u0105c napi\u0119cie 5V na pinie Arduino powodujemy zgaszenie segmentu, z kolei ustawiaj\u0105c napi\u0119cie na 0V w\u0142\u0105czamy segment! Tak &#8211; specjalnie da\u0142em Wam taki w\u0142a\u015bnie sprz\u0119t, by troszk\u0119 wysili\u0107 szare kom\u00f3rki!<\/li>\n<\/ul>\n<p>Niestety &#8211; programowanie pojedynczej cyferki wymaga\u0142o wykorzystania <strong>8 pin\u00f3w cyfrowych<\/strong> z Arduino. To do\u015b\u0107 du\u017co&#8230; 2 Takie cyferki wymagaj\u0105 ju\u017c 16 pin\u00f3w, a nasze UNO ma ich 14 (tylko? a\u017c?). OK, mo\u017cna ustawi\u0107 piny analogowe jako cyfrowe, tym samy b\u0119dziemy mie\u0107 ich dodatkowo 6 sztuk &#8211; czyli oprogramujemy 2 cyferki. <strong>Ale co z nasz\u0105 konsol\u0105 do podr\u00f3\u017cy w<\/strong> <strong>czasie<\/strong>?? Pojazd ju\u017c mamy, tylko ta konsola nas blokuje&#8230;<\/p>\n<h2>Rejestr przesuwny 74HC595 (ang.\u00a0<em>shift register)<\/em><\/h2>\n<p>Jako rozwi\u0105zanie powy\u017cszego problemu poznali\u015bmy <strong>rejestr przesuwny 74HC595.\u00a0<\/strong>Cena tego cuda na czarnym rynku to oko\u0142o 1 z\u0142 w detalu, a umo\u017cliwia ono sterowanie 8 wyj\u015bciami (czyli np. jedn\u0105 cyferk\u0105) za pomoc\u0105 <strong>tylko 3 pin\u00f3w cyfrowych<\/strong> z Arduino! Co wi\u0119cej, <strong>\u0142\u0105cz\u0105c ze sob\u0105<\/strong> dwa takie uk\u0142ady (za \u0142\u0105czn\u0105 kwot\u0119 2 z\u0142) mo\u017cemy mie\u0107 ju\u017c oprogramowane 2 cyferki, ci\u0105gle wykorzystuj\u0105c <strong>tylko 3 piny<\/strong> cyfrowe z Arduino. Uk\u0142ady mo\u017cna \u0142\u0105czy\u0107 w kolejne szeregi a\u017c do 8 sztuk.<\/p>\n<p>Przy tej okazji poznali\u015bmy:<\/p>\n<ul>\n<li>orientacj\u0119 modu\u0142u w kasiecie <strong>DIP<\/strong> (pami\u0119tacie t\u0105 kropeczk\u0119? wci\u0119cie?)<\/li>\n<li><strong>numeracj\u0119<\/strong> pin\u00f3w na module (odwrotnie do ruchu wskaz\u00f3wek zegara, gdy patrz\u0119 mu w twarz&#8230;)<\/li>\n<li>nazewnictwo niekt\u00f3rych pin\u00f3w (GND, <strong>Vcc<\/strong>, Qa, Qb&#8230;)<\/li>\n<\/ul>\n<p>No i na koniec okaza\u0142o si\u0119, \u017ce a\u017c 3 uczni\u00f3w <strong>zrobi\u0142o b\u0142\u0105d<\/strong> przepisuj\u0105c <em>m\u00f3j cudowny kod<\/em> z tablicy, tym samym rejestr przesuwny nie dzia\u0142a\u0142. Trudno powiedzie\u0107 o co chodzi w tej pl\u0105taninie przewod\u00f3w,<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-205 size-large\" src=\"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2016\/05\/DSC_0322-1024x576.jpg\" alt=\"DSC_0322\" width=\"640\" height=\"360\" srcset=\"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2016\/05\/DSC_0322-1024x576.jpg 1024w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2016\/05\/DSC_0322-300x169.jpg 300w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2016\/05\/DSC_0322-768x432.jpg 768w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p>ale <strong>od k\u0142opot\u00f3w uratowa\u0142 nas Sylwester K. (ZSH-E)<\/strong> &#8211; bezb\u0142\u0119dnie przepisuj\u0105c program, uruchamiaj\u0105c i ciesz\u0105c oczy dzia\u0142aj\u0105cym uk\u0142adem. By\u0142 nawet na tyle szczodry, \u017ce po chwili rozsy\u0142a\u0142 sw\u00f3j (m\u00f3j?) program kolegom, kt\u00f3rzy tylko czerwienieli widz\u0105c, \u017ce ju\u017c u nich wszystko gra \ud83d\ude09<\/p>\n<h2>Praca domowa &#8211; tym razem &#8211; dobrowolna!<\/h2>\n<p>Prosz\u0119 zmusi\u0107 Arduino by odlicza\u0142o od 9 do 0 z wykorzystaniem rejestru przesuwnego. W tym celu zalogujcie si\u0119 do 123d.circuits.io i tam przygotujcie hardware (poszukajcie wy\u015bwietlacza oraz rejestru &#8211; czekaj\u0105 tam na Was, przy czym najpierw sprawd\u017acie wirtualn\u0105 bateryjk\u0105, czy wy\u015bwietlacz jest ze wsp\u00f3ln\u0105 anod\u0105, czy katod\u0105), a software macie ju\u017c\u00a0<strong>prawie<\/strong> gotowy. Kto si\u0119 na to pokusi? Nagroda czeka&#8230;<\/p>\n<p>P.S.<\/p>\n<p>Lubicie dobranocki z dreszczykiem? Je\u015bli tak, i nie l\u0119kacie si\u0119 j\u0119zyka angielskiego to zapraszam do lektury<\/p>\n<ul>\n<li><a href=\"http:\/\/www.electronics-tutorials.ws\/blog\/7-segment-display-tutorial.html\" target=\"_blank\">http:\/\/www.electronics-tutorials.ws\/blog\/7-segment-display-tutorial.html<\/a><\/li>\n<li><a href=\"https:\/\/www.arduino.cc\/en\/Tutorial\/ShiftOut\" target=\"_blank\">https:\/\/www.arduino.cc\/en\/Tutorial\/ShiftOut<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kto nie by\u0142 niech \u017ca\u0142uje. Prawie zako\u0144czyli\u015bmy budow\u0119 naszego\u00a0pojazdu podr\u00f3\u017cuj\u0105cego w czasie \ud83d\ude09 Pracowali\u015bmy nad konsolet\u0105 do sterowania (programowania daty podr\u00f3\u017cy) A dok\u0142adniej pracowali\u015bmy nad jednym z element\u00f3w: A jeszcze dok\u0142adniej: nad pojedyncz\u0105 cyferk\u0105! 7 segment display (SSD) &#8211; przeczytaj Wikipedi\u0119 (ale nie ca\u0142\u0105). Wszyscy uczestnicy Talen\u00f3w pracowali wytrwale i ju\u017c po chwili ka\u017cdyemu uda\u0142o [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":202,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[51],"tags":[],"class_list":{"0":"post-201","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-talentyxxiw","9":"post-with-thumbnail","10":"post-with-thumbnail-large"},"_links":{"self":[{"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/posts\/201","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=201"}],"version-history":[{"count":13,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/posts\/201\/revisions"}],"predecessor-version":[{"id":219,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/posts\/201\/revisions\/219"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/media\/202"}],"wp:attachment":[{"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=201"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}