{"id":1921,"date":"2020-06-20T13:07:48","date_gmt":"2020-06-20T11:07:48","guid":{"rendered":"http:\/\/tech4.pl\/SQ9MDD\/?p=1921"},"modified":"2020-06-20T13:07:48","modified_gmt":"2020-06-20T11:07:48","slug":"pomiar-napiecia-za-pomoca-arduino","status":"publish","type":"post","link":"https:\/\/sq9mdd.hamspirit.pl\/?p=1921","title":{"rendered":"Pomiar Napi\u0119cia za pomoc\u0105 Arduino"},"content":{"rendered":"<p>S\u0142\u00f3w kilka na temat arduino i dzielnika napi\u0119cia. Prosty przyk\u0142ad dla nie zaawansowanych.<\/p>\n<p><!--more--><\/p>\n<p>Chc\u0105c wykona\u0107 pomiar napi\u0119cia za pomoc\u0105 arduino nale\u017cy zadba\u0107 by napi\u0119cie zasilaj\u0105ce uk\u0142ad by\u0142o jak najbardziej stabilne. Je\u015bli jednak nie mamy takiej\u00a0 mo\u017cliwo\u015bci mo\u017cemy u\u017cy\u0107 wewn\u0119trznego napi\u0119cia odniesienia dla komparatora. Napi\u0119cie kt\u00f3re b\u0119dziemy mierzy\u0107 musimy obni\u017cy\u0107 za pomoc\u0105 dzielnika napi\u0119\u0107 na dw\u00f3ch rezystorach w taki spos\u00f3b by maksymalna jego warto\u015b\u0107 mie\u015bci\u0142a si\u0119 w zakresie do 1,1V.<\/p>\n<p>Ok wi\u0119c zr\u00f3bmy prosty przyk\u0142ad. Uk\u0142ad zasilam z akumulatora 18650. Napi\u0119cie z baterii za pomoc\u0105 dw\u00f3ch opornik\u00f3w podaj\u0119 na wej\u015bcie A0 arduino, jak na schemacie poni\u017cej. Kondensator w tym uk\u0142adzie ma za zadanie wyg\u0142adza\u0107 odczyt.<\/p>\n<p><a href=\"http:\/\/10.9.48.151\/?attachment_id=1923\" rel=\"attachment wp-att-1923\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1923\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2020\/06\/dzielnik-300x182.png\" alt=\"\" width=\"300\" height=\"182\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/06\/dzielnik-300x182.png 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/06\/dzielnik.png 337w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Napi\u0119cie dla ogniwa 18650 wynosi maksymalnie 4,2V bateria jest w pe\u0142ni na\u0142adowana. Musimy dobra\u0107 warto\u015b\u0107 R1 i R2 w taki spos\u00f3b by napi\u0119cie wej\u015bciowe zosta\u0142o zmniejszone do poziomu mniejsze lub r\u00f3wne 1,1V.<br \/>\nZ poni\u017cszego wzoru wyliczymy napi\u0119cie wyj\u015bciowe dzielnika podstawiamy do Uwe = 7,4 i dobieramy warto\u015bci R1 i R2 by ich suma by\u0142a powy\u017cej 1MOhm (tak by pr\u0105d p\u0142yn\u0105cy mi\u0119dzy akumulatorem a mas\u0105 uk\u0142adu by\u0142 jak najmniejszy, nie chcemy roz\u0142adowa\u0107 akumulatora tylko dlatego \u017ce sprawdzamy jego napi\u0119cie), a warto\u015b\u0107 Uwy by\u0142a mniejsza lub r\u00f3wna 1,1V<\/p>\n<p><a href=\"http:\/\/10.9.48.151\/?attachment_id=1927\" rel=\"attachment wp-att-1927\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1927\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2020\/06\/obliczenie-Uwy-300x107.png\" alt=\"\" width=\"300\" height=\"107\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/06\/obliczenie-Uwy-300x107.png 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/06\/obliczenie-Uwy.png 351w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Mo\u017cemy te\u017c przeliczy\u0107 to nieco inaczej, czyli wiemy \u017ce zakres pomiarowy wej\u015bcia na arduino skonfigurowali\u015bmy do napi\u0119cia 1,1V wi\u0119c u\u017cywaj\u0105c poni\u017cszego wzoru mo\u017cemy obliczy\u0107 jakie maksymalne napi\u0119cie zmierzy nasz uk\u0142ad wyposa\u017cony w dzielnik napi\u0119cia.<\/p>\n<p><a href=\"http:\/\/10.9.48.151\/?attachment_id=1928\" rel=\"attachment wp-att-1928\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1928\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2020\/06\/obliczenie-Uwe-max-300x97.png\" alt=\"\" width=\"300\" height=\"97\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/06\/obliczenie-Uwe-max-300x97.png 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/06\/obliczenie-Uwe-max.png 374w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Po obliczeniu warto\u015bci rezystor\u00f3w pod\u0142\u0105czamy arduino do komputera, pod\u0142\u0105czamy ogniwo 18650 do arduino poprzez dzielnik napi\u0119cia.<\/p>\n<p><a href=\"http:\/\/10.9.48.151\/?attachment_id=1936\" rel=\"attachment wp-att-1936\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1936\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2020\/06\/photo_2020-06-20_13-00-02-300x150.jpg\" alt=\"\" width=\"300\" height=\"150\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/06\/photo_2020-06-20_13-00-02-300x150.jpg 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/06\/photo_2020-06-20_13-00-02-1024x512.jpg 1024w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/06\/photo_2020-06-20_13-00-02-768x384.jpg 768w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/06\/photo_2020-06-20_13-00-02.jpg 1280w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>I po wgraniu prostego programu mo\u017cemy zobaczy\u0107 co si\u0119 dzieje.<\/p>\n<pre>void setup(){\nSerial.begin(115200);\npinMode(A0,INPUT);\n}\n\nvoid loop(){\nint adc_val = analogRead(A0);\nSerial.println(adc_val);\ndelay(1000);\n}\n<\/pre>\n<p>Po uruchomieniu programu, dzi\u0119ki funkcji &#8222;analogRead&#8221; powinni\u015bmy zobaczy\u0107 odczyt warto\u015bci z przetwornika ADC do kt\u00f3rego pod\u0142\u0105czony jest akumulator.<\/p>\n<p><a href=\"http:\/\/10.9.48.151\/?attachment_id=1930\" rel=\"attachment wp-att-1930\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1930\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2020\/06\/pomiar-adc-300x149.png\" alt=\"\" width=\"300\" height=\"149\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/06\/pomiar-adc-300x149.png 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/06\/pomiar-adc.png 684w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Oczywi\u015bcie jest to warto\u015b\u0107 z przetwornika analogowo cyfrowego. Procesor Atmega 328, kt\u00f3ry jest sercem arduino jest wyposa\u017cony w przetwornik 10bitowy oznacza to \u017ce ka\u017cda warto\u015b\u0107 napi\u0119cia jaka tam trafia jest przedstawiana w postaci liczby w zakresie od 0 do 1023.<br \/>\nA to dlatego \u017ce za pomoc\u0105 10 bit\u00f3w mo\u017cemy zapisa\u0107 1024 kombinacji liczbowych (2^10 = 1024, zakres 0 &#8211; 1023).<\/p>\n<p>Kolejny krok to kalibracja pomiaru, mierzymy za pomoc\u0105 omomierza nasze rezystory, gdy\u017c ka\u017cdy zawsze posiada jak\u0105\u015b odchy\u0142k\u0119 od parametru nominalnego. Odchy\u0142ki te s\u0105 zale\u017cne od wielu czynnik\u00f3w, a zw\u0142aszcza te\u017c od temperatury otoczenia.<\/p>\n<p>Moje rezystory maj\u0105 warto\u015b\u0107i:<br \/>\nR1 = 1756KOhm<br \/>\nR2 = 471KOhm<\/p>\n<p>Korzystaj\u0105c ze wzor\u00f3w powy\u017cej wyliczam sobie jakie maksymalne napi\u0119cie wej\u015bciowe jestem w stanie zmierzy\u0107<\/p>\n<pre>Uwe-max = 1,1 * (R1 + R2) \/ R2\nUwe-max = 1,1 * (1756 + 471) \/ 471\nUwe-max = 5,2010615711\n<\/pre>\n<p>Teraz mog\u0119 przeliczy\u0107 jak\u0105 warto\u015b\u0107 napi\u0119cia przypada na jeden bit przetwornika<\/p>\n<pre>Ubit = Uwe-max \/ Ubit-max\nUbit = 5,2010615711 \/ 1023\nUbit = 0,0050841267\n<\/pre>\n<p>Teraz wystarczy w programie arduino na bie\u017c\u0105co przelicza\u0107 warto\u015b\u0107 z przetwornika ADC na napi\u0119cie, poni\u017cej zmodyfikowany program.<\/p>\n<pre>void setup(){\nSerial.begin(115200);\npinMode(A0,INPUT);\n}\n\nvoid loop(){\nint adc_val = analogRead(A0);\nfloat Ubat = adc_val * 0.0050841267;\nSerial.print(adc_val);\nSerial.print(\" - \");\nSerial.print(Ubat);\nSerial.println(\"V\");\ndelay(1000);\n}\n<\/pre>\n<p>Po uruchomieniu programu zobaczymy co\u015b takiego jak poni\u017cej.<\/p>\n<p><a href=\"http:\/\/10.9.48.151\/?attachment_id=1933\" rel=\"attachment wp-att-1933\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1933\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2020\/06\/pomiar-u-300x149.png\" alt=\"\" width=\"300\" height=\"149\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/06\/pomiar-u-300x149.png 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2020\/06\/pomiar-u.png 685w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Prawda \u017ce proste?<\/p>\n<p>R.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>S\u0142\u00f3w kilka na temat arduino i dzielnika napi\u0119cia. Prosty przyk\u0142ad dla nie zaawansowanych.<\/p>\n","protected":false},"author":2,"featured_media":1936,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,10],"tags":[],"class_list":["post-1921","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-diy"],"_links":{"self":[{"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/posts\/1921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1921"}],"version-history":[{"count":0,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/posts\/1921\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/media\/1936"}],"wp:attachment":[{"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1921"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1921"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}