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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機溫度控制的邏輯判斷代碼怎么寫?

[復制鏈接]
跳轉到指定樓層
樓主
三個溫度參數:1、采集的實時溫度temp,2、設置停止溫度temp-off, 3、停機后溫度降低到temp-on溫度開機a、第一次開機,只要溫度temp<temp-off  out停止加熱;
b、當溫度從temp-off降低到temp-on溫度開機。
這個代碼應該怎么寫?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:731755 發表于 2024-1-24 22:17 來自手機 | 只看該作者
PID控制
回復

使用道具 舉報

板凳
ID:13282 發表于 2024-1-24 23:42 | 只看該作者
看你這個需求, 只是三個判斷點, 那么設置不同狀態的flag值, 然后根據不同的狀態值去做對應的邏輯判斷即可.
回復

使用道具 舉報

地板
ID:72649 發表于 2024-1-25 03:29 來自手機 | 只看該作者
xmcolong 發表于 2024-1-24 23:42
看你這個需求, 只是三個判斷點, 那么設置不同狀態的flag值, 然后根據不同的狀態值去做對應的邏輯判斷即可.

能不能具體點
回復

使用道具 舉報

5#
ID:161164 發表于 2024-1-25 07:53 | 只看該作者
temp = Read_Temp();
if(Temp<Temp_On)
{
Out = on;
}
if(Temp>Temp_Off)
{
Out=Off;
}
回復

使用道具 舉報

