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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

PID熱電偶溫控器制作 Arduino源程序(最終版)

  [復制鏈接]
回帖獎勵 75 黑幣 回復本帖可獲得 3 黑幣獎勵! 每人限 1 次(中獎概率 50%)
跳轉到指定樓層
樓主
引腳對應       avr            arduino

加熱器1       PB4            10                        只能使用PB_XX端口
加熱器2       PH5            8                          只能使用PH_XX端口, 詳細見TIMER.h     #define

熱電偶MAX6675   硬件spi
CS                PB0               53                     詳細見SPIMAX6675.h,只能使用PB_XX端口

SCk              PB1               52                     不要改

S0                PB3(MISO)     50                     不要改
加熱棒       12v   40W (3d打印機噴頭)

PID的3個參數如果加熱器相同基本不需要修改,我的參數,謙虛的說只能保持+-3度左右的一個誤差,細心的網友可以繼續調一調。

程序多使用寄存器操作,具體詳見手冊。使用arduino框架。
程序里面包括了NTC熱敏電阻的ADC,軟件濾波,二分查表的內容,因為那個表格兼容性不好,所以這次只使用熱電偶。
有能力的網友可以更改并使用,請閱讀NTC.h     #define TABLE_LONG  (列表長度)


這個程序已經連續更改3次了,點開主頁看以前的。









紅      pid輸出
藍      當前溫度
綠      目標溫度

Arduino源程序如下:
  1. #include "Arduino.h"
  2. #include "NTC.h"
  3. #include "PID.h"
  4. #include "TIMER.h"
  5. #include "DELAY.h"
  6. #include "SPI_MAX6675.h"

  7. TEMP_PID heart(7.19, 0.40, 32.4, 1, 2048);
  8. TEMP_PID bed(10, 0.023, 305.4, 0.95, 2048);

  9. NTC NTC_1(A13);
  10. NTC NTC_2(A14);
  11. float MAX;

  12. void setup(void)
  13. {
  14.   
  15.   Serial.begin(115200);
  16.   spi_init();
  17.   heart.temp_pid_change_target(200);
  18.   bed.temp_pid_change_target(0);
  19.   temp_timer_port_init();
  20.   temp_timer_on();

  21. }

  22. void loop(){
  23. MAX=spi_read_temp();
  24. delay_nms(1000);
  25.   //NTC_1.temp_ntc_read();
  26.   //NTC_2.temp_ntc_read();
  27.   /*
  28. if(Serial2.available()>6){
  29. float a=Serial2.parseFloat();
  30. float b=Serial2.parseFloat();
  31. float c=Serial2.parseFloat();

  32. heart.temp_pid_change_kp(a);
  33. heart.temp_pid_change_ki(b);
  34. heart.temp_pid_change_kd(c);
  35. Serial2.println("***********************");
  36. Serial2.println(a);
  37. Serial2.println(b);
  38. Serial2.println(c);
  39. Serial2.println("***********************");
  40.   }
  41.   */
  42. }
復制代碼

所有資料51hei提供下載:
2020_2_27 PID temperature.zip (921.48 KB, 下載次數: 191)

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:435676 發表于 2021-3-28 16:07 | 只看該作者
建議采集ADC不要用開發板自帶的因為精度不高,您可以加個其他的ADS采集精度高的。可能會降低誤差
回復

使用道具 舉報

板凳
ID:32574 發表于 2021-4-8 21:24 | 只看該作者
謝謝樓主分享,這個可以用來做電烙鐵嗎?
回復

使用道具 舉報

地板
ID:276685 發表于 2021-4-11 14:11 | 只看該作者
redtxd 發表于 2021-4-8 21:24
謝謝樓主分享,這個可以用來做電烙鐵嗎?

可以的。不過加熱器需要更換,升溫,恒溫。降溫再調,非常耗費時間,需要耐心。如果改端口需要注意下,如#define SPI-CS-PIN。  DDRB/=(1<<SPI-CS-PIN);。這端口也僅僅限制于PBxx了。改成PAxx就需要DDRB用DDRA替換。也就是說你需要一張芯片端口圖和arduino端口圖,在proteus中可以找到。理論上除了硬件spi,其他端口都可以更改。
回復

