{"id":285,"date":"2021-10-24T08:11:00","date_gmt":"2021-10-24T00:11:00","guid":{"rendered":"http:\/\/hower.forwebs.net\/robot\/?p=285"},"modified":"2021-11-01T08:25:48","modified_gmt":"2021-11-01T00:25:48","slug":"%e7%ac%ac6%e5%a0%82-pid%e6%bc%94%e7%ae%97%e6%b3%95","status":"publish","type":"post","link":"https:\/\/hower.forwebs.net\/robot\/archives\/285","title":{"rendered":"\u7b2c6\u5802 PID\u6f14\u7b97\u6cd5"},"content":{"rendered":"\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video-container\"><iframe loading=\"lazy\" title=\"\u3010Arduino\u3011PID \u63a7\u5236\u6f14\u7b97\u7406\u8ad6\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/M7l6C77mVqY?feature=oembed&#038;wmode=opaque\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>\u786c\u9ad4\u7d44\u88dd<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped wp-block-gallery-1 is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"http:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2021\/10\/IMG20211024214602-1024x576.jpg\" alt=\"\" data-id=\"363\" data-full-url=\"http:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2021\/10\/IMG20211024214602-scaled.jpg\" data-link=\"http:\/\/hower.forwebs.net\/robot\/archives\/285\/img20211024214602\" class=\"wp-image-363\" srcset=\"https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2021\/10\/IMG20211024214602-1024x576.jpg 1024w, https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2021\/10\/IMG20211024214602-300x169.jpg 300w, https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2021\/10\/IMG20211024214602-768x432.jpg 768w, https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2021\/10\/IMG20211024214602-1536x864.jpg 1536w, https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2021\/10\/IMG20211024214602-2048x1152.jpg 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"http:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2021\/10\/IMG20211024214534-1024x576.jpg\" alt=\"\" class=\"wp-image-366\" srcset=\"https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2021\/10\/IMG20211024214534-1024x576.jpg 1024w, https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2021\/10\/IMG20211024214534-300x169.jpg 300w, https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2021\/10\/IMG20211024214534-768x432.jpg 768w, https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2021\/10\/IMG20211024214534-1536x864.jpg 1536w, https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2021\/10\/IMG20211024214534.jpg 2000w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/32oto1F8yP4KqMoVLaakJBrJudQpOZA5EAFM7OHEjGZECYb1UZbMI2plFE6FRodszG2LEHYaeB8oalkVctoxD0rmCxYI_xoAY11vMF54uSXNJc_zphAGvEOOqd_kUCQ3RkC-qrsJlN5eMUmc370b7JlYalto3gboI9rYzAIOQ4mh1DS1LbpQLxSoLoGny0RgFaphTvHiYFIMs5bq9CkyjDeofZtRV2MD0E0X60PIPkxFmBWSOFRN117wDDeXEX6cM-lznL6tpN1I20dQolDf5-KEbtdGPtiyU2TNi0Lh-uanRomQ69uucPwl2t5GXnzkmgI8mSZ6kInDRjIVZUS7D7QjF4ELmyclfHgy7s9uSfIPhDFVLL695bq68m143QM8uAJrNt-lR8dPZD2jun_2KjK910D4jJR1mVZFi3_hrVJtWm4mlhkZmg-vr-qYfcyRM6ScQsJnzzwH27mUKvMoNaz1rrZQlHPrQkqw2yqVXTKCoJ9FOgESZactlox7U_O-bhZMJE745yFfNpmiw_dpilOTKyDq0yZQmmFX7JPoyeZTcJYj9qDfmlrZCvtR4VoYrd8ckn5wEJEpOz0URSZgwxN85FNHEdXmG_sqRlrHEU9-BnrfxVCMEtDA9n34TEosS79bVbHgoJP_lgHRrYzmvEciGNI4PC_IekaHkpgyPUPgQZWqxLqpvLPnb693QCjqKiidTKIZmPNe2W1u1tpQThmezA=w1666-h937-no?authuser=0\" alt=\"\"\/><\/figure>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>\u63a5\u7dda<\/p>\n\n\n\n<p>\u8235\u6a5fpin8<\/p>\n\n\n\n<p>\u8d85\u97f3\u6ce2trig 3, echo 4<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p id=\"PID\u53c3\u8003\u7a0b\u5f0f\">PID\u53c3\u8003\u7a0b\u5f0f<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;Servo.h&gt;\nServo servo8;\n#include &lt;HCSR04.h&gt;\nHCSR04 hc(3,4);\n\nint angle;\nfloat time, distance;\nfloat setPoint=11; \/\/\u4e2d\u5fc3\u8ddd\u96e2\nfloat error, previous_error;\nfloat kp=10; \/\/10\nfloat ki=0.05; \/\/0.05\nfloat kd=200; \/\/200\nint dt=50; \nfloat P,I,D,PID;\n\n\nvoid setup() {\n  Serial.begin(9600);\n  servo8.attach(8);\n  time = millis();\n}\n\n\nvoid loop() {\n  if (millis() &gt; time + dt){\n    time = millis();\n    distance = hc.dist();\n    error = distance-setPoint;\n    \n    P = kp*error;  \/\/**********************************P\n    \n    if(-4 &lt; error &amp;&amp; error &lt; 4){\n      I=I+ki*error;  \/\/********************************I\n    }else{\n    I = 0;\n    }\n\n    D = kd*((error - previous_error)\/dt); \/\/***********D\n\n    PID=P + I + D ; \/\/*********************************PID\n\n    if (PID&gt;200){\n      PID=200;\n    }\n    if (PID&lt;-200){\n      PID=-200;\n    }\n    \n    previous_error=error; \/\/\u4e0b\u4e00\u500b\u8ff4\u5708\u7528\uff0c\u4e00\u5b9a\u8981\u5beb\u5728\u4e0b\u9762\u9019\u908a\n\n  Serial.print(\"Distance: \"); Serial.print(distance);\n  Serial.print(\"Error: \"); Serial.print(error); \n  Serial.print(\" P: \"); Serial.print(P);\n  Serial.print(\" D: \"); Serial.print(D);\n  Serial.print(\" I: \"); Serial.print(I);\n  Serial.print(\" PID: \"); Serial.println(PID);\n\n  angle = map(PID, -200,200,120,90);\n  servo8.write(angle);\n  \n  }\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>\u8235\u6a5f\u56fa\u5b9a\u572890\u5ea6\u4ee3\u78bc<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;Servo.h&gt; \nServo myservo8;\n\nvoid setup() {\n  myservo8.attach(8); \n}\n\nvoid loop() {\n  myservo8.write(90);\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u786c\u9ad4\u7d44\u88dd \u63a5\u7dda \u8235\u6a5fpin8 \u8d85\u97f3\u6ce2trig 3, echo 4 P&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":351,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[],"_links":{"self":[{"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/posts\/285"}],"collection":[{"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/comments?post=285"}],"version-history":[{"count":13,"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/posts\/285\/revisions"}],"predecessor-version":[{"id":419,"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/posts\/285\/revisions\/419"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/media\/351"}],"wp:attachment":[{"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/media?parent=285"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/categories?post=285"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/tags?post=285"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}