久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6487|回復: 3
打印 上一主題 下一主題
收起左側

單片機PID循跡小車代碼

[復制鏈接]
跳轉到指定樓層
樓主
就是比較簡單的循跡小車,可以循黑線的那種,因為在學PID,所以給它加了個PD控制,不過效果不太好這是實現PID控制的主要代碼

  1. #include"PID.h"
  2. #include"Trace.h"

  3. extern  int flag;
  4. int    RK=6;   //固定基準,不能變得               


  5. int    KP=4;     //比例調節參數
  6. int    out;      //最后輸出結果
  7. //int   out0=40; //初始偏移分量
  8. int    Td=7;     //微分時間常數
  9. int    Ti=1;     //積分時間常數
  10. int    T =1;     //采樣周期
  11. int    Sk;       //積分,微分
  12. int    Dk;

  13. int  Ek[]={0,0,0,0,0};

  14. /*================================================================
  15. 將flag的值與RK=5相減,當右邊的紅外對管檢測到黑線時
  16. ,即flag為7  8  9  10 11  12時小車發生了左偏,增加左輪轉速,減小右輪

  17. 將flag的值與RK=5相減,當左邊的紅外對管檢測到黑線時
  18. ,即flag為5  4  3  2  1   0 時小車發生了右偏,增加右輪轉速,減小左輪
  19. //================================================================*/

  20. void  PID (int flag)
  21. {
  22.           Ek[4]=Ek[3];
  23.           Ek[3]=Ek[2];
  24.           Ek[2]=Ek[1];
  25.           Ek[1]=Ek[0];
  26.           Ek[0]=RK-flag;

  27. //Sk = (T/Ti)*(Ek[0]+Ek[1]+Ek[2]+Ek[3]+Ek[4]);
  28.      Dk = (Td/T)*(Ek[0]-Ek[1]);
  29.            out = KP*Ek[0]+Sk+Dk;
  30.            turn(25+out,25-out);
  31.        
  32.        

  33.                
  34. }
  35.        
復制代碼


extern  int flag;
int    RK=6;   

int    KP=4;  
int    out;   
//int   out0=40;
int    Td=7;   
int    Ti=1;  
int    T =1;  
int    Sk;      
int    Dk;

int  Ek[]={0,0,0,0,0};


void  PID (int flag)
{
          Ek[4]=Ek[3];
          Ek[3]=Ek[2];
          Ek[2]=Ek[1];
          Ek[1]=Ek[0];
          Ek[0]=RK-flag;

//Sk = (T/Ti)*(Ek[0]+Ek[1]+Ek[2]+Ek[3]+Ek[4]);
     Dk = (Td/T)*(Ek[0]-Ek[1]);
           out = KP*Ek[0]+Sk+Dk;
           turn(25+out,25-out);
        }




void xunji (void)
{
if(count ==200)//采樣周期
{
           if(input==0x77)//0111 0 111
        flag=6;

      else if(input==0x7b)//0111 0 01
        flag=7;
                  else if(input==0x7b)//0111 1 011
        flag=8;
                        else if(input==0x75)//0111 1 001
        flag=9;
      else if(input==0x7d)//0111 1 101
        flag=10;
                        else if(input==0x7c)//0111 1 100
        flag=11;
                  else if(input==0x7e)//0111 1 110
        flag=12;
                        else if(input==0x6d)//0110 0 111
        flag=5;
      else if(input==0x6f)//0110 1 111
        flag=4;
                        else if(input==0x4f)//0100 1 111                  
        flag=3;
                        else if(input==0x5f)//0101 1 111                  
        flag=2;
                        else if(input==0x1f)//0001 1 111                 
        flag=1;
                        else if(input==0x10)//0011 1 111         
        flag=0;


   count=0;
}

PID (flag);


}

全部資料51hei下載地址:
循跡小車PID算法.rar (42.84 KB, 下載次數: 133)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:871292 發表于 2021-1-30 12:13 | 只看該作者
非常感覺,剛好在學習做智能車底盤
回復

使用道具 舉報

板凳
ID:646870 發表于 2021-4-21 17:48 | 只看該作者
請問程序中定義input為P0系列口的目的是啥
回復

使用道具 舉報

地板
ID:789726 發表于 2021-4-25 18:57 | 只看該作者
剛好可以借鑒做小車
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 毛片在线视频 | 午夜影院在线观看视频 | 1000部精品久久久久久久久 | 夜夜操av| 成人区精品一区二区婷婷 | 成人深夜福利 | 日韩精品成人在线 | 一区二区免费 | 中文字幕高清在线 | 国产美女免费视频 | 国产露脸国语对白在线 | 亚洲性在线 | 精品成人av | 午夜网| 热久久久 | 国产精品福利一区二区三区 | 午夜欧美一区二区三区在线播放 | 激情福利视频 | 日韩中文一区 | 国产一区二区三区欧美 | 成人在线中文字幕 | 午夜性视频 | 国产精品免费一区二区 | 91一区二区三区在线观看 | 精品一区二区三区四区 | 国产精品一区二区三 | 久久精品网 | 能看的av网站 | 中文字幕在线三区 | 日韩一二三 | 国内精品99 | av网站在线免费观看 | 亚洲精品国产成人 | 欧美精品第一页 | 福利视频二区 | 岛国av在线免费观看 | 婷婷在线网站 | 成人免费观看男女羞羞视频 | 国产精品激情 | 第四色播日韩第一页 | 欧美一区二区三区的 |