使用道具 舉報

5#
ID:907804 發表于 2021-4-21 09:23 | 只看該作者
本帖最后由 dxxiaoyun 于 2021-4-21 15:30 編輯

下載下來的庫文件頭文件放怎么放到arduino IDE目錄里?
我用的是繼電器,不用PDI 直接溫度到了動作差+0~6度。

回復

使用道具 舉報

6#
ID:907804 發表于 2021-4-21 09:24 | 只看該作者
我用的是繼電器,不用PDI 直接溫度到了動作差+0~6度。
回復

使用道具 舉報

7#
ID:276685 發表于 2021-4-24 00:17 | 只看該作者
dxxiaoyun 發表于 2021-4-21 09:23
下載下來的庫文件頭文件放怎么放到arduino IDE目錄里?

您好,arduino ide。點擊項目,添加文件(有的版本不能一次添加,需要操作數次)繼電器根場效應管控制的最大區別就是pwm頻率。單片機自帶的硬件pwm頻率很顯然不適用,因為他頻率太高了,會降低加熱棒壽命。我采用ctc中斷模式進行軟件pwm大約7.68hz,更改中斷頻率就可以降低pwm頻率,OCR0A寄存器和CS20/21/22。可以調整你想要的頻率。
回復

使用道具 舉報

8#
ID:276685 發表于 2021-4-24 00:31 | 只看該作者

RE: PID熱電偶溫控器制作 Arduino源程序(最終版)

dxxiaoyun 發表于 2021-4-21 09:23
下載下來的庫文件頭文件放怎么放到arduino IDE目錄里?

我用的定時器0所以是OCR0A,CS02,CS01,CS00。你如果要是新手的話先示波器看一遍波形。proteus仿真一下加熱器大概了解一下,心里有底再買些材料再回來實驗。
回復

使用道具 舉報

9#
ID:276685 發表于 2021-4-28 20:17 | 只看該作者
有部分網友反應不會添加項目文件到IDE,這里我直接分享一個全部添加好了的


PID_TEMP_2021_4_24.zip (7.78 KB, 下載次數: 46)

如果哪位網友想想學習PIO開發環境的可以參考以下鏈接
https://blog.csdn.net/qq_39080978/article/details/114879766
https://blog.csdn.net/acktomas/article/details/115393834

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

10#
ID:934508 發表于 2021-6-8 13:59 | 只看該作者
您好,想問問如果測溫熱電偶要從max6675改到ntc100k需要改哪些參數,以及使用ramps時需要怎么接線(有沒有實際接線引腳圖或說明)?非常感謝!
回復

使用道具 舉報

