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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3379|回復(fù): 2
收起左側(cè)

STM32 PID算法測(cè)試C語(yǔ)言程序?qū)崿F(xiàn) 0.96寸OLED顯示

[復(fù)制鏈接]
ID:303544 發(fā)表于 2019-7-21 12:09 | 顯示全部樓層 |閱讀模式

OLED顯示

OLED顯示


單片機(jī)源程序如下:
  1. #include "PID.h"

  2. /*以電機(jī)調(diào)速為例*/

  3. struct _pid{
  4.         float SetSpeed;       //設(shè)定值
  5.         float ActualSpeed;    //實(shí)際值
  6.         float err;            //偏差值
  7.         float err_last;       //上一個(gè)偏差值
  8.         float err_last_last;  //最上一個(gè)偏差值
  9.         float Kp, Ki, Kd;     //比例、積分、微分系數(shù)
  10. }pid;

  11. void PID_init()               //初始化
  12. {
  13.         pid.SetSpeed = 0.0;
  14.         pid.ActualSpeed = 0.0;
  15.         pid.err = 0.0;
  16.         pid.err_last = 0.0;
  17.         pid.err_last_last = 0.0;
  18.   pid.Kp = 0.2;               //可修改
  19.         pid.Ki = 0.015;             //可修改
  20.         pid.Kd = 0.2;               //可修改
  21. }

  22. float PID_realize(float Speed)
  23. {
  24.         float incrementSpeed;        //當(dāng)前值
  25.         pid.SetSpeed = Speed;        //用戶設(shè)定值
  26.         pid.err = pid.SetSpeed - pid.ActualSpeed;   //偏差值
  27.         incrementSpeed =pid.Kp*(pid.err - pid.err_last) + pid.Ki*pid.err + pid.Kd*(pid.err - 2 * pid.err_last_last + pid.err_last);
  28.         pid.ActualSpeed += incrementSpeed;   //實(shí)際輸出值
  29.         pid.err_last = pid.err_last_last;
  30.         pid.err_last_last = pid.err;
  31.         return pid.ActualSpeed;
  32. }
復(fù)制代碼
  1. /**********************PID算法測(cè)試C語(yǔ)言實(shí)現(xiàn)**************************/

  2. //  0.96寸OLED顯示   IIC通訊
  3. //              --------------------
  4. //              GND   電源地
  5. //              VCC   接5V或3.3v電源
  6. //              SCL   接PA5(SCL)
  7. //              SDA   接PA7(SDA)  
  8. //              --------------------
  9. #include "stm32f10x.h"
  10. #include "oled.h"
  11. #include "PID.h"

  12. int main(void)
  13.   {
  14.                 u32 count=0;

  15.                 OLED_Init();                        //初始化OLED  
  16.                 OLED_Clear();
  17.                 PID_init();
  18.         
  19.                 OLED_ShowChar(16,0,'P',16);
  20.                 OLED_ShowChar(24,0,'I',16);
  21.                 OLED_ShowChar(32,0,'D',16);
  22.                 OLED_ShowCHinese(44,0,0);
  23.                 OLED_ShowCHinese(60,0,1);
  24.                 OLED_ShowCHinese(76,0,2);
  25.                 OLED_ShowCHinese(92,0,3);
  26.                
  27.                 OLED_ShowCHinese(0,4,4);
  28.                 OLED_ShowCHinese(16,4,5);
  29.                 OLED_ShowCHinese(32,4,6);
  30.                 OLED_ShowChar(48,4,':',16);
  31.                
  32.                 OLED_ShowCHinese(0,6,7);
  33.                 OLED_ShowCHinese(16,6,8);
  34.                 OLED_ShowCHinese(32,6,9);
  35.                 OLED_ShowChar(48,6,':',16);
  36.                
  37.                 OLED_ShowChar(86,5,'.',12);
  38.                 OLED_ShowChar(86,7,'.',12);
  39.                
  40.                 OLED_ShowNum(56,5,(int)setspeed,5,12);  //顯示設(shè)定值整數(shù)部分
  41.                 OLED_ShowNum(93,5,(int)(setspeed*10)%10,1,12);  //顯示設(shè)定值小數(shù)部分
  42.                 OLED_ShowNum(99,5,(int)(setspeed*100)%10,1,12);
  43.                 OLED_ShowNum(105,5,(int)(setspeed*1000)%10,1,12);
  44.                 OLED_ShowNum(111,5,(int)(setspeed*10000)%10,1,12);
  45.         while(count<1000)
  46.         {
  47.           float Speed = PID_realize(setspeed);
  48.                 OLED_ShowNum(56,7,Speed,5,12);    //顯示當(dāng)前值整數(shù)部分
  49.                 OLED_ShowNum(93,7,(int)(Speed*10000)%10000,4,12);  //顯示當(dāng)前值及小數(shù)點(diǎn)后4位
  50.         }
  51. }
復(fù)制代碼


所有資料51hei提供下載:
PID算法測(cè)試.7z (184.24 KB, 下載次數(shù): 141)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:186249 發(fā)表于 2019-8-29 23:56 | 顯示全部樓層
這個(gè)怎么樣,下來(lái)看看
回復(fù)

使用道具 舉報(bào)

ID:423971 發(fā)表于 2020-4-16 23:23 | 顯示全部樓層
感謝樓主 學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩在线综合网 | 午夜影院在线观看 | 欧美精品久久 | 精品欧美一区二区三区久久久 | 中文在线一区二区 | 精品国产一区二区三区久久影院 | 日本特黄a级高清免费大片 国产精品久久性 | 国产精品久久二区 | 亚洲人人 | 欧美亚洲国产日韩 | 久草福利 | 国产毛片视频 | 亚洲午夜网 | 美女黄18岁以下禁止观看 | 超碰人人插 | 日韩中文字幕一区 | 综合色播 | 国产一区二区三区www | 香蕉一区二区 | 日本又色又爽又黄的大片 | 国产精品久久久久久久久久久久久 | 青青久草 | 欧洲色综合 | 国产真实乱对白精彩久久小说 | 91精品国产色综合久久 | 97av视频在线观看 | 欧美日韩国产一区二区 | 国产在线精品一区二区三区 | 伊人网国产 | 国产一区欧美 | 国产成人综合一区二区三区 | 在线观看成人小视频 | 亚洲国产精品成人 | 亚洲欧美在线一区 | 91黄色片免费看 | 色888www视频在线观看 | 亚洲国产成人精品一区二区 | 欧美精品区 | 日产久久 | 国产免费一区二区三区 | 欧美日韩网站 |