{"id":95,"date":"2016-05-03T20:55:57","date_gmt":"2016-05-03T20:55:57","guid":{"rendered":"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/?p=95"},"modified":"2016-05-05T11:06:02","modified_gmt":"2016-05-05T11:06:02","slug":"arduino-software-do-zderzakow-przerwania","status":"publish","type":"post","link":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/?p=95","title":{"rendered":"Arduino: software do zderzak\u00f3w &#8211; przerwania"},"content":{"rendered":"<p><iframe loading=\"lazy\" title=\"pojazd (a la iRubmba) ze zderzakami - Arduino mikrostyki\/microswitch\" width=\"720\" height=\"405\" src=\"https:\/\/www.youtube.com\/embed\/bI3VmDvkejY?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p>Zmodyfikowana wersja softu ze zderzakami &#8211; tym razem u\u017cy\u0142em <strong>przerwa\u0144<\/strong> i w przypadku klikni\u0119cia przeszkody &#8211; w przerwaniu zmieniam pomocnicz\u0105 zmienn\u0105 informuj\u0105c\u0105 o konieczno\u015bci cofni\u0119cia i zmiany kierunku ruchu. Dzia\u0142a nie\u017ale.<\/p>\n<p>Poprzednia wersja softu prowadzi\u0142a pojazd w danym kierunku z wykorzystaniem funkcji delay(ile\u015b-tam), a dopiero potem sprawdza\u0142a przyciski (mikrostyki) &#8211; to powodowa\u0142o, \u017ce gdy zderzenie nast\u0105pi\u0142o w czasie jazdy, to takie zdarzenie mog\u0142o nie by\u0107 zarejestrowane (nie zawsze si\u0119 zdarza\u0142o, \u017ce przycisk pozostawa\u0142 wci\u015bni\u0119ty po zako\u0144czenia delay). Tutaj rozwi\u0105za\u0142em to za pomoc\u0105 <strong>dw\u00f3ch przerwa\u0144<\/strong>&#8230; wiem &#8211; za du\u017co, ju\u017c w g\u0142owie mam lepszy algorytm, bez przerwa\u0144, ale to w nast\u0119pnym odcinku.<\/p>\n<p>Dla bardziej dociekliwych:<\/p>\n<pre class=\"lang:arduino decode:true \">#define LEFT_BTN 2\r\n#define RIGHT_BTN 3\r\n<\/pre>\n<p>(w przypadku Arduino UNO przerwania\u00a0<strong>tylko<\/strong> dla pin\u00f3w 2 i 3), dalej:<\/p>\n<pre class=\"lang:arduino decode:true \">pinMode(LEFT_BTN, INPUT_PULLUP);\r\npinMode(RIGHT_BTN, INPUT_PULLUP);\r\nattachInterrupt(digitalPinToInterrupt(LEFT_BTN), turn_right, LOW);\r\nattachInterrupt(digitalPinToInterrupt(RIGHT_BTN), turn_left, LOW);\r\n<\/pre>\n<p>to w setup()ie,<\/p>\n<p>a dwie funkcje turn_left() i turn_right() zmieniaj\u0105 pomocnicze zmienne nakazuj\u0105ce zmian\u0119 kierunku ruchu (w funkcji loop).<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Zmodyfikowana wersja softu ze zderzakami &#8211; tym razem u\u017cy\u0142em przerwa\u0144 i w przypadku klikni\u0119cia przeszkody &#8211; w przerwaniu zmieniam pomocnicz\u0105 zmienn\u0105 informuj\u0105c\u0105 o konieczno\u015bci cofni\u0119cia i zmiany kierunku ruchu. Dzia\u0142a nie\u017ale. Poprzednia wersja softu prowadzi\u0142a pojazd w danym kierunku z wykorzystaniem funkcji delay(ile\u015b-tam), a dopiero potem sprawdza\u0142a przyciski (mikrostyki) &#8211; to powodowa\u0142o, \u017ce gdy zderzenie [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[52],"tags":[],"class_list":["post-95","post","type-post","status-publish","format-standard","hentry","category-fibot"],"_links":{"self":[{"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/posts\/95","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=95"}],"version-history":[{"count":1,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/posts\/95\/revisions"}],"predecessor-version":[{"id":96,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/posts\/95\/revisions\/96"}],"wp:attachment":[{"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=95"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=95"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=95"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}