11#
ID:276685 發表于 2021-6-9 00:00 | 只看該作者
liu97 發表于 2021-6-8 13:59
您好,想問問如果測溫熱電偶要從max6675改到ntc100k需要改哪些參數,以及使用ramps時需要怎么接線(有沒有 ...



這里加熱器1(加熱棒)應該連接的是第10引腳也就是PB4,熱敏電阻A13,A14.目前就兩個加熱器,理論上你可以擴展n個
NTC.h,#define TABLE_LONG  (列表長度)更改你自己的
列表展示了ADC 0~1024,對應的溫度值(攝氏度)請依據實驗和上拉電阻的大小靈活調整。相鄰兩數據進行線性插補,二分法進行快速查表。
TIMER.cpp 第77行更改如下;

   77    PWM.temp_soft_pwm1_duty=(int) heart.temp_pid_manger(NTC_1.temp_ntc_now());
   78    PWM.temp_soft_pwm2_duty=(int) bed.temp_pid_manger( NTC_2.temp_ntc_now());





main.cpp  更改成這個樣子


28 //MAX=spi_read_temp();
29  delay_nms(500);




30  NTC_1.temp_ntc_read();
31  NTC_2.temp_ntc_read();











RAMPS_1.4_PIN.jpg (237.26 KB, 下載次數: 230)

RAMPS_1.4_PIN.jpg
回復

使用道具 舉報

12#
ID:215949 發表于 2021-6-29 09:34 | 只看該作者
感謝樓主分享,正好在做一個需要PID溫度控制的課題,參考一下
回復

使用道具 舉報

13#
ID:462629 發表于 2021-12-28 10:12 | 只看該作者
能改成51的嗎?
回復

使用道具 舉報

14#
ID:228452 發表于 2022-4-9 01:11 | 只看該作者
"Can it be changed to 51?"
For 51 it is quite different  but possible..

Maybe it is time to switch to
MAX31855
K-, J-, N-, T-, S-, R-, or E-type thermocouple. The data is output in a signed 14-bit, SPI...
Thanks for code..
回復

使用道具 舉報

15#
ID:276685 發表于 2022-4-9 20:06 | 只看該作者
mick32 發表于 2022-4-9 01:11
"Can it be changed to 51?"
For 51 it is quite different  but possible..

首先謝謝你的建議。細心看這個程序是由許多不足的。首先這里spi通訊是針對寄存器和儀表轉換芯片寫的驅動,兼容性就差了許多,此外還缺少一個觀察器來檢測系統運行狀態。遺憾的是我手頭沒有51系列開發板也沒有這方面的編程經驗,這個項目下一步會有一個自動pid校準器與可調溫度曲線類似回流焊。并使用32位芯片來接替。

以下建議希望對你有幫助max31855可以使用軟件spi進行通訊。你可以直接下載開源庫進行通訊,然后xxx.temp_pid_manger(”A::這里直接輸入一個攝氏溫度即可“)計算參數后注入軟件pwm占空比;。要注意的是A段程序是刷新溫度.而不是!發送測量質量等待然后返回!。測量指令要在loop里面執行。
回復

使用道具 舉報

16#
ID:992285 發表于 2022-4-11 15:24 | 只看該作者
謝謝樓主,最近折騰PT100
回復

使用道具 舉報

17#
ID:593198 發表于 2022-10-8 09:48 | 只看該作者
下載了,學習一下PID.
回復

使用道具 舉報

18#
ID:1052464 發表于 2022-11-17 16:24 | 只看該作者
為啥庫文件導不進去呀
回復

使用道具 舉報

19#
ID:276685 發表于 2022-11-21 21:36 | 只看該作者
小黑黑2333 發表于 2022-11-17 16:24
為啥庫文件導不進去呀

是不是因為文件名稱大寫,或者你直接下載IDE版本的.沒刷出來手動弄一下
回復

使用道具 舉報

20#
ID:1063633 發表于 2023-2-20 18:11 | 只看該作者
最近在學習溫控,學習下
回復

使用道具 舉報

21#
ID:1087019 發表于 2023-7-3 14:51 | 只看該作者
最近在學習溫控,學習學習
回復

使用道具 舉報

22#
ID:941557 發表于 2023-7-19 09:01 | 只看該作者
最近在學習PID溫控,感謝分享
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 超碰520 | 亚洲国产精品一区二区久久 | 国产乱码精品一区二区三区忘忧草 | 黄色免费网站在线看 | 亚洲欧美综合 | 国产97色 | 国产伦精品一区二区三区四区视频 | 久久不卡日韩美女 | 91精品在线看 | 91在线视频国产 | 亚洲成人免费视频在线 | 欧美国产日韩在线观看 | 欧美成人在线免费 | 91成人免费| 成年人黄色一级片 | 成人免费淫片aa视频免费 | 日本a在线 | 爱高潮www亚洲精品 中文字幕免费视频 | 黑人精品欧美一区二区蜜桃 | 伦理二区| 成人在线中文字幕 | 91精品久久久久 | 性高湖久久久久久久久3小时 | 91国产精品在线 | 91精品久久久久久久久久小网站 | 日韩精品一区二区三区中文字幕 | 天堂在线www | 欧美成人在线网站 | 精国产品一区二区三区 | 久久美女网 | 日日夜夜精品免费视频 | 精品免费在线 | 国产成人小视频 | 毛片网站在线观看 | 亚洲精品久久久久久一区二区 | 亚洲国产自产 | 欧美日韩在线一区二区 | 性欧美xxxx | 自拍偷拍第一页 | 国产精品国色综合久久 | 手机在线一区二区三区 |