{"id":1841,"date":"2019-07-04T13:05:13","date_gmt":"2019-07-04T13:05:13","guid":{"rendered":"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/?p=1841"},"modified":"2019-07-05T16:59:29","modified_gmt":"2019-07-05T16:59:29","slug":"sterowanie-serwem-za-pomoca-joysticka-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-3-2-2-4-2-2-2-2-2-2-3-2-2-2-2-2","status":"publish","type":"post","link":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/?p=1841","title":{"rendered":"Precyzyjna Maszyna oraz RPM"},"content":{"rendered":"<h2>Obroty na minut\u0119: RPM (czujka pola magnetycznego SS49E)<\/h2>\r\nPan Przemek uko\u0144czy\u0142 kod, kt\u00f3ry zlicza obroty wiruj\u0105cego silniczka &#8211; brawo! Nale\u017cy si\u0119 pochwa\u0142a, bo to jego pierwsze zmagania z Arduino.\r\n\r\nUk\u0142ad do\u015bwiadczalny:<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-1854\" src=\"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/bDSC_7405-1024x576.jpg\" alt=\"\" width=\"640\" height=\"360\" srcset=\"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/bDSC_7405-1024x576.jpg 1024w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/bDSC_7405-300x169.jpg 300w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/bDSC_7405-768x432.jpg 768w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/bDSC_7405.jpg 1800w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/>\r\n\r\nW uk\u0142adzie celowo zamontowano magnesy tak, by czujka SS49E &#8222;widzia\u0142a&#8221; raz biegun p\u00f3\u0142nocny (N) magnesu, a za drugim razem (gdy silniczek obr\u00f3ci sie o 180 stopni) biegun po\u0142udniowy (S). Ustawienie magnes\u00f3w na ko\u0144cach patyka nie jest wi\u0119c przypadkowe \ud83d\ude09 Czujnik SS49E odczytuje zar\u00f3wno biegun S jak i N (uwaga: nie wszystkie czujki pola magnetycznego, bazuj\u0105cego na efekcie Halla, tak maj\u0105 &#8211; warto to sprawdzi\u0107 przed zakupejm), dlatego widzimy dwa &#8222;piki&#8221; podczas obracania silniczka &#8211; jeden &#8222;do g\u00f3ry&#8221; (wi\u0119ksze napi\u0119cie) oraz &#8222;do do\u0142u&#8221; (napi\u0119cie mniejsze). Z dala od magnes\u00f3w czujka zwraca napi\u0119cie ~2.5V informuj\u0105c, \u017ce warto\u015b\u0107 pola magnetycznego jest (oko\u0142o) zera. Poni\u017cej wykres z <em>Kre\u015blarki<\/em>\r\n\r\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1885\" src=\"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/wiatrak1.png\" alt=\"\" width=\"776\" height=\"634\" srcset=\"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/wiatrak1.png 776w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/wiatrak1-300x245.png 300w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/wiatrak1-768x627.png 768w\" sizes=\"auto, (max-width: 776px) 100vw, 776px\" \/>\r\n\r\nProgram zliczaj\u0105cy liczb\u0119 obrot\u00f3w na sekund\u0119 (zmienna <em>czas<\/em> &#8211; aktualnie 1000ms, ale mo\u017cna zmieni\u0107, tak\u017ce przez krotno\u015b\u0107 &#8211; zmienna <em>krok<\/em>). Algorytm polega na znajdowaniu maksimum i minimum napi\u0119cia &#8211; a zapisywane jest moment ich wyst\u0105pienia (do zmiennych <em>t_1<\/em>oraz <em>t_2<\/em>, odpowiednio). R\u00f3\u017cnica tych czas\u00f3w do p\u00f3\u0142 obrotu.\r\n<pre class=\"lang:arduino decode:true\" title=\"liczba-obrotow \">void setup() {\r\nSerial.begin(9600);\r\n}\r\n\r\nint i,max_=518,min_=518,a=0,b=0,czas,n=0,krok=1;\r\nfloat v;\r\nlong int t_1=0,t_2=0,t_k=0,t_3=0,t_p;\r\n\r\nvoid loop(){\r\n t_p=millis();\r\n czas=1000;\r\n i=analogRead(A0);\r\n if(i&gt;540){\r\n   if(i&gt;max_){\r\n    max_=i;\r\n    t_1=millis();\r\n   }\r\n   else if(i&lt;max_){\r\n    a=1;\r\n   }\r\n }\r\n if(i&lt;490){\r\n   if(i&lt;min_){\r\n    min_=i;\r\n    t_2=millis();  \r\n    }\r\n   else if(i&gt;min_){ \r\n    b=1; \r\n  }\r\n }\r\n\r\n if(t_1&gt;t_2){\r\n  t_3=t_2;\r\n }\r\n else{\r\n  t_3=t_1;\r\n }\r\n \r\n if(a==1&amp;&amp;b==1){\r\n    t_k=abs(t_2-t_1);\r\n    a=0;\r\n    b=0;\r\n    max_ = 518;\r\n    min_ = 518;\r\n    if(czas&gt;t_3){\r\n      n++;\r\n    }\r\n    else if(czas&lt;t_3){\r\n    Serial.print(\"Liczba pol-obrotow: \");\r\n    Serial.println(n);\r\n    n=0;\r\n    krok++;\r\n    czas=czas*krok;\r\n    }\r\n }\r\n }\r\n<\/pre>\r\nZmienna <em>n<\/em> (ma\u0142e n) zlicza wyst\u0105pienia &#8222;p\u00f3\u0142obrot\u00f3w&#8221;, a co ustalony <em>czas<\/em> wypisywany jest komunikat z t\u0105 liczb\u0105. W ten spos\u00f3b mamy w\u0142a\u015bnie p\u00f3\u0142-RPS (<span lang=\"en\">revolutions per second<\/span>), z kt\u00f3rego \u0142atwo mo\u017cna ju\u017c otrzyma\u0107 RPM (<a href=\"https:\/\/pl.wikipedia.org\/wiki\/RPM_(jednostka_miary)\"><span lang=\"en\">revolutions per minute<\/span><\/a>).\r\n<h2>Precyzyjna Maszyna<\/h2>\r\nSpr\u0119\u017cynka nie wytrzyma\u0142a &#8211; chyba by\u0142a zbyt twarda \ud83d\ude41\r\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-1842\" src=\"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/DSC_7413-1024x576.jpg\" alt=\"\" width=\"640\" height=\"360\" srcset=\"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/DSC_7413-1024x576.jpg 1024w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/DSC_7413-300x169.jpg 300w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/DSC_7413-768x432.jpg 768w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/>\r\n\r\nNowy model powinien by\u0107 lepszy &#8211; bo wydrukowany z Z-Ultratu:\r\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-1843\" src=\"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/DSC_7412-1024x576.jpg\" alt=\"\" width=\"640\" height=\"360\" srcset=\"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/DSC_7412-1024x576.jpg 1024w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/DSC_7412-300x169.jpg 300w, https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/DSC_7412-768x432.jpg 768w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/>\r\n\r\nNo i mamy coraz lepsz\u0105 prac\u0119 Maszyny:\r\n\r\n<div style=\"width: 720px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-1841-1\" width=\"720\" height=\"405\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/MOV_7414.mp4?_=1\" \/><a href=\"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/MOV_7414.mp4\">http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/wp-content\/uploads\/sites\/6\/2019\/07\/MOV_7414.mp4<\/a><\/video><\/div>\r\n\r\nWi\u0119cej o projekcie Maszyny na <a href=\"http:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/?page_id=1734\">stronie projektu<\/a>.\r\n<p style=\"text-align: right;\"><em>(c) K.G.<\/em><\/p>\r\n<!-- \/wp:post-content -->","protected":false},"excerpt":{"rendered":"<p>Obroty na minut\u0119: RPM (czujka pola magnetycznego SS49E) Pan Przemek uko\u0144czy\u0142 kod, kt\u00f3ry zlicza obroty wiruj\u0105cego silniczka &#8211; brawo! Nale\u017cy si\u0119 pochwa\u0142a, bo to jego pierwsze zmagania z Arduino. Uk\u0142ad do\u015bwiadczalny: W uk\u0142adzie celowo zamontowano magnesy tak, by czujka SS49E &#8222;widzia\u0142a&#8221; raz biegun p\u00f3\u0142nocny (N) magnesu, a za drugim razem (gdy silniczek obr\u00f3ci sie o [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":1846,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[52],"tags":[310,67,321,323,309,312,308,102,322],"class_list":{"0":"post-1841","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-fibot","8":"tag-a4988","9":"tag-analogread","10":"tag-bbcode","11":"tag-czujka-pola","12":"tag-krokowe","13":"tag-maker-beam","14":"tag-maszyna","15":"tag-ss49e","16":"tag-wiatr","18":"post-with-thumbnail","19":"post-with-thumbnail-large"},"_links":{"self":[{"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/posts\/1841","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=1841"}],"version-history":[{"count":8,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/posts\/1841\/revisions"}],"predecessor-version":[{"id":1894,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/posts\/1841\/revisions\/1894"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=\/wp\/v2\/media\/1846"}],"wp:attachment":[{"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1841"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1841"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/physics.uwb.edu.pl\/wf\/fi-bot\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1841"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}