6#
ID:883242 發表于 2024-1-25 10:11 | 只看該作者
lkc8210 發表于 2024-1-25 07:53
temp = Read_Temp();
if(TempTemp_Off)
{

沒把滯回寫出來。
回復

使用道具 舉報

7#
ID:13282 發表于 2024-1-25 13:43 | 只看該作者
#include "xxx.h" //看用的什么單片機, 選對應頭文件
bit First_On_Flag;      //定義第一次開機標志
bit HeatOnOff_Flag;  //定義加熱開關標志
unsigned char Temp,num; //定義全局變量temp,mode
define Temp_On 60;   //設置打開加熱溫度值為60
define Temp_Off 80;  //設置關閉加熱溫度值為80
//函數聲明
void Read_Temp(); //溫度讀取函數
void Memory_Write(unsigned char Addr,unsigned int Value); //向地址Addr 寫入數據Value
unsigned char Memory_Read(unsigned char Addr) //讀地址Addr 的數據
void main(void)
{
//各種初始化函數;
First_On_Flag=0;
HeatOnOff_Flag=0;

while(1)
{
   Temp = Read_Temp();  //讀取當前溫度值

   mode= Memory_Read(0x20); //讀取0x20數據到mode
  if(mode==0) //注意: 有些新的MCU沒有寫過的是0, 有的要用null
  {
      Memory_Write(0x20,10); //向地址20寫入10
  }
  if((Temp<Temp_Off)&&(Temp>Temp_On)&&(num==10)) //溫度低于temp_off 且 第一次開機
   {
         HeatOff(); //停止加熱
   }
   if(Temp<Temp_On)
   {
        HeatOn();
        Memory_Write(20,11); //向地址20寫入11, 這樣再次開機后上面那個if將不再被執行
   }
   if(Temp>Temp_Off)
   {      
         HeatOff();      
   }
}

打字好辛苦, 給些黑幣唄!

評分

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

查看全部評分

回復

使用道具 舉報

8#
ID:72649 發表于 2024-1-25 15:32 來自手機 | 只看該作者
lkc8210 發表于 2024-1-25 07:53
temp = Read_Temp();
if(TempTemp_Off)
{

如果溫度處于Temp-on和Temp-off之間,哪不是不能加溫了?
回復

使用道具 舉報

9#
ID:883242 發表于 2024-1-25 15:39 | 只看該作者
lkc8210 發表于 2024-1-25 07:53
temp = Read_Temp();
if(TempTemp_Off)
{

不對,滯回那部分寫錯了。
回復

使用道具 舉報

10#
ID:1034262 發表于 2024-1-25 16:00 | 只看該作者
溫度必須PID控制,否則會很難看。除非你要求很低,溫度可以飄移很大。
回復

使用道具 舉報

11#
ID:161164 發表于 2024-1-25 16:09 | 只看該作者
hjx5548 發表于 2024-1-25 15:32
如果溫度處于Temp-on和Temp-off之間,哪不是不能加溫了?

b、當溫度從temp-off降低到temp-on溫度開機。
回復

使用道具 舉報

12#
ID:72649 發表于 2024-1-25 19:03 | 只看該作者
Hephaestus 發表于 2024-1-25 15:39
不對,滯回那部分寫錯了。

應該怎么寫呢?
回復

使用道具 舉報

13#
ID:342822 發表于 2024-1-25 19:48 | 只看該作者
滯回     加個等待200ms
回復

使用道具 舉報

14#
ID:13282 發表于 2024-1-25 23:38 | 只看該作者
xmcolong 發表于 2024-1-25 13:43
#include "xxx.h" //看用的什么單片機, 選對應頭文件
bit First_On_Flag;      //定義第一次開機標志
bit ...

感謝老大!
回復

使用道具 舉報

15#
ID:883242 發表于 2024-1-26 01:53 | 只看該作者
hjx5548 發表于 2024-1-25 19:03
應該怎么寫呢?

就拿5樓代碼練手
  1. temp = Read_Temp();
  2. if(Temp<Temp_On)
  3. {
  4. Out = on;
  5. }
  6. if(Temp>Temp_Off)
  7. {
  8. Out=Off;
  9. }
復制代碼

因為你是滯回控制,那么temp_on>temp_off,所以上面兩個if同時成立,單片機不知所措。
你設立個條件讓兩者不同時成立就行了唄,自己動腦子想。
回復

使用道具 舉報

16#
ID:72649 發表于 2024-1-26 07:04 來自手機 | 只看該作者
Hephaestus 發表于 2024-1-26 01:53
就拿5樓代碼練手

因為你是滯回控制,那么temp_on>temp_off,所以上面兩個if同時成立,單片機不知所措 ...

temp = Read_Temp();
if(Temp<Temp_On)
{
Out = on;
}
else if(Temp>Temp_Off)
{
Out=Off;
}
這樣可以嗎?
回復

使用道具 舉報

17#
ID:367624 發表于 2024-1-26 08:33 | 只看該作者
這種控制,可以定義兩個參數,停止加熱溫度和回差溫度兩個參數,當實時溫度小于停止加熱溫度減回差溫度時開加熱,當實時溫度達到停止加熱溫度時停止加熱,很簡單的.
回復

使用道具 舉報

18#
ID:161164 發表于 2024-1-26 09:14 | 只看該作者
Hephaestus 發表于 2024-1-26 01:53
就拿5樓代碼練手

因為你是滯回控制,那么temp_on>temp_off,所以上面兩個if同時成立,單片機不知所措 ...

???
Temp_Off的值一定會大于Temp_On啊
所以if(Temp<Temp_On)和if(Temp>Temp_Off)只會成立其中一個

回復

使用道具 舉報

19#
ID:72649 發表于 2024-1-26 12:30 來自手機 | 只看該作者
xmcolong 發表于 2024-1-25 13:43
#include "xxx.h" //看用的什么單片機, 選對應頭文件
bit First_On_Flag;      //定義第一次開機標志
bit ...

單片機STC8H的呢?
回復

使用道具 舉報

20#
ID:13282 發表于 2024-1-26 17:22 | 只看該作者
hjx5548 發表于 2024-1-26 12:30
單片機STC8H的呢?

http://www.zg4o1577.cn/bbs/dpj-131249-1.html

這個帖子就是你說的STC8的頭文件。
回復

使用道具 舉報

21#
ID:72649 發表于 2024-1-26 18:54 | 只看該作者
lkc8210 發表于 2024-1-26 09:14
???
Temp_Off的值一定會大于Temp_On啊
所以if(TempTemp_Off)只會成立其中一個

處于T_on和T_off之間單片機要怎么處理?
回復

使用道具 舉報

22#
ID:72649 發表于 2024-1-26 18:55 | 只看該作者

PID對于可控硅可以的,如果是繼電器呢?怎么調節?
回復

使用道具 舉報

23#
ID:72649 發表于 2024-1-26 19:00 | 只看該作者
xmcolong 發表于 2024-1-24 23:42
看你這個需求, 只是三個判斷點, 那么設置不同狀態的flag值, 然后根據不同的狀態值去做對應的邏輯判斷即可.

if(T_on<temp)
flag=1;
if(T_off>temp)
flag=2;
if(T_on>temp)&&(T_off<temp)
flag=3;
是不是這樣做?
回復

使用道具 舉報

24#
ID:883242 發表于 2024-1-26 21:45 | 只看該作者
hjx5548 發表于 2024-1-26 18:55
PID對于可控硅可以的,如果是繼電器呢?怎么調節?

不做產品純理論研究可控硅繼電器沒有區別!做具體產品才要考慮繼電器動作過于頻繁很快就會把機械壽命消耗干凈的問題。
回復

使用道具 舉報

25#
ID:161164 發表于 2024-1-27 15:14 來自手機 | 只看該作者
hjx5548 發表于 2024-1-26 18:54
處于T_on和T_off之間單片機要怎么處理?

Out輸出保持,直到越過Temo-off/temp-on
回復

使用道具 舉報

26#
ID:72649 發表于 2024-1-29 00:07 | 只看該作者
yuan旺仔小饅頭 發表于 2024-1-26 08:33
這種控制,可以定義兩個參數,停止加熱溫度和回差溫度兩個參數,當實時溫度小于停止加熱溫度減回差溫度時開 ...

關鍵是停止溫度和開機溫度,可以調節顯示的?應該怎樣處理?
回復

使用道具 舉報

27#
ID:883242 發表于 2024-1-30 17:34 | 只看該作者
hjx5548 發表于 2024-1-29 00:07
關鍵是停止溫度和開機溫度,可以調節顯示的?應該怎樣處理?

這個已經超過題目范圍了,要寫一本書才行,你先做,出問題再說。
回復

使用道具 舉報

28#
ID:367624 發表于 2024-1-31 08:10 | 只看該作者
hjx5548 發表于 2024-1-29 00:07
關鍵是停止溫度和開機溫度,可以調節顯示的?應該怎樣處理?

就設置兩個參數就好了,停止溫度和回差溫度,到停止溫度就關,當實時溫度小于停止溫度減回差就開機(回差一般最小1度)
回復

使用道具 舉報

29#
ID:382454 發表于 2024-1-31 10:21 | 只看該作者
溫度低了,加熱,溫度高了停止加熱。就是溫差控制在1-3度之間即可。
回復

使用道具 舉報

30#
ID:161164 發表于 2024-1-31 13:09 | 只看該作者
hjx5548 發表于 2024-1-29 00:07
關鍵是停止溫度和開機溫度,可以調節顯示的?應該怎樣處理?

用變量啊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人免费久久 | 中文字幕视频在线观看 | 精品一二区 | h在线看| 国产伦精品一区二区 | 色av一区 | 亚州精品天堂中文字幕 | 中文字幕av一区 | 亚洲天堂色| h在线观看| 成人一区二区在线 | 中文字幕亚洲国产 | 日韩av看片 | 亚洲第1页| 在线天堂免费中文字幕视频 | 国产一区欧美一区 | 国产精品免费一区二区三区四区 | 国产在线观看一区二区 | 久久久久久九九九九九九 | 欧美xxxx黑人又粗又长 | 在线午夜 | 欧美一级特黄aaa大片在线观看 | 亚洲精品1| 国产 日韩 欧美 在线 | aacc678成免费人电影网站 | 国内精品免费久久久久软件老师 | 久久久久国产一区二区三区 | 亚洲视频免费播放 | 超碰地址 | 国产精品成人69xxx免费视频 | 97国产超碰 | 国产成人精品a视频一区www | 亚洲一区二区三区在线播放 | av免费网址 | 欧美日批 | 成人免费视频网址 | 亚洲风情在线观看 | 国产欧美一区二区三区久久手机版 | 成人精品鲁一区一区二区 | 日韩精品一区二区不卡 | 成年视频在线观看福利资源 |