{"id":816,"date":"2017-10-31T19:33:55","date_gmt":"2017-10-31T19:33:55","guid":{"rendered":"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/?p=816"},"modified":"2017-11-22T08:35:45","modified_gmt":"2017-11-22T08:35:45","slug":"przycisk-modeul-ekran","status":"publish","type":"post","link":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/?p=816","title":{"rendered":"Przycisk (modeu\u0142) + ekran"},"content":{"rendered":"<p>Dzi\u015b poznalismy trzy rzeczy: wypisywanie komunikat\u00f3w przez Arduino na ekran PC-ta, funkcj\u0119 &#8222;zegara&#8221; millis() oraz obs\u0142ug\u0119 przycisku (a w\u0142a\u015bciwie modu\u0142u z przyciskiem, nied\u0142ugo poznamy r\u00f3\u017cnice).<\/p>\n<h2>Komunickacja z PC-tem<\/h2>\n<p>Chodzi o komunikacj\u0119 szeregow\u0105 UART z wykorzystaniem dw\u00f3ch pin\u00f3w cyfrowych Rx\/Tx (piny numer zero i jeden). Uruchamiamy komunikacj\u0119 poleceniem&nbsp;<strong>Serial.begin(szybko\u015b\u0107).&nbsp;<\/strong>W&nbsp;tym momencie tracimy dwa wspomniane piny(zero i jeden) &#8211; no c\u00f3\u017c, co\u015b za co\u015b. Parametr&nbsp;<strong>szybko\u015b\u0107<\/strong> musi by\u0107 na obu urz\u0105dzeniach taki sam, w przeciwnym przypadku urz\u0105dzenia si\u0119 &#8222;nie dogadaj\u0105&#8221;. W \u015brodowisku Arduino IDE wybieramy <strong>Monitor szeregowy<\/strong> (lub w angielskiej wersji: Serial Monitor) i nas\u0142uchujemy to, co nadaje do nas Arduino &#8211; to jest w\u0142a\u015bnie drugie urz\u0105dzenie, do kt\u00f3rego Arduino nadaje (prawy, g\u00f3rny r\u00f3g okienka z kodem programu)<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-824\" src=\"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/10\/serial01b.png\" alt=\"\" width=\"976\" height=\"338\" srcset=\"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/10\/serial01b.png 976w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/10\/serial01b-300x104.png 300w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/10\/serial01b-768x266.png 768w\" sizes=\"auto, (max-width: 976px) 100vw, 976px\" \/>Jak wspomnia\u0142em nale\u017cy sprawdzi\u0107, czy w okienku Monitora (portu) szeregowego parametry tramisji (szybko\u015b\u0107) jest taka sama, jak w programie Arduino &#8211; prawy, dolny r\u00f3g tego okienka.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-819\" src=\"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/11\/serial2.png\" alt=\"\" width=\"614\" height=\"405\" srcset=\"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/11\/serial2.png 614w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/11\/serial2-300x198.png 300w\" sizes=\"auto, (max-width: 614px) 100vw, 614px\" \/><\/p>\n<p>W przysz\u0142o\u015bci opowiem wi\u0119cej o tych parametrach transmisji oraz jak wysy\u0142a\u0107 dane do Arduino &#8211; ale to p\u00f3\u017aniej.<\/p>\n<p>Trzeba zapami\u0119ta\u0107 dwie funkcje wysy\u0142aj\u0105ce napisy z Arduino:<\/p>\n<ul>\n<li>Serial.print(&#8222;napis&#8221;) &#8212; wysy\u0142amy tekst&nbsp;<em>napis<\/em> do urz\u0105dzenia nas\u0142uchuj\u0105cego; tekst musi by\u0107 w cudzyms\u0142owiu (aka. psie uszy)<\/li>\n<li>Serial.println(&#8222;napis&#8221;) &#8212; wysy\u0142amy napis i znak przej\u015bcia do nowej linii &#8211; dzi\u0119ki temu kolejny napis pojawi si\u0119 w nowej linii.<\/li>\n<\/ul>\n<p>Te dwie funkcje w zupe\u0142no\u015bci wystarczaj\u0105, aby Arduino co\u015b do nas &#8222;m\u00f3wi\u0142o&#8221; \ud83d\ude09<\/p>\n<h2>millis()<\/h2>\n<p>Bardzo przydatna funkcja zwracaj\u0105ca liczb\u0119 milisekund od czasu rucuhomienia programu (w\u0142\u0105czenia\/zrestartowania Arduino). Do zapisywania danych zwracanych przez t\u0105 funkcj\u0119 nale\u017cy u\u017cy\u0107 typu&nbsp;<em>unsigned long<\/em> &#8211; wystarczy na oko\u0142o 50 dni. <a href=\"https:\/\/www.arduino.cc\/en\/Reference\/Millis\">Wi\u0119cej info tutaj.<\/a><\/p>\n<p>Dzi\u0119ki tej funkcji mo\u017cemy mierzy\u0107 czas wykonania jakiej\u015b czynno\u015bci. Aby to zrobi\u0107, musimy zapisa\u0107 &#8222;zegar&#8221; (aktualn\u0105 warto\u015b\u0107 milisekund, kt\u00f3ra sama w sobie nie jest istotna) do jednej zmiennej, powiedzmy t1, wykona\u0107 czasoch\u0142onne czynno\u015bci, a po nich ponownie zapyta\u0107 o &#8222;zegar&#8221; &#8211; i zapisa\u0107 do drugiej zmiennej, np. t2. R\u00f3\u017cnica t2 i t1 jest w\u0142a\u015bnie czasem wykonania konkretnej czynno\u015bci.<\/p>\n<h2>Przycisk (modu\u0142).<\/h2>\n<p>Dzi\u0119ki temu, \u017ce to jest przycisk z modu\u0142em, to jego obs\u0142uga jest bardzo prosta &#8211; musimy pod\u0142\u0105czy\u0107 zasilanie do modu\u0142u (Vcc do Arduino 5V, GND do Arduino GND, a pin sygna\u0142owy S &#8211; do dowolnego, wybranego przez nas pinu cyfrowego w Arduino &#8211; np. 7).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-817\" src=\"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/11\/przycisk-modul.jpeg\" alt=\"\" width=\"512\" height=\"378\" srcset=\"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/11\/przycisk-modul.jpeg 512w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2017\/11\/przycisk-modul-300x221.jpeg 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/p>\n<p>Nast\u0119pnie pami\u0119tajmy o poleceniu <strong>pinMode(7, INPUT)<\/strong>, kt\u00f3re spowoduje, \u017ce b\u0119dziemy mogli odczytywac stan przycisku za pomoc\u0105 <strong>digitalRead(7)<\/strong>. Je\u015bli przycisk jest wci\u015bni\u0119ty, to funkcja ta zwr\u00f3ci warto\u015b\u0107 1, w przeciwnym przypadku &#8211; warto\u015b\u0107 0 (zero).<\/p>\n<p>Koszt takiego modu\u0142u to oko\u0142o 3 z\u0142, nale\u017cy szuka\u0107 has\u0142a w stylu&nbsp;<em>Modu\u0142 przycisku tack switch z LED ARDUINO&nbsp;<\/em>(np. w serwisie Allegro).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dzi\u015b poznalismy trzy rzeczy: wypisywanie komunikat\u00f3w przez Arduino na ekran PC-ta, funkcj\u0119 &#8222;zegara&#8221; millis() oraz obs\u0142ug\u0119 przycisku (a w\u0142a\u015bciwie modu\u0142u z przyciskiem, nied\u0142ugo poznamy r\u00f3\u017cnice). Komunickacja z PC-tem Chodzi o komunikacj\u0119 szeregow\u0105 UART z wykorzystaniem dw\u00f3ch pin\u00f3w cyfrowych Rx\/Tx (piny numer zero i jeden). Uruchamiamy komunikacj\u0119 poleceniem&nbsp;Serial.begin(szybko\u015b\u0107).&nbsp;W&nbsp;tym momencie tracimy dwa wspomniane piny(zero i jeden) &#8211; [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":817,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[52],"tags":[177,176,174,96,175],"class_list":{"0":"post-816","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-fibot","8":"tag-millis","9":"tag-println","10":"tag-przycisk","11":"tag-serial","12":"tag-tact-swich","14":"post-with-thumbnail","15":"post-with-thumbnail-large"},"_links":{"self":[{"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/posts\/816","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=816"}],"version-history":[{"count":4,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/posts\/816\/revisions"}],"predecessor-version":[{"id":825,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/posts\/816\/revisions\/825"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/media\/817"}],"wp:attachment":[{